:root{--brand-50: #eff6ff;--brand-100: #dbeafe;--brand-200: #bfdbfe;--brand-500: #3b82f6;--brand-600: #2563eb;--brand-700: #1d4ed8;--green-50: #ecfdf5;--green-100: #d1fae5;--green-500: #10b981;--green-600: #059669;--green-700: #047857;--red-50: #fef2f2;--red-100: #fee2e2;--red-500: #ef4444;--red-600: #dc2626;--amber-50: #fffbeb;--amber-100: #fef3c7;--amber-500: #f59e0b;--amber-700: #b45309;--slate-50: #f8fafc;--slate-100: #f1f5f9;--slate-200: #e2e8f0;--slate-300: #cbd5e1;--slate-400: #94a3b8;--slate-500: #64748b;--slate-600: #475569;--slate-700: #334155;--slate-800: #1e293b;--slate-900: #0f172a;--bg: #f8fafc;--surface: #ffffff;--text: var(--slate-900);--text-muted: var(--slate-500);--text-soft: var(--slate-600);--border: var(--slate-200);--border-strong:var(--slate-300);--primary: var(--brand-600);--primary-hov: var(--brand-700);--shadow-sm: 0 1px 2px rgba(15, 23, 42, .04);--shadow: 0 2px 8px rgba(15, 23, 42, .06), 0 1px 2px rgba(15, 23, 42, .04);--shadow-lg: 0 10px 30px rgba(15, 23, 42, .08);--radius-sm: 6px;--radius: 12px;--radius-lg: 16px;--radius-xl: 24px;font-family:ui-sans-serif,-apple-system,Segoe UI,system-ui,sans-serif;line-height:1.55;font-size:15px;color:var(--text)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}a{color:var(--primary);text-decoration:none;transition:color .15s}a:hover{color:var(--primary-hov)}button{font-family:inherit;cursor:pointer}.layout{min-height:100vh}.layout>header{background:#fff;border-bottom:1px solid var(--border);padding:1rem 1.5rem;display:flex;align-items:center;gap:1.5rem;position:sticky;top:0;z-index:100;box-shadow:0 1px #0000000a,0 4px 12px #0000000d;background:#ffffffeb}.brand{display:flex;align-items:center;gap:.6rem;font-weight:700;font-size:1rem;color:var(--text)}.brand-icon{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,var(--brand-500),var(--brand-700));display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 4px 12px #2563eb4d}.layout>header nav{display:flex;gap:.15rem;align-items:center;background:var(--slate-50, #f8fafc);padding:.3rem;border-radius:14px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;max-width:100%}.layout>header nav::-webkit-scrollbar{display:none}.layout>header nav a{position:relative;padding:.55rem .85rem;border-radius:10px;color:var(--text-soft);font-weight:600;font-size:.92rem;display:inline-flex;align-items:center;gap:.4rem;white-space:nowrap;flex-shrink:0;transition:color .25s cubic-bezier(.34,1.56,.64,1),background .25s cubic-bezier(.34,1.56,.64,1),transform .2s cubic-bezier(.34,1.56,.64,1);text-decoration:none;overflow:hidden}.layout>header nav a svg{transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.layout>header nav a:hover{color:var(--brand-700, #1d4ed8);background:#2563eb0f;text-decoration:none;transform:translateY(-1px)}.layout>header nav a:hover svg{transform:scale(1.12) rotate(-4deg)}.layout>header nav a:active{transform:translateY(0) scale(.97)}.layout>header nav a.active{color:var(--brand-700, #1d4ed8);background:#fff;box-shadow:0 2px 8px #2563eb1f,0 0 0 1px #2563eb14;animation:nav-pop .4s cubic-bezier(.34,1.56,.64,1)}.layout>header nav a.active svg{color:var(--brand-700, #1d4ed8);transform:scale(1.05)}.layout>header nav a.active:after{content:"";position:absolute;left:50%;bottom:2px;width:18px;height:3px;background:var(--brand-600, #2563eb);border-radius:999px;transform:translate(-50%);animation:nav-bar-in .45s cubic-bezier(.34,1.56,.64,1)}@keyframes nav-pop{0%{transform:scale(.9)}60%{transform:scale(1.04)}to{transform:scale(1)}}@keyframes nav-bar-in{0%{width:0;opacity:0}to{width:18px;opacity:1}}.user-info{margin-left:auto;display:flex;align-items:center;gap:.75rem}.user-avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--brand-500),var(--brand-700));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem}.user-info button{background:var(--slate-100);border:none;padding:.45rem .75rem;border-radius:8px;color:var(--text-soft);font-size:.85rem;font-weight:500;display:inline-flex;align-items:center;gap:.35rem;transition:background .15s}.user-info button:hover{background:var(--slate-200);color:var(--text)}main{padding:1.5rem;max-width:720px;margin:0 auto;animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.page-title{font-size:1.7rem;font-weight:700;letter-spacing:-.02em;margin:0 0 .4rem;display:flex;align-items:center;gap:.5rem}.page-subtitle{color:var(--text-muted);margin:0 0 1.5rem;font-size:.95rem}.back-link{display:inline-flex;align-items:center;gap:.3rem;font-size:.88rem;color:var(--text-muted);margin-bottom:.75rem}.back-link:hover{color:var(--primary)}.login-bg{min-height:100vh;min-height:100dvh;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:radial-gradient(ellipse at top,#1e3a8a 0%,transparent 50%),radial-gradient(ellipse at bottom,#0f172a 0%,transparent 60%),linear-gradient(140deg,#0b1530,#111c44 45%,#0a1428);isolation:isolate}.login-orbs{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;filter:blur(60px);opacity:.85;will-change:transform}.login-orbs .orb{position:absolute;border-radius:50%;transform:translateZ(0);will-change:transform}.orb-1{width:320px;height:320px;top:-80px;left:-60px;background:radial-gradient(circle,#3b82f6 0%,transparent 70%);animation:orbFloat1 18s ease-in-out infinite}.orb-2{width:380px;height:380px;top:30%;right:-100px;background:radial-gradient(circle,#8b5cf6 0%,transparent 70%);animation:orbFloat2 22s ease-in-out infinite}.orb-3{width:280px;height:280px;bottom:-60px;left:25%;background:radial-gradient(circle,#06b6d4 0%,transparent 70%);animation:orbFloat3 20s ease-in-out infinite}.orb-4{width:220px;height:220px;top:50%;left:10%;background:radial-gradient(circle,#f472b6 0%,transparent 70%);animation:orbFloat4 26s ease-in-out infinite;opacity:.7}@keyframes orbFloat1{0%,to{transform:translateZ(0) scale(1)}50%{transform:translate3d(80px,60px,0) scale(1.1)}}@keyframes orbFloat2{0%,to{transform:translateZ(0) scale(1)}50%{transform:translate3d(-90px,80px,0) scale(1.15)}}@keyframes orbFloat3{0%,to{transform:translateZ(0) scale(1)}50%{transform:translate3d(60px,-70px,0) scale(.9)}}@keyframes orbFloat4{0%,to{transform:translateZ(0) scale(1)}50%{transform:translate3d(-50px,50px,0) scale(1.2)}}.login-stars{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1}.login-stars .star{position:absolute;width:3px;height:3px;background:#fff;border-radius:50%;opacity:0;animation:starTwinkle 4s ease-in-out infinite;box-shadow:0 0 6px #fffc}.star-0{top:12%;left:18%;animation-delay:0s}.star-1{top:22%;left:78%;animation-delay:.6s}.star-2{top:8%;left:62%;animation-delay:1.2s}.star-3{top:38%;left:8%;animation-delay:1.8s}.star-4{top:65%;left:88%;animation-delay:2.4s}.star-5{top:82%;left:22%;animation-delay:3s}.star-6{top:48%;left:92%;animation-delay:.3s}.star-7{top:18%;left:42%;animation-delay:1.5s}.star-8{top:72%;left:58%;animation-delay:2.7s}.star-9{top:88%;left:72%;animation-delay:.9s}.star-10{top:28%;left:28%;animation-delay:2.1s;width:2px;height:2px}.star-11{top:58%;left:38%;animation-delay:3.3s;width:2px;height:2px}@keyframes starTwinkle{0%,to{opacity:0;transform:scale(.5)}50%{opacity:.9;transform:scale(1)}}.login-card{position:relative;z-index:2;background:#fffffff7;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:24px;padding:2.5rem 2rem 2rem;width:100%;max-width:400px;border:1px solid rgba(255,255,255,.5);box-shadow:0 30px 60px -15px #0f172a8c,0 0 0 1px #ffffff14;opacity:0;transform:translateY(30px) scale(.95);transition:opacity .6s cubic-bezier(.34,1.4,.5,1),transform .7s cubic-bezier(.34,1.4,.5,1)}.login-card.mounted{opacity:1;transform:translateY(0) scale(1)}.login-card-glow{position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border-radius:24px;background:linear-gradient(135deg,#3b82f680,#8b5cf666,#06b6d480);filter:blur(20px);z-index:-1;opacity:.4;animation:cardGlowPulse 4s ease-in-out infinite}@keyframes cardGlowPulse{0%,to{opacity:.3}50%{opacity:.55}}.login-brand{text-align:center;margin-bottom:1.75rem}.login-brand-icon{position:relative;width:64px;height:64px;border-radius:18px;background:linear-gradient(135deg,#3b82f6,#6366f1,#8b5cf6);display:inline-flex;align-items:center;justify-content:center;color:#fff;margin-bottom:.85rem;box-shadow:0 12px 28px #3b82f673,0 2px 6px #6366f14d,inset 0 1px #fff6;animation:brandBob 3.5s ease-in-out infinite}.login-brand-icon:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:18px;background:linear-gradient(135deg,transparent 40%,rgba(255,255,255,.25) 50%,transparent 60%);background-size:200% 200%;animation:brandShine 3s linear infinite}.login-brand-sparkle{position:absolute;top:-6px;right:-6px;background:linear-gradient(135deg,#fbbf24,#f59e0b);width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 4px 10px #f59e0b80;animation:sparkleSpin 4s linear infinite}@keyframes brandBob{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-6px) rotate(-2deg)}}@keyframes brandShine{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes sparkleSpin{0%,to{transform:rotate(0) scale(1)}50%{transform:rotate(180deg) scale(1.15)}}.login-brand-title{font-size:1.5rem;font-weight:800;letter-spacing:-.02em;background:linear-gradient(135deg,#0f172a,#1e3a8a,#4338ca);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin:0}.login-brand-sub{font-size:.9rem;color:#64748b;margin-top:.3rem;letter-spacing:.04em;text-transform:uppercase;font-weight:600}.login-field{margin-bottom:1rem}.login-field label{font-size:.78rem;font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.4rem}.login-field input{padding:.85rem 1rem;font-size:.95rem;border:1.5px solid #e2e8f0;border-radius:12px;background:#fff;transition:border-color .25s,box-shadow .25s,transform .2s}.login-field input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 4px #6366f11f,0 4px 12px #6366f126;transform:translateY(-1px)}.login-alert{animation:shake .35s cubic-bezier(.36,.07,.19,.97)}@keyframes shake{10%,90%{transform:translate(-2px)}20%,80%{transform:translate(3px)}30%,50%,70%{transform:translate(-5px)}40%,60%{transform:translate(5px)}}.login-submit{position:relative;overflow:hidden;margin-top:.5rem;background:linear-gradient(135deg,#3b82f6,#6366f1,#8b5cf6);border:none;box-shadow:0 10px 25px -5px #6366f173;transition:transform .2s ease,box-shadow .25s ease;width:100%}.login-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 14px 30px -5px #6366f18c}.login-submit:active:not(:disabled){transform:translateY(0)}.login-submit-content{position:relative;z-index:1;display:inline-flex;align-items:center;gap:.5rem}.login-submit-shine{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);transform:translate(-100%);animation:btnShine 3s ease-in-out infinite;animation-delay:1s;pointer-events:none}@keyframes btnShine{0%,60%,to{transform:translate(-100%)}80%{transform:translate(100%)}}.login-foot{text-align:center;margin-top:1.25rem;font-size:.82rem;color:#64748b}@media(prefers-reduced-motion:reduce){.orb,.star,.login-brand-icon,.login-brand-icon:before,.login-brand-sparkle,.login-card-glow,.login-submit-shine{animation:none!important}.login-card{transition:opacity .3s ease;transform:none}}.install-banner{position:fixed;bottom:16px;left:16px;right:16px;z-index:9999;display:flex;align-items:center;gap:.85rem;padding:.85rem 1rem;background:linear-gradient(135deg,#0f172a,#1e293b);color:#fff;border-radius:18px;box-shadow:0 20px 40px -10px #0f172a80;animation:ibSlide .5s cubic-bezier(.34,1.4,.5,1) both;max-width:540px;margin:0 auto}@keyframes ibSlide{0%{transform:translateY(120%);opacity:0}to{transform:translateY(0);opacity:1}}.install-banner-icon{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,#3b82f6,#6366f1);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 4px 10px #6366f159}.install-banner-text{flex:1;min-width:0}.install-banner-title{font-weight:700;font-size:.95rem;line-height:1.2}.install-banner-sub{font-size:.78rem;opacity:.78;margin-top:2px;line-height:1.3}.install-banner-cta{background:linear-gradient(135deg,#f59e0b,#ea580c);color:#fff;border:none;border-radius:999px;padding:.55rem .95rem;font-weight:700;font-size:.85rem;display:inline-flex;align-items:center;gap:.35rem;cursor:pointer;white-space:nowrap;box-shadow:0 4px 10px #ea580c66;transition:transform .15s}.install-banner-cta:active{transform:scale(.96)}.install-banner-close{background:#ffffff1a;color:#fff;border:none;width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.install-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:flex;align-items:flex-end;justify-content:center;padding:0;animation:ibFade .25s ease both}@keyframes ibFade{0%{opacity:0}to{opacity:1}}.install-modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f172a8c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.install-modal-card{position:relative;background:#fff;border-radius:24px 24px 0 0;padding:1.5rem 1.5rem 2rem;width:100%;max-width:540px;box-shadow:0 -10px 40px #0f172a4d;animation:ibSlideUp .4s cubic-bezier(.34,1.4,.5,1) both}@keyframes ibSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.install-modal-close{position:absolute;top:14px;right:14px;background:#f1f5f9;color:#475569;border:none;width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.install-modal-icon{width:56px;height:56px;border-radius:16px;background:linear-gradient(135deg,#3b82f6,#6366f1);color:#fff;display:inline-flex;align-items:center;justify-content:center;margin-bottom:.85rem;box-shadow:0 8px 20px #6366f159}.install-modal-title{font-size:1.2rem;font-weight:800;letter-spacing:-.01em;margin:0 0 .4rem;color:#0f172a}.install-modal-sub{margin:0 0 1.25rem;color:#64748b;font-size:.9rem;line-height:1.4}.install-steps{list-style:none;padding:0;margin:0 0 1.5rem;display:flex;flex-direction:column;gap:.85rem}.install-steps li{display:flex;gap:.85rem;align-items:flex-start}.install-step-num{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#3b82f6,#6366f1);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem;flex-shrink:0}.install-step-body{flex:1;font-size:.95rem;line-height:1.45;color:#1e293b;padding-top:2px}.install-step-body .ic{display:inline-flex;align-items:center;background:#eef2ff;color:#4338ca;padding:0 .35rem;border-radius:6px;margin:0 2px}.install-modal-actions{display:flex;gap:.6rem}.install-modal-skip{flex:1;background:transparent;border:1.5px solid #e2e8f0;color:#64748b;border-radius:12px;padding:.75rem;font-weight:600;font-size:.9rem;cursor:pointer}.install-modal-ok{flex:1.4;background:linear-gradient(135deg,#3b82f6,#6366f1);border:none;color:#fff;border-radius:12px;padding:.75rem;font-weight:700;font-size:.9rem;cursor:pointer;box-shadow:0 4px 10px #6366f14d}@media(max-width:380px){.login-card{padding:2rem 1.5rem 1.5rem}.login-brand-icon{width:56px;height:56px}.login-brand-title{font-size:1.35rem}}.field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem}.field label{font-size:.85rem;font-weight:600;color:var(--text-soft)}.field input,.field select,.field textarea{padding:.7rem .9rem;border:1.5px solid var(--border-strong);border-radius:10px;font-size:.95rem;font-family:inherit;transition:all .15s;background:var(--surface);color:var(--text)}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--brand-500);box-shadow:0 0 0 3px var(--brand-100)}.alert{padding:.75rem 1rem;border-radius:10px;font-size:.9rem;margin-bottom:1rem;display:flex;align-items:flex-start;gap:.5rem}.alert.error{background:var(--red-50);color:var(--red-600)}.alert.info{background:var(--brand-50);color:var(--brand-700)}.alert.success{background:var(--green-50);color:var(--green-700)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.65rem 1.1rem;border-radius:10px;font-weight:600;font-size:.95rem;border:1.5px solid transparent;transition:all .15s;white-space:nowrap}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hov);transform:translateY(-1px);box-shadow:0 4px 12px #2563eb4d}.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong)}.btn-secondary:hover{background:var(--slate-50)}.btn-large{padding:.9rem 1.5rem;font-size:1rem;border-radius:12px}.hero-card{background:linear-gradient(135deg,var(--brand-600) 0%,#4f46e5 100%);color:#fff;border-radius:var(--radius-xl);padding:1.75rem;margin-bottom:1.5rem;position:relative;overflow:hidden;box-shadow:0 10px 40px #2563eb40;animation:slideUp .35s ease-out}.hero-card:after{content:"";position:absolute;right:-60px;top:-60px;width:220px;height:220px;background:#ffffff14;border-radius:50%}.hero-card:before{content:"";position:absolute;right:50px;bottom:-100px;width:160px;height:160px;background:#ffffff0f;border-radius:50%}.hero-card-content{position:relative;z-index:1}.hero-card-eyebrow{text-transform:uppercase;font-size:.74rem;letter-spacing:.08em;opacity:.88;margin-bottom:.4rem;display:inline-flex;align-items:center;gap:.35rem}.hero-card-title{font-size:1.4rem;font-weight:700;margin:0 0 .25rem;letter-spacing:-.02em}.hero-card-sub{opacity:.88;font-size:.92rem;margin-bottom:1rem}.stats-mini{display:grid;grid-template-columns:repeat(3,1fr);gap:.85rem;margin-top:1rem}.stat-mini{background:#ffffff24;border-radius:12px;padding:.85rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.12)}.stat-mini-icon{width:32px;height:32px;border-radius:9px;background:#ffffff2e;display:flex;align-items:center;justify-content:center;margin-bottom:.5rem}.stat-mini-value{font-size:1.4rem;font-weight:700;letter-spacing:-.02em}.stat-mini-label{font-size:.78rem;opacity:.85;margin-top:.15rem}.net-card{background:linear-gradient(135deg,var(--green-500) 0%,var(--green-600) 100%);color:#fff;border-radius:var(--radius-xl);padding:2rem;text-align:center;margin-bottom:1.5rem;position:relative;overflow:hidden;box-shadow:0 10px 30px #10b98140;animation:slideUp .4s ease-out}.net-card:before{content:"";position:absolute;left:-50px;top:-50px;width:200px;height:200px;background:#ffffff1a;border-radius:50%}.net-card-label{text-transform:uppercase;font-size:.78rem;letter-spacing:.1em;opacity:.92;margin-bottom:.5rem;position:relative;z-index:1}.net-card-amount{font-size:2.8rem;font-weight:800;letter-spacing:-.03em;margin:0;position:relative;z-index:1}.net-card-help{font-size:.9rem;opacity:.92;margin-top:.5rem;position:relative;z-index:1}.section-title{font-size:1.05rem;font-weight:700;margin:1.5rem 0 .75rem;letter-spacing:-.01em;display:flex;align-items:center;gap:.4rem}.list-card{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);overflow:hidden;box-shadow:var(--shadow-sm)}.list-row{display:flex;align-items:center;gap:.8rem;padding:.95rem 1rem;border-bottom:1px solid var(--border);transition:background .12s;text-decoration:none;color:var(--text);cursor:pointer}.list-row-icon{width:40px;height:40px;border-radius:10px;background:var(--brand-50);color:var(--brand-600);display:flex;align-items:center;justify-content:center;flex-shrink:0}.list-row-main{flex:1;min-width:0}.list-row-title{font-weight:600;font-size:.95rem}.list-row-sub{font-size:.82rem;color:var(--text-muted)}.list-row-amount{font-weight:700;font-size:1rem;color:var(--green-600)}.list-row-chevron{color:var(--text-muted);margin-left:.25rem}.payslip-line{background:var(--surface);border-radius:var(--radius);padding:1rem;margin-bottom:.6rem;display:flex;gap:.8rem;align-items:flex-start;border-left:4px solid var(--slate-300);box-shadow:var(--shadow-sm);animation:slideUp .25s ease-out backwards}.payslip-line.add{border-left-color:var(--green-500)}.payslip-line.subtract{border-left-color:var(--red-500)}.payslip-line-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.payslip-line.add .payslip-line-icon{background:var(--green-100);color:var(--green-700)}.payslip-line.subtract .payslip-line-icon{background:var(--red-100);color:var(--red-600)}.payslip-line-main{flex:1;min-width:0}.payslip-line-head{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem}.payslip-line-title{font-weight:600;font-size:.96rem}.payslip-line-amount{font-weight:700;font-size:1.05rem;white-space:nowrap}.payslip-line.add .payslip-line-amount{color:var(--green-600)}.payslip-line.subtract .payslip-line-amount{color:var(--red-600)}.payslip-line-explain{font-size:.85rem;color:var(--text-soft);margin-top:.4rem;line-height:1.5}.payslip-totals{background:var(--slate-50);border-radius:var(--radius);padding:1rem 1.2rem;margin-top:1rem}.payslip-totals .row{display:flex;justify-content:space-between;padding:.3rem 0;font-size:.95rem}.payslip-totals .total{border-top:1px solid var(--border-strong);margin-top:.4rem;padding-top:.75rem;font-size:1.15rem;font-weight:700}.payslip-totals .total .amount{color:var(--brand-600);font-size:1.3rem}.hint-box{background:var(--brand-50);border:1px solid var(--brand-100);border-radius:12px;padding:.85rem 1rem;display:flex;align-items:flex-start;gap:.6rem;margin-bottom:1.25rem;font-size:.9rem;color:var(--brand-700)}.hint-box .icon{flex-shrink:0;margin-top:2px}.empty{text-align:center;padding:3rem 1.5rem;background:var(--surface);border:2px dashed var(--border);border-radius:var(--radius)}.empty-icon{width:64px;height:64px;margin:0 auto 1rem;background:var(--slate-100);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.empty-title{font-size:1.1rem;font-weight:600;margin:0 0 .4rem}.empty-text{color:var(--text-muted);max-width:360px;margin:0 auto}.spinner{display:inline-block;width:18px;height:18px;border:2.5px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}.spinner.dark{border-color:var(--slate-200);border-top-color:var(--brand-600)}.loading-block{display:flex;align-items:center;justify-content:center;padding:3rem;color:var(--text-muted);gap:.75rem}.progress{background:var(--slate-200);height:8px;border-radius:4px;overflow:hidden;margin-top:.5rem}.progress>div{height:100%;background:linear-gradient(90deg,var(--green-500),var(--green-600));transition:width .5s ease-out}.font-bold{font-weight:700}.layout>main:has(.emp-panel-row1){max-width:1400px;padding:1.5rem 2rem}.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1.25rem;gap:1rem}.breadcrumb{display:flex;align-items:center;gap:.4rem;font-size:.78rem;color:var(--text-muted);margin-top:.25rem}.breadcrumb .sep{opacity:.5}.card-chip{font-size:.78rem;background:var(--surface);border:1px solid var(--border);padding:.4rem .7rem;border-radius:8px;color:var(--text-soft);display:inline-flex;align-items:center;gap:.3rem;cursor:pointer;text-decoration:none}.card-chip:hover{background:var(--brand-50);border-color:var(--brand-500);color:var(--brand-700)}.icon-btn{width:32px;height:32px;border-radius:8px;background:var(--surface);border:1px solid var(--border);display:inline-flex;align-items:center;justify-content:center;color:var(--text-soft);cursor:pointer}.icon-btn-sm{width:28px;height:28px;border-radius:6px;background:var(--slate-100);border:1px solid var(--border);color:var(--text-soft);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.icon-btn-sm:hover{background:var(--brand-50);color:var(--brand-700);border-color:var(--brand-500)}.approved-banner{background:var(--brand-50);color:var(--brand-700);border-left:3px solid var(--brand-500);padding:.75rem 1rem;border-radius:10px;display:flex;align-items:center;gap:.55rem;margin-bottom:1rem;font-size:.9rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem;box-shadow:var(--shadow-sm)}.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.card-title{margin:0;font-size:.98rem;font-weight:700;display:flex;align-items:center;gap:.4rem}.emp-panel-row1{display:grid;grid-template-columns:1fr;gap:1.25rem;margin-bottom:1.25rem;align-items:start}.emp-panel-row2{display:block;margin-bottom:1.25rem}.emp-panel-row3{display:grid;grid-template-columns:1fr;gap:1.25rem;margin-bottom:1.25rem}.emp-panel-row3 .emp-side-stack{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}@media(min-width:900px){.emp-panel-row1{grid-template-columns:320px 1fr;gap:1.5rem;align-items:start}.emp-panel-row1>.emp-profile-card{position:sticky;top:1rem}.emp-panel-row1>div:nth-child(2){gap:1.25rem!important}.emp-panel-row3 .emp-side-stack{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem}}@media(min-width:1200px){.emp-panel-row1{grid-template-columns:340px 1fr}}.home-mini-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:.85rem;gap:.6rem}.home-mini-nav-date{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;color:var(--text-muted);background:var(--surface);border:1px solid var(--border);padding:.35rem .6rem;border-radius:8px}@media(max-width:640px){main{padding:1rem .85rem}.layout>main:has(.emp-panel-row1){padding:1rem .85rem}.page-title{font-size:1.35rem;line-height:1.2}.page-header{gap:.6rem}.breadcrumb{font-size:.72rem}.card{padding:.95rem;border-radius:12px}.card-title{font-size:.92rem}.emp-profile-card{padding:1rem}.emp-profile-top{padding-bottom:.85rem;margin-bottom:.85rem;gap:.7rem}.emp-profile-avatar,.emp-profile-avatar-wrap{width:52px;height:52px}.emp-profile-avatar{font-size:1.15rem;border-width:2px}.emp-profile-name{font-size:1rem}.emp-profile-info{gap:.55rem}.emp-profile-info .lbl{font-size:.7rem}.emp-profile-info .val{font-size:.92rem}.tag-pill{font-size:.66rem;padding:.15rem .45rem}.emp-panel-row1,.emp-panel-row2,.emp-panel-row3{gap:.85rem;margin-bottom:.85rem}.pt-card{padding:.85rem .8rem}}.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem;margin-bottom:1rem}@media(max-width:1100px){.grid-3{grid-template-columns:1fr}}.emp-profile-card{background:linear-gradient(135deg,#1f2937,#0f172a);color:#fff;border:none}.emp-profile-top{display:flex;gap:.85rem;align-items:center;padding-bottom:1rem;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:1rem}.emp-profile-avatar-wrap{position:relative;width:60px;height:60px}.emp-profile-avatar{width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,var(--brand-500),var(--brand-700));color:#fff;font-weight:800;font-size:1.3rem;display:flex;align-items:center;justify-content:center;border:3px solid #1f2937}.profile-status{position:absolute;bottom:0;right:0;width:14px;height:14px;background:var(--green-500);border-radius:50%;border:2px solid #1f2937}.emp-profile-name{font-size:1.1rem;font-weight:800}.emp-profile-tags{display:flex;gap:.4rem;margin-top:.3rem;flex-wrap:wrap}.tag-pill{font-size:.72rem;font-weight:600;background:#ffffff14;border:1px solid rgba(255,255,255,.1);color:#ffffffe6;padding:.2rem .5rem;border-radius:999px}.emp-profile-info{display:grid;gap:.7rem}.emp-profile-info .lbl{font-size:.75rem;color:#fff9;margin-bottom:.15rem}.emp-profile-info .val{font-size:.92rem;font-weight:600;word-break:break-word}.donut-row{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:1rem}.donut-stat{display:flex;align-items:center;gap:.4rem;margin-bottom:.3rem;font-size:.85rem}.donut-stat .dot{width:8px;height:8px;border-radius:50%}.leave-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem 1rem}.att-peach-card{background:linear-gradient(135deg,#ffe8de,#ffd6c5);border-radius:var(--radius);padding:1.2rem;border:2px solid #ffb39c}.att-ring-wrap{position:relative;width:180px;height:180px;margin:0 auto}.att-ring-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.att-prod-pill{background:#1f2937;color:#fff;text-align:center;border-radius:8px;padding:.5rem .8rem;font-size:.85rem;margin:.85rem auto;width:fit-content}.att-check-info{display:flex;align-items:center;justify-content:center;gap:.35rem;font-size:.85rem;color:var(--text-soft);margin-bottom:.85rem}.text-center{text-align:center}.emp-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}@media(max-width:1000px){.emp-stats-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.emp-stats-grid{grid-template-columns:1fr}}.emp-stat-block{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;display:flex;flex-direction:column;gap:.4rem;min-height:145px}.emp-stat-block .stat-icon{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff}.emp-stat-block .stat-icon.orange{background:#ff8a4c}.emp-stat-block .stat-icon.dark{background:#1f2937}.emp-stat-block .stat-icon.blue{background:#3b82f6}.emp-stat-block .stat-icon.pink{background:#ec4899}.delta-pill{font-size:.7rem;font-weight:700;padding:.15rem .45rem;border-radius:6px;display:inline-flex;align-items:center;gap:.2rem}.delta-pill.up{background:var(--green-100);color:var(--green-700)}.delta-pill.down{background:var(--red-100);color:var(--red-600)}.time-metrics-row{grid-column:1 / -1;display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}@media(max-width:700px){.time-metrics-row{grid-template-columns:repeat(2,1fr)}}.time-metric{display:flex;flex-direction:column;gap:.25rem}.hourly-blocks-wrap{grid-column:1 / -1;background:var(--surface);border-radius:var(--radius);padding:.5rem 0 0}.hourly-blocks-bars{position:relative;height:28px;background:var(--bg);border-radius:8px;margin-bottom:.75rem;overflow:visible}.hourly-block{position:absolute;top:4px;bottom:4px;border-radius:6px;opacity:.95;z-index:2}.hourly-sched-band{position:absolute;top:0;bottom:0;background:#ef44441a;border-top:1px dashed rgba(239,68,68,.45);border-bottom:1px dashed rgba(239,68,68,.45);z-index:1}.hourly-sched-line{position:absolute;top:-4px;bottom:-4px;width:2px;background:#ef4444;z-index:3;border-radius:1px}.hourly-now-line{position:absolute;top:-6px;bottom:-6px;width:2px;background:#2563eb;z-index:4;border-radius:1px}.hourly-now-line:after{content:"●";position:absolute;top:-10px;left:50%;transform:translate(-50%);color:#2563eb;font-size:.65rem}.hourly-blocks-legend{display:flex;flex-wrap:wrap;gap:.85rem;font-size:.75rem;color:var(--text-muted);margin-bottom:.4rem}.legend-item{display:inline-flex;align-items:center;gap:.3rem}.legend-swatch{display:inline-block;width:14px;height:10px;border-radius:3px}.legend-swatch.sched{background:#ef44441a;border-top:1px dashed #ef4444;border-bottom:1px dashed #ef4444}.legend-swatch.now{width:3px;background:#2563eb}.hourly-blocks-ticks{display:flex;justify-content:space-between;font-size:.7rem;color:var(--text-muted)}.nom-page{display:flex;flex-direction:column;gap:1rem;max-width:720px;margin:0 auto}.nom-page-head{display:flex;align-items:center;gap:.85rem;margin-bottom:.25rem}.nom-page-icon{width:52px;height:52px;border-radius:16px;background:linear-gradient(135deg,#2563eb,#4f8cff);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 16px #2563eb47;animation:nom-pop .5s cubic-bezier(.34,1.56,.64,1)}.nom-page-head h1{margin:0;font-size:1.55rem;font-weight:800;letter-spacing:-.02em;color:var(--text)}.nom-page-sub{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-size:.85rem;color:var(--text-muted)}.nom-closed-pill{display:inline-flex;align-items:center;gap:.25rem;background:#64748b1f;color:#475569;padding:.15rem .55rem;border-radius:999px;font-size:.72rem;font-weight:700}.nom-nav{display:flex;gap:.35rem;flex-shrink:0}.nom-nav-btn{width:38px;height:38px;border-radius:50%;border:1px solid var(--border);background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text);transition:transform .2s cubic-bezier(.34,1.56,.64,1),background .15s,border-color .15s,box-shadow .15s}.nom-nav-btn:hover:not(:disabled){background:var(--brand-50, #eff6ff);border-color:var(--brand-200, #bfdbfe);color:var(--brand-700, #1d4ed8);transform:scale(1.08);box-shadow:0 4px 10px #2563eb26}.nom-nav-btn:active:not(:disabled){transform:scale(.95)}.nom-nav-btn:disabled{opacity:.35;cursor:not-allowed}.nom-hero{position:relative;border-radius:22px;padding:1.6rem 1.4rem;color:#fff;overflow:hidden;background:linear-gradient(135deg,#1d4ed8,#2563eb,#4f8cff);box-shadow:0 14px 30px #2563eb40;animation:nom-slide-in .6s cubic-bezier(.34,1.56,.64,1)}.nom-hero-bg{position:absolute;inset:-60% -30% auto auto;width:280px;height:280px;background:radial-gradient(circle,rgba(255,255,255,.18),transparent 60%);pointer-events:none}.nom-hero-content{position:relative;z-index:1}.nom-hero-label{display:inline-flex;align-items:center;gap:.35rem;background:#ffffff2e;padding:.3rem .7rem;border-radius:999px;font-size:.78rem;font-weight:600;margin-bottom:.7rem;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.nom-hero-amount{font-size:2.6rem;font-weight:800;letter-spacing:-.03em;line-height:1.05;animation:nom-num-in .7s cubic-bezier(.34,1.56,.64,1) .1s backwards}.nom-hero-breakdown{display:flex;gap:.4rem;align-items:center;font-size:.85rem;opacity:.92;margin-top:.55rem}.nom-hero-breakdown span{display:inline-flex;align-items:center;gap:.25rem}.nom-hero-breakdown .dot{opacity:.5}.nom-hero-scope{margin-top:.6rem;font-size:.76rem;opacity:.9;padding:.22rem .6rem;background:#ffffff2e;border-radius:999px;display:inline-block;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.nom-week-selector{margin:1rem 0 .25rem}.nom-week-selector-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted, #64748b);margin-bottom:.5rem}.nom-week-selector-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem}.nom-week-tab{text-align:center;background:#fff;border:2px solid #e2e8f0;border-radius:12px;padding:.55rem .4rem;cursor:pointer;transition:all .15s;font-family:inherit;min-width:0}.nom-week-tab:hover{border-color:#ff5b3a;background:#fef3ef}.nom-week-tab.active{border-color:#ff5b3a;background:#fef3ef;box-shadow:0 2px 8px #ff5b3a26}.nom-week-tab-title{font-weight:700;font-size:.82rem;color:#0f172a;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nom-week-tab.active .nom-week-tab-title{color:#ff5b3a}.nom-week-tab-sub{font-size:.7rem;color:var(--text-muted, #64748b);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home-week-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem;margin:.55rem 0 .7rem}.home-week-tab{text-align:center;background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;padding:.45rem .3rem;cursor:pointer;transition:all .15s;font-family:inherit;min-width:0}.home-week-tab:hover,.home-week-tab.active{border-color:#2563eb;background:#eff6ff}.home-week-tab-title{font-weight:700;font-size:.78rem;color:#0f172a;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home-week-tab.active .home-week-tab-title{color:#2563eb}.home-week-tab-sub{font-size:.66rem;color:var(--text-muted, #64748b);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.skills-list.compact .skill-row{padding:.45rem 0}.skills-list.compact .skill-pct svg{width:42px;height:42px}.skills-list.compact .skill-pct-text{font-size:.72rem}.wbv{padding-top:.5rem}.wbv-split{display:grid;grid-template-columns:1fr;gap:1rem;margin:.4rem 0 .5rem}@media(min-width:720px){.wbv-split{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}}.wbv-split-week{min-width:0}.wbv-split-label{font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted, #64748b);margin-bottom:.35rem;padding-left:.15rem}.wbv-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.5rem}.wbv-total{font-size:1.6rem;font-weight:800;color:#0f172a;line-height:1}.wbv-total-of{font-size:.85rem;font-weight:500;color:var(--text-muted, #64748b);margin-left:.3rem}.wbv-delta{display:inline-block;margin-top:.35rem;padding:.18rem .55rem;border-radius:999px;font-size:.75rem;font-weight:700}.wbv-delta.pos{background:#dcfce7;color:#15803d}.wbv-delta.neg{background:#fee2e2;color:#b91c1c}.wbv-bars{display:grid;grid-template-columns:repeat(7,1fr);gap:.3rem;align-items:end;height:120px;margin:.4rem 0 .5rem}.wbv-col{display:flex;flex-direction:column;align-items:center;height:100%;min-width:0}.wbv-col-bar-wrap{position:relative;width:100%;flex:1;display:flex;align-items:flex-end;justify-content:center}.wbv-col-bar{width:70%;max-width:22px;border-radius:5px 5px 0 0;transition:height .35s ease;min-height:2px}.wbv-meta-line{position:absolute;left:0;right:0;border-top:1px dashed #94a3b8;height:0;z-index:0}.wbv-col-label{font-size:.7rem;color:var(--text-muted, #64748b);margin-top:4px;font-weight:600}.wbv-col.today .wbv-col-label{color:#2563eb}.wbv-col-num{font-size:.68rem;color:var(--text-muted, #94a3b8);margin-top:1px}.wbv-legend{display:flex;gap:.8rem;flex-wrap:wrap;font-size:.72rem;color:var(--text-muted, #64748b);padding-top:.35rem;border-top:1px solid #f1f5f9}.wbv-legend span{display:inline-flex;align-items:center;gap:.3rem}.wbv-sw{width:10px;height:10px;border-radius:3px;display:inline-block}.wbv-sw.meta{background:none;border-top:2px dashed #94a3b8;height:0;border-radius:0}.day-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:dmOverlayIn .18s ease-out}@keyframes dmOverlayIn{0%{opacity:0}to{opacity:1}}.day-modal{background:#fff;border-radius:18px;width:100%;max-width:460px;max-height:90vh;overflow-y:auto;padding:1.1rem;box-shadow:0 20px 60px #0000004d;animation:dmIn .22s cubic-bezier(.34,1.56,.64,1)}@keyframes dmIn{0%{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.day-modal-head{display:grid;grid-template-columns:42px 1fr auto auto;gap:.6rem;align-items:center;margin-bottom:.85rem}.day-modal-avatar{width:42px;height:42px;border-radius:50%;background:#2563eb;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem;letter-spacing:.02em}.day-modal-head-info{min-width:0}.day-modal-name{font-weight:700;font-size:.95rem;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.day-modal-dept{font-size:.75rem;color:var(--text-muted, #64748b)}.day-modal-pill{padding:.22rem .6rem;border-radius:999px;font-size:.7rem;font-weight:700;background:#f1f5f9;color:#64748b;white-space:nowrap}.day-modal-pill.on_time{background:#dcfce7;color:#166534}.day-modal-pill.late{background:#fef3c7;color:#92400e}.day-modal-pill.absent{background:#fee2e2;color:#991b1b}.day-modal-pill.in_progress{background:#dbeafe;color:#1e40af}.day-modal-close{width:30px;height:30px;border-radius:50%;background:#f1f5f9;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#64748b}.day-modal-close:hover{background:#e2e8f0;color:#0f172a}.day-modal-date{display:flex;align-items:center;gap:.4rem;padding:.55rem .85rem;background:#f8fafc;border-radius:10px;font-weight:600;font-size:.85rem;color:#0f172a;text-transform:capitalize;margin-bottom:.85rem;color:#64748b}.day-modal-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin-bottom:1rem}.day-modal-stat{background:#f8fafc;border-radius:12px;padding:.75rem .5rem;text-align:center;position:relative}.day-modal-stat-num{font-size:1.05rem;font-weight:800;color:#0f172a;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.day-modal-stat-num.green{color:#16a34a}.day-modal-stat-num.red{color:#dc2626}.day-modal-stat-lbl{font-size:.72rem;color:var(--text-muted, #64748b);margin-top:3px}.day-modal-stat-sub{font-size:.62rem;color:var(--text-muted, #94a3b8);margin-top:1px}.day-modal-dot{position:absolute;top:8px;left:50%;transform:translate(-50%);width:8px;height:8px;border-radius:50%}.day-modal-dot.in{background:#16a34a}.day-modal-dot.out{background:#dc2626}.day-modal-stat .day-modal-dot+.day-modal-stat-num{margin-top:.6rem}.day-modal-sessions-head{font-size:.8rem;color:var(--text-muted, #64748b);margin-bottom:.6rem}.day-modal-sessions-head strong{color:#0f172a;font-weight:700}.day-modal-empty{background:#f8fafc;border-radius:10px;padding:1rem;text-align:center;color:var(--text-muted, #64748b);font-size:.85rem;font-style:italic}.day-modal-timeline{display:flex;flex-direction:column;gap:.1rem;position:relative}.day-modal-event{display:grid;grid-template-columns:18px 1fr;gap:.7rem;padding:.5rem 0;position:relative}.day-modal-event:not(:last-child):before{content:"";position:absolute;left:8px;top:22px;bottom:-8px;width:2px;background:#e2e8f0}.day-modal-event-dot{width:16px;height:16px;border-radius:50%;border:2px solid;background:#fff;margin-top:4px;z-index:1}.day-modal-event-dot.in{border-color:#16a34a}.day-modal-event-dot.out{border-color:#dc2626}.day-modal-event-main{min-width:0}.day-modal-event-row{display:flex;align-items:center;gap:.55rem}.day-modal-event-time{font-size:1.1rem;font-weight:800;color:#0f172a;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.day-modal-event-tag{padding:.15rem .5rem;border-radius:999px;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.day-modal-event-tag.in{background:#dcfce7;color:#166534}.day-modal-event-tag.out{background:#fee2e2;color:#991b1b}.day-modal-event-verify{font-size:.75rem;color:var(--text-muted, #64748b);margin-top:2px}.day-modal-event-gap{display:inline-block;margin-top:4px;padding:.15rem .45rem;background:#f1f5f9;border-radius:6px;font-size:.7rem;color:#64748b;font-weight:600;font-variant-numeric:tabular-nums}.wbv-col.clickable{cursor:pointer;transition:transform .12s}.wbv-col.clickable:hover{transform:translateY(-2px)}.wbv-col.clickable:hover .wbv-col-bar{filter:brightness(1.08)}.ad-row.clickable{cursor:pointer;transition:background .12s,border-color .12s}.ad-row.clickable:hover{background:#eef2ff;border-color:#c7d2fe}.emp-attendance-detail-card{margin-bottom:1.25rem}.emp-attendance-detail-card .ad-card{margin-top:0;border-top:none;padding-top:0}.ad-card{margin-top:.85rem;border-top:1px solid #f1f5f9;padding-top:.6rem}.ad-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;background:transparent;border:none;cursor:pointer;padding:.45rem 0;font-family:inherit;color:#0f172a}.ad-toggle-label{font-size:.82rem;font-weight:700}.ad-toggle-chev{transition:transform .18s;color:var(--text-muted, #64748b)}.ad-toggle-chev.open{transform:rotate(90deg)}.ad-body{padding-top:.4rem}.ad-block+.ad-block{margin-top:.85rem}.ad-block-label{font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted, #64748b);margin-bottom:.35rem;padding-left:.15rem}.ad-list{display:flex;flex-direction:column;gap:.35rem}.ad-row{display:grid;grid-template-columns:58px 1fr 1fr auto;gap:.8rem;align-items:center;padding:.7rem .8rem;background:#f8fafc;border-radius:10px;border:1px solid transparent}.ad-row.empty{grid-template-columns:58px 1fr}.ad-row.today{border-color:#bfdbfe;background:#eff6ff}.ad-row-date{text-align:center;min-width:0}.ad-row-dow{font-size:.7rem;font-weight:700;text-transform:uppercase;color:var(--text-muted, #64748b);letter-spacing:.04em}.ad-row.today .ad-row-dow{color:#2563eb}.ad-row-num{font-size:.78rem;font-weight:700;color:#0f172a}.ad-row-empty-main{font-size:.85rem;color:var(--text-muted, #64748b);font-style:italic}.ad-row-time-big{display:flex;flex-direction:column;min-width:0;padding-left:.7rem;border-left:3px solid #e2e8f0}.ad-row-time-big.in{border-left-color:#10b981}.ad-row-time-big.out{border-left-color:#f59e0b}.ad-row-time-lbl{font-size:.6rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted, #64748b);font-weight:700}.ad-row-time-val{font-size:1.35rem;font-weight:800;color:#0f172a;font-variant-numeric:tabular-nums;letter-spacing:-.01em;line-height:1.1;margin-top:1px}.ad-row-time-meta{font-size:.68rem;color:var(--text-muted, #94a3b8);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ad-row-diff.late{color:#dc2626;font-weight:700}.ad-row-diff.ok{color:#16a34a;font-weight:600}.ad-row-hrs-big{text-align:right;font-variant-numeric:tabular-nums;min-width:60px}.ad-row-hrs-big strong{font-size:1.05rem;font-weight:800;color:#0f172a}.ad-row-hrs-of{font-size:.72rem;color:var(--text-muted, #94a3b8)}@media(max-width:540px){.ad-row{grid-template-columns:58px 1fr auto;grid-template-areas:"date in   hrs" "date out  hrs";row-gap:.55rem;column-gap:.6rem}.ad-row-date{grid-area:date;align-self:center}.ad-row-time-big.in{grid-area:in}.ad-row-time-big.out{grid-area:out}.ad-row-hrs-big{grid-area:hrs;align-self:center}.ad-row-time-val{font-size:1.15rem}}.ad-row-makeup{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:.85rem;padding:.5rem .7rem;margin-top:.45rem;background:#fff;border-radius:8px;border:1px dashed #e2e8f0;font-size:.72rem}.ad-row-makeup-item{display:inline-flex;align-items:center;gap:.35rem;color:var(--text-muted, #64748b)}.ad-row-makeup-item strong{font-weight:700;color:#0f172a;font-variant-numeric:tabular-nums}.ad-row-makeup-item.miss strong{color:#dc2626}.ad-row-makeup-lbl{text-transform:uppercase;font-size:.6rem;letter-spacing:.05em;font-weight:700}.ad-row-makeup-acc{color:var(--text-muted, #94a3b8);font-size:.68rem}.pt-card{padding:1rem .9rem}.pt-head{margin-bottom:.85rem}.pt-title{font-size:.95rem;font-weight:700;color:#0f172a}.pt-subtitle{font-size:.72rem;color:var(--text-muted, #64748b);margin-top:2px}.pt-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.3rem}.pt-cell{display:flex;flex-direction:column;align-items:center;text-align:center;min-width:0}.pt-cell-ring{position:relative;width:68px;height:68px}.pt-cell-ring-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:700;color:#0f172a}.pt-cell-label{font-size:.65rem;font-weight:700;letter-spacing:.06em;color:var(--text-muted, #64748b);margin-top:.45rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.pt-cell-value{font-size:.78rem;margin-top:2px}.pt-cell-value strong{font-size:.95rem;font-weight:800}.pt-cell-of{color:var(--text-muted, #94a3b8);font-size:.72rem}.home-stats-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin-top:.75rem}.mini-stat{background:#f8fafc;border-radius:10px;padding:.55rem .5rem;text-align:center;min-width:0}.mini-stat-pct{font-size:1.1rem;font-weight:800;line-height:1}.mini-stat-label{font-size:.72rem;font-weight:600;color:#0f172a;margin-top:4px}.mini-stat-sub{font-size:.65rem;color:var(--text-muted, #64748b);margin-top:1px}.mini-stat-bar{margin-top:5px;height:4px;background:#e2e8f0;border-radius:999px;overflow:hidden}.mini-stat-fill{height:100%;border-radius:999px;transition:width .4s ease}.emp-stats-grid.compact .emp-stat-block{padding:.7rem .85rem}.emp-stats-grid.compact .emp-stat-block strong{font-size:1.15rem!important}.emp-stats-grid.compact .emp-stat-block .text-small{font-size:.78rem}.nom-notice{display:flex;gap:.7rem;align-items:flex-start;background:#eff6ff;border:1px solid #bfdbfe;border-radius:14px;padding:.85rem 1rem;color:#1e3a8a}.nom-notice strong{display:block;margin-bottom:2px}.nom-cats{display:flex;flex-direction:column;gap:.75rem}.nom-cat{background:#fff;border:1px solid var(--border);border-radius:18px;overflow:hidden;box-shadow:0 2px 6px #00000008;transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s;animation:nom-fade-up .5s cubic-bezier(.34,1.56,.64,1) backwards}.nom-cats>.nom-cat:nth-child(1){animation-delay:.05s}.nom-cats>.nom-cat:nth-child(2){animation-delay:.1s}.nom-cats>.nom-cat:nth-child(3){animation-delay:.15s}.nom-cats>.nom-cat:nth-child(4){animation-delay:.2s}.nom-cats>.nom-cat:nth-child(5){animation-delay:.25s}.nom-cats>.nom-cat:nth-child(6){animation-delay:.3s}.nom-cat:hover{box-shadow:0 6px 18px #0000000f}.nom-cat-head{display:flex;align-items:center;gap:.85rem;width:100%;padding:1rem 1.15rem;background:#fff;border:none;cursor:pointer;text-align:left;border-left:4px solid var(--cat-color);transition:background .2s}.nom-cat-head:hover{background:#fafbfc}.nom-cat-icon{width:44px;height:44px;border-radius:13px;background:color-mix(in srgb,var(--cat-color) 12%,transparent);color:var(--cat-color);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.nom-cat-head:hover .nom-cat-icon{transform:scale(1.06) rotate(-3deg)}.nom-cat-titles{flex:1;min-width:0}.nom-cat-title{font-weight:700;font-size:1rem;color:var(--text)}.nom-cat-count{font-size:.78rem;color:var(--text-muted);margin-top:2px}.nom-cat-subtotal{font-size:1.1rem;font-weight:800;letter-spacing:-.01em;margin-right:.5rem;white-space:nowrap}.nom-cat-subtotal.pos{color:#10b981}.nom-cat-subtotal.neg{color:#ef4444}.nom-cat-chev{color:var(--text-muted);transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.nom-cat-chev.open{transform:rotate(180deg)}.nom-cat-body{max-height:0;overflow:hidden;transition:max-height .45s cubic-bezier(.34,1.56,.64,1)}.nom-cat-body.open{max-height:2000px}.nom-line{display:flex;align-items:center;gap:.85rem;padding:.9rem 1.15rem;border-top:1px solid #f1f5f9;animation:nom-line-in .4s cubic-bezier(.34,1.56,.64,1) backwards}.nom-line:first-child{border-top:1px solid #f1f5f9}.nom-line-icon{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.nom-line-main{flex:1;min-width:0}.nom-line-title{font-weight:600;font-size:.95rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nom-line-sub{font-size:.78rem;color:var(--text-muted);margin-top:2px;line-height:1.35}.nom-line-amount{font-size:1rem;font-weight:700;white-space:nowrap;letter-spacing:-.01em}.nom-line-amount.pos{color:#10b981}.nom-line-amount.neg{color:#ef4444}.nom-section-title{display:flex;align-items:center;gap:.5rem;font-size:1.05rem;font-weight:800;letter-spacing:-.01em;margin:0 0 .75rem;color:var(--text)}.nom-section-subtitle{font-size:.92rem;font-weight:700;margin:1.25rem 0 .5rem;color:var(--text)}.nom-current-week{background:linear-gradient(135deg,#eff6ff,#dbeafe);border:1px solid #bfdbfe;border-radius:14px;margin-top:.5rem;overflow:hidden;animation:nom-fade-up .5s cubic-bezier(.34,1.56,.64,1) backwards}.nom-current-week-head{display:flex;align-items:center;gap:.7rem;padding:1rem 1.1rem .75rem}.nom-current-week-icon{width:34px;height:34px;border-radius:9px;background:#3b82f626;color:#2563eb;display:flex;align-items:center;justify-content:center;flex-shrink:0}.nom-current-week-title{font-weight:700;font-size:.98rem}.nom-current-week-sub{font-size:.78rem;color:var(--text-muted)}.nom-cw-week{padding:.85rem 1.1rem 1rem;border-top:1px solid rgba(191,219,254,.6)}.nom-cw-week:first-of-type{border-top:none}.nom-cw-week-head{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;margin-bottom:.5rem}.nom-cw-week-meta{font-size:.78rem;color:var(--text-muted)}.nom-cw-bar{height:6px;background:#fff9;border-radius:4px;overflow:hidden;margin-bottom:.75rem}.nom-cw-bar-fill{height:100%;background:#3b82f6;border-radius:4px;transition:width .4s}.nom-cw-bonuses{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.5rem}.nom-cw-bonus{padding:.6rem .7rem;border:1px solid;border-radius:8px}.nom-cw-bonus-name{font-weight:600;font-size:.84rem}.nom-cw-bonus-label{font-weight:700;font-size:.76rem;margin-top:2px}.nom-cw-bonus-sub{font-size:.72rem;color:var(--text-muted);margin-top:2px}.week-chip{display:inline-block;font-size:.7rem;font-weight:600;padding:2px 8px;border-radius:999px;background:#fff;color:var(--text-soft);border:1px solid var(--border);line-height:1.4}.nom-missed{background:#fffbeb;border:1px solid #fde68a;border-radius:14px;overflow:hidden;margin-top:.5rem;animation:nom-fade-up .5s cubic-bezier(.34,1.56,.64,1) backwards;animation-delay:.3s}.nom-missed-head{display:flex;align-items:center;gap:.65rem;width:100%;padding:.75rem 1rem;background:transparent;border:none;cursor:pointer;text-align:left;transition:background .2s}.nom-missed-head:hover{background:#f59e0b0f}.nom-missed-icon{width:32px;height:32px;border-radius:10px;background:#f59e0b2e;color:#b45309;display:flex;align-items:center;justify-content:center;flex-shrink:0}.nom-missed-titles{flex:1;min-width:0}.nom-missed-title{font-weight:700;font-size:.88rem;color:#92400e}.nom-missed-count{font-size:.72rem;color:#b45309;margin-top:1px}.nom-missed-amount{font-size:.95rem;font-weight:800;color:#b45309;margin-right:.4rem;white-space:nowrap}.nom-missed-line{background:#fff}.nom-missed-line-icon{background:#f59e0b26!important;color:#b45309!important}.nom-missed .nom-line-sub{color:#78716c}.nom-loan-wrap{margin-top:1.5rem}.nom-loan-card{background:linear-gradient(135deg,#7c3aed,#a78bfa);border-radius:22px;padding:1.4rem;color:#fff;box-shadow:0 14px 30px #7c3aed40;animation:nom-slide-in .5s cubic-bezier(.34,1.56,.64,1);margin-bottom:.85rem}.nom-loan-card+.nom-loan-card{margin-top:.85rem}.nom-loan-card.biweekly:not([class*=slot-]){background:linear-gradient(135deg,#0e7490,#22d3ee);box-shadow:0 14px 30px #0e749040}.nom-loan-card.slot-0{background:linear-gradient(135deg,#7c3aed,#a78bfa);box-shadow:0 14px 30px #7c3aed40}.nom-loan-card.slot-1{background:linear-gradient(135deg,#0e7490,#22d3ee);box-shadow:0 14px 30px #0e749040}.nom-loan-card.slot-2{background:linear-gradient(135deg,#c2410c,#fb923c);box-shadow:0 14px 30px #c2410c40}.nom-loan-card.slot-3{background:linear-gradient(135deg,#15803d,#4ade80);box-shadow:0 14px 30px #15803d40}.nom-loan-card.slot-4{background:linear-gradient(135deg,#be185d,#f472b6);box-shadow:0 14px 30px #be185d40}.nom-loan-top{display:flex;align-items:center;gap:.85rem;margin-bottom:1rem}.nom-loan-icon{width:48px;height:48px;border-radius:14px;background:#fff3;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.nom-loan-balance{flex:1}.nom-loan-balance .text-xs{opacity:.85}.nom-loan-balance strong{font-size:1.75rem;font-weight:800;letter-spacing:-.02em}.nom-loan-progress{height:8px;background:#ffffff38;border-radius:999px;overflow:hidden;margin-bottom:1rem}.nom-loan-progress-fill{height:100%;background:#fff;border-radius:999px;transition:width .7s cubic-bezier(.34,1.56,.64,1)}.nom-loan-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.85rem}.nom-loan-stats>div{font-size:.85rem}.nom-loan-stats strong{display:block;font-size:1.05rem;font-weight:700;margin-top:2px}.nom-loan-stats .text-xs{opacity:.85}.nom-loan-summary{margin-top:.5rem;font-size:.82rem;opacity:.95;display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.nom-loan-summary strong{font-weight:700}.nom-loan-summary .dot{opacity:.6}.nom-loan-schedule{margin-top:.95rem;padding-top:.85rem;border-top:1px solid rgba(255,255,255,.22)}.nom-loan-schedule-title{display:flex;align-items:center;gap:.4rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;opacity:.85;margin-bottom:.55rem;font-weight:600}.nom-loan-schedule ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem}.nom-loan-schedule li{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;column-gap:.5rem;row-gap:.15rem;font-size:.85rem}.nom-loan-schedule .ds-date{font-weight:700;grid-column:1;grid-row:1}.nom-loan-schedule .ds-amt{font-weight:700;text-align:right;grid-column:2;grid-row:1}.nom-loan-schedule .ds-meta{grid-column:1 / -1;grid-row:2;font-size:.74rem;opacity:.85}.nom-payments{background:#fff;border:1px solid var(--border);border-radius:18px;overflow:hidden}.nom-payment{display:flex;align-items:center;gap:.85rem;padding:.85rem 1rem;border-bottom:1px solid #f1f5f9;animation:nom-line-in .4s cubic-bezier(.34,1.56,.64,1) backwards}.nom-payment:last-child{border-bottom:none}.nom-empty{background:#fff;border:2px dashed var(--border);border-radius:16px;padding:1.6rem;text-align:center;color:var(--text-muted)}.nom-empty>svg{color:var(--text-muted);margin-bottom:.5rem}.nom-empty-title{font-weight:700;font-size:.95rem;color:var(--text);margin-bottom:.25rem}@keyframes nom-pop{0%{opacity:0;transform:scale(.7)}60%{opacity:1;transform:scale(1.08)}to{opacity:1;transform:scale(1)}}@keyframes nom-slide-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes nom-fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes nom-line-in{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@keyframes nom-num-in{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@media(max-width:600px){.nom-page-icon{width:44px;height:44px}.nom-page-head h1{font-size:1.3rem}.nom-hero{padding:1.3rem 1.1rem;border-radius:18px}.nom-hero-amount{font-size:2.1rem}.nom-cat-icon{width:38px;height:38px}.nom-cat-title{font-size:.95rem}.nom-cat-subtotal{font-size:1rem}}.makeup-banner{display:flex;align-items:center;gap:.85rem;border-radius:14px;padding:1rem 1.2rem;margin-bottom:1rem;animation:makeup-in .4s cubic-bezier(.34,1.56,.64,1)}.makeup-banner.active{background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid #f59e0b;color:#78350f}.makeup-banner.missed{background:#fff7ed;border:1px solid #fdba74;color:#7c2d12}.makeup-banner.lost{background:#fee2e2;border:1px solid #f87171;color:#7f1d1d}.makeup-icon{width:44px;height:44px;border-radius:50%;background:#ffffff8c;display:flex;align-items:center;justify-content:center;flex-shrink:0;animation:makeup-pulse 2.4s infinite cubic-bezier(.34,1.56,.64,1)}.makeup-banner.lost .makeup-icon{animation:none}@keyframes makeup-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.makeup-content{flex:1;min-width:0}.makeup-title{font-weight:700;font-size:.95rem;margin-bottom:3px}.makeup-sub{font-size:.83rem;line-height:1.45;opacity:.9}.makeup-time{flex-shrink:0;background:#fff;border-radius:12px;padding:.5rem .85rem;text-align:center;box-shadow:0 2px 6px #00000014}.makeup-time-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.05em;font-weight:600;color:#92400e}.makeup-time-value{font-size:1.45rem;font-weight:800;color:#b45309;letter-spacing:-.02em;line-height:1}@keyframes makeup-in{0%{opacity:0;transform:translateY(-6px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.qsum-bar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;background:#fff;border:1px solid var(--border);border-radius:16px;padding:1rem 1.5rem;margin-bottom:1rem;box-shadow:0 2px 8px #0000000a;animation:qsum-in .5s cubic-bezier(.34,1.56,.64,1);gap:1rem}.qsum-bar:before{content:"";grid-column:2;width:1px;height:38px;background:var(--border)}@keyframes qsum-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.qsum-period{grid-column:1;text-align:left}.qsum-net{grid-column:3;text-align:right}.qsum-period-label,.qsum-label{font-size:.68rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.qsum-period-range{font-weight:700;font-size:1rem;color:var(--text);margin-top:4px}.qsum-net strong{font-size:1.6rem;font-weight:800;color:var(--brand-700, #1d4ed8);display:block;margin-top:2px;letter-spacing:-.02em}@media(max-width:600px){.qsum-bar{grid-template-columns:1fr;gap:.75rem;padding:.95rem 1.1rem;text-align:center}.qsum-bar:before{grid-column:1;width:80%;height:1px;justify-self:center}.qsum-period,.qsum-net{grid-column:1;text-align:center}.qsum-net strong{font-size:1.5rem}}.skills-list{display:flex;flex-direction:column;gap:.65rem}.skill-row{display:flex;align-items:center;gap:.85rem;padding:.45rem 0;border-bottom:1px solid var(--border)}.skill-row:last-child{border-bottom:none}.skill-pct{position:relative;width:50px;height:50px}.skill-pct-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700}.emp-side-stack{display:flex;flex-direction:column;gap:.8rem}.birthday-side-card{background:linear-gradient(135deg,#1f2937,#0f172a);color:#fff;border:none;position:relative;overflow:hidden}.side-action-card{padding:.85rem 1rem}.side-action-card.amber{background:linear-gradient(135deg,#fef3c7,#fde68a);border-color:#fef3c7}.quick-actions{display:flex;flex-direction:column;gap:.55rem}.quick-action{display:flex;align-items:center;gap:.75rem;padding:.6rem .7rem;border:1px solid var(--border);border-radius:10px;text-decoration:none;color:var(--text);transition:all .15s}.quick-action:hover{background:var(--brand-50);border-color:var(--brand-500);transform:translateY(-1px)}.qa-icon{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center}.text-muted{color:var(--text-muted)}.text-small{font-size:.85rem}.text-xs{font-size:.74rem}.flex-1{flex:1}.row{display:flex;align-items:center;gap:.5rem}.gap-1{gap:.4rem}.gap-2{gap:.75rem}.mb-1{margin-bottom:.4rem}.mb-2{margin-bottom:.8rem}.mt-1{margin-top:.4rem}.mt-2{margin-top:.8rem}.mt-3{margin-top:1.2rem}.list-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden}.list-row{display:flex;align-items:center;gap:.75rem;padding:.85rem 1rem;border-bottom:1px solid var(--border);transition:background .12s}.list-row:last-child{border-bottom:none}.list-row:hover{background:var(--slate-50)}.list-main{flex:1;min-width:0}.list-title{font-weight:600;font-size:.9rem}.list-sub{font-size:.78rem;color:var(--text-muted);margin-top:.1rem}.empty{text-align:center;padding:1.5rem 1rem;background:var(--surface);border:2px dashed var(--border);border-radius:var(--radius)}.empty-icon{width:48px;height:48px;margin:0 auto .6rem;background:var(--bg);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.empty-title{font-size:.95rem;font-weight:600;margin:0 0 .3rem}.empty-text{color:var(--text-muted);font-size:.85rem;margin:0 auto;max-width:300px}.btn-dark{background:#0f172a;color:#fff}.btn-dark:hover{background:#1f2937}.avatar{border-radius:50%;background:linear-gradient(135deg,var(--brand-500),var(--brand-700));color:#fff;font-weight:700;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.avatar.sm{width:28px;height:28px;font-size:.7rem}.avatar.lg{width:48px;height:48px;font-size:1rem}.btn-large{padding:.85rem 1.4rem;font-size:.95rem;border-radius:10px}.loading-block{display:flex;align-items:center;justify-content:center;padding:3rem;color:var(--text-muted);gap:.6rem}.spinner.dark{display:inline-block;width:18px;height:18px;border:2.5px solid var(--border);border-top-color:var(--brand-500);border-radius:50%;animation:spin .7s linear infinite}.alert.error{background:var(--red-100);color:var(--red-600);padding:.75rem 1rem;border-radius:8px;display:flex;align-items:center;gap:.5rem;font-size:.88rem}:root{--imsg-blue: #0B93F6;--imsg-blue-grad: linear-gradient(180deg, #2997FF 0%, #0B73E6 100%);--imsg-gray: #E9E9EB;--imsg-text-gray: #1d1d1f;--imsg-bg: #ffffff;--imsg-time: #8e8e93}.chat-page{position:relative}.chat-shell.imsg{display:grid;grid-template-columns:320px 1fr;gap:1rem;height:calc(100vh - 220px);min-height:540px}.chat-shell.imsg .chat-sidebar{background:var(--surface);border:1px solid var(--border);border-radius:14px;display:flex;flex-direction:column;overflow:hidden}.chat-shell.imsg .chat-main{background:var(--imsg-bg);border:1px solid var(--border);border-radius:14px;display:flex;flex-direction:column;overflow:hidden}.chat-head.imsg{display:flex;align-items:center;gap:.5rem;padding:.65rem .85rem;border-bottom:1px solid var(--border);background:#ffffffd9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0;z-index:2}.chat-head-main{flex:1;display:flex;align-items:center;gap:.55rem;justify-content:center}.chat-head-text{text-align:center}.chat-head-name{font-weight:600;font-size:.95rem;letter-spacing:-.01em}.chat-head-sub{font-size:.72rem;color:var(--imsg-time)}.chat-contact-avatar.lg{width:32px;height:32px;font-size:.7rem}.chat-head.imsg .chat-back-btn{display:none;background:transparent;color:var(--imsg-blue);border:none;padding:.3rem;width:auto;height:auto}.chat-messages.imsg{flex:1;overflow-y:auto;padding:1rem .85rem;display:flex;flex-direction:column;gap:2px;background:#fff}.day-separator{align-self:center;color:var(--imsg-time);font-size:.72rem;font-weight:600;margin:.85rem 0 .4rem}.imsg-row{display:flex;flex-direction:column;max-width:80%;align-items:flex-start}.imsg-row.mine{align-self:flex-end;align-items:flex-end}.imsg-row.first{margin-top:.55rem}.imsg-bubble{padding:.5rem .85rem;font-size:.94rem;line-height:1.35;border-radius:18px;background:var(--imsg-gray);color:var(--imsg-text-gray);word-break:break-word;white-space:pre-wrap;position:relative}.imsg-bubble.mine{background:var(--imsg-blue-grad);color:#fff}.imsg-row.last .imsg-bubble{border-bottom-left-radius:6px}.imsg-row.last.mine .imsg-bubble{border-bottom-left-radius:18px;border-bottom-right-radius:6px}.imsg-time{font-size:.7rem;color:var(--imsg-time);margin-top:4px;margin-bottom:6px;padding:0 4px}.chat-input-wrap{position:relative;border-top:1px solid var(--border);background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.imsg-input{display:flex;align-items:flex-end;gap:.5rem;padding:.6rem .7rem}.imsg-icon-btn{background:transparent;border:none;color:var(--imsg-blue);width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:background .12s}.imsg-icon-btn:hover{background:#0b93f614}.imsg-plus-wrap{position:relative;display:inline-flex;flex-shrink:0}.imsg-plus-btn{width:32px;height:32px;border-radius:50%;background:#e9e9eb;border:none;color:#1d1d1f;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .35s cubic-bezier(.34,1.56,.64,1)}.imsg-plus-btn:hover{background:#d4d4d8;transform:scale(1.1)}.imsg-plus-btn:active{transform:scale(.9)}.imsg-plus-btn.active{background:var(--imsg-blue);color:#fff;transform:rotate(135deg) scale(1.05);box-shadow:0 4px 14px #0b93f659}.imsg-actions-menu{position:absolute;bottom:calc(100% + 10px);left:-4px;background:#fffffffa;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(0,0,0,.08);border-radius:16px;padding:.45rem;box-shadow:0 16px 50px #0000002e,0 0 0 1px #00000008;display:flex;flex-direction:column;gap:2px;min-width:220px;z-index:20;transform-origin:bottom left;animation:menu-disney .4s cubic-bezier(.34,1.56,.64,1)}@keyframes menu-disney{0%{opacity:0;transform:scale(.3) translateY(20px)}60%{opacity:1;transform:scale(1.05) translateY(-2px)}to{opacity:1;transform:scale(1) translateY(0)}}.imsg-actions-menu button{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;background:transparent;border:none;border-radius:12px;font-size:.93rem;font-weight:500;color:var(--text);cursor:pointer;text-align:left;transition:all .18s cubic-bezier(.34,1.56,.64,1);opacity:0;animation:action-item-pop .45s cubic-bezier(.34,1.56,.64,1) forwards}.imsg-actions-menu button:nth-child(1){animation-delay:.05s}.imsg-actions-menu button:nth-child(2){animation-delay:.12s}.imsg-actions-menu button:nth-child(3){animation-delay:.19s}@keyframes action-item-pop{0%{opacity:0;transform:translate(-12px) scale(.7)}60%{opacity:1;transform:translate(2px) scale(1.03)}to{opacity:1;transform:translate(0) scale(1)}}.imsg-actions-menu button:hover{background:#0000000d;transform:translate(3px)}.imsg-actions-menu button:active{transform:scale(.97)}.action-icon{width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .25s cubic-bezier(.34,1.56,.64,1)}.imsg-actions-menu button:hover .action-icon{transform:scale(1.15) rotate(-8deg)}.action-label{flex:1}.imsg-send-btn:not(:disabled){animation:send-activate .4s cubic-bezier(.34,1.56,.64,1)}@keyframes send-activate{0%{transform:scale(.6)}60%{transform:scale(1.15)}to{transform:scale(1)}}.imsg-send-btn:hover:not(:disabled){transform:scale(1.12);box-shadow:0 4px 12px #0b93f666}.imsg-send-btn:active:not(:disabled){transform:scale(.92)}.imsg-row{animation:msg-appear .4s cubic-bezier(.34,1.56,.64,1);transform-origin:bottom left}.imsg-row.mine{transform-origin:bottom right}@keyframes msg-appear{0%{opacity:0;transform:scale(.6) translateY(15px)}60%{opacity:1;transform:scale(1.04) translateY(-2px)}to{opacity:1;transform:scale(1) translateY(0)}}.imsg-bubble{transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.imsg-bubble:hover{transform:scale(1.02)}.day-separator{animation:fade-pop .4s cubic-bezier(.34,1.56,.64,1)}@keyframes fade-pop{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.emoji-panel{animation:emoji-slide .3s cubic-bezier(.34,1.56,.64,1)}@keyframes emoji-slide{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.att-preview{animation:att-pop .4s cubic-bezier(.34,1.56,.64,1)}@keyframes att-pop{0%{opacity:0;transform:scale(.5) rotate(-5deg)}60%{opacity:1;transform:scale(1.08) rotate(2deg)}to{opacity:1;transform:scale(1) rotate(0)}}.att-preview img{transition:transform .25s cubic-bezier(.34,1.56,.64,1)}.att-preview:hover img{transform:scale(1.04)}.att-preview-remove{transition:all .2s cubic-bezier(.34,1.56,.64,1)}.att-preview-remove:hover{transform:scale(1.2) rotate(90deg)}.imsg-image{transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.imsg-image:hover{transform:scale(1.03)}.chat-contact{transition:all .2s cubic-bezier(.4,0,.2,1)!important}.chat-contact:hover{transform:translate(3px)}.chat-contact.active{animation:contact-select .4s cubic-bezier(.34,1.56,.64,1)}@keyframes contact-select{0%{transform:scale(.97)}60%{transform:scale(1.02)}to{transform:scale(1)}}.chat-contact-avatar{transition:transform .25s cubic-bezier(.34,1.56,.64,1)}.chat-contact:hover .chat-contact-avatar{transform:scale(1.1) rotate(-3deg)}.camera-modal-content{animation:camera-pop .45s cubic-bezier(.34,1.56,.64,1)}@keyframes camera-pop{0%{opacity:0;transform:scale(.85)}60%{opacity:1;transform:scale(1.02)}to{opacity:1;transform:scale(1)}}.camera-shoot{transition:all .2s cubic-bezier(.34,1.56,.64,1)}.camera-shoot:hover:not(:disabled){transform:scale(1.08)}.camera-flip{transition:all .25s cubic-bezier(.34,1.56,.64,1)}.camera-flip:hover{transform:rotate(180deg) scale(1.1)}.chat-head.imsg .chat-back-btn{transition:all .2s cubic-bezier(.34,1.56,.64,1)}.chat-head.imsg .chat-back-btn:hover{transform:translate(-3px) scale(1.1)}.chat-unread-pill{animation:unread-pulse 2s ease-in-out infinite}@keyframes unread-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.online-dot{animation:online-pulse 2.5s ease-in-out infinite}@keyframes online-pulse{0%,to{box-shadow:0 0 #10b98199}50%{box-shadow:0 0 0 6px #10b98100}}.imsg-input-pill{flex:1;position:relative;display:flex;align-items:center;background:var(--imsg-bg);border:1px solid #d2d2d7;border-radius:999px;padding:0;overflow:hidden}.imsg-input-pill input{flex:1;border:none;outline:none;padding:.55rem 1rem;font-size:.95rem;background:transparent;color:var(--imsg-text-gray);font-family:inherit}.imsg-input-pill input::placeholder{color:#8e8e93;font-style:italic}.imsg-send-btn{background:var(--imsg-blue);color:#fff;border:none;width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;margin:3px;cursor:pointer;transition:all .15s;flex-shrink:0}.imsg-send-btn:hover:not(:disabled){transform:scale(1.05)}.imsg-send-btn:active:not(:disabled){transform:scale(.95)}.imsg-send-btn:disabled{background:#d1d1d6;cursor:not-allowed;opacity:.6}.camera-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#000000f5;display:flex;align-items:center;justify-content:center;padding:1rem;animation:fade-in .18s ease-out}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.camera-modal-content{position:relative;width:100%;max-width:560px;display:flex;flex-direction:column;align-items:center;gap:1rem}.camera-close{position:absolute;top:-.5rem;right:0;background:#ffffff26;color:#fff;border:none;width:38px;height:38px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:5;transition:background .12s}.camera-close:hover{background:#ffffff40}.camera-view{position:relative;width:100%;border-radius:16px;overflow:hidden;background:#000;box-shadow:0 20px 50px #00000080;max-height:70vh;display:flex;align-items:center;justify-content:center}.camera-video{width:100%;height:auto;max-height:70vh;display:block}.camera-video.mirrored{transform:scaleX(-1)}.camera-preview{width:100%;height:auto;max-height:70vh;display:block;object-fit:contain}.camera-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;color:#fff;background:#0006}.camera-flip{position:absolute;bottom:1rem;right:1rem;width:42px;height:42px;border-radius:50%;background:#00000080;border:1px solid rgba(255,255,255,.3);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .12s}.camera-flip:hover{background:#000000b3}.camera-actions{display:flex;gap:1.5rem;justify-content:center;align-items:center;padding:.5rem 0}.camera-shoot{width:76px;height:76px;border-radius:50%;background:transparent;border:4px solid white;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:transform .1s}.camera-shoot:active{transform:scale(.92)}.camera-shoot:disabled{opacity:.4;cursor:not-allowed}.camera-shoot-inner{width:60px;height:60px;border-radius:50%;background:#fff}.camera-actions.captured{display:flex;gap:.75rem;flex-wrap:wrap}.btn-cam-primary,.btn-cam-secondary{padding:.7rem 1.5rem;border-radius:999px;border:none;font-size:.95rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:.45rem;transition:transform .1s}.btn-cam-primary{background:var(--imsg-blue);color:#fff}.btn-cam-primary:hover{background:#0070d6}.btn-cam-primary:active{transform:scale(.96)}.btn-cam-secondary{background:#ffffff2e;color:#fff;border:1px solid rgba(255,255,255,.2)}.btn-cam-secondary:hover{background:#ffffff47}.camera-error{color:#fff;background:#dc262626;border:1px solid rgba(220,38,38,.4);padding:2rem;border-radius:14px;display:flex;flex-direction:column;align-items:center;text-align:center;max-width:400px}.imsg-bubble.has-image{padding:3px;overflow:hidden}.imsg-bubble.image-only{padding:3px;background:transparent!important}.imsg-image{display:block;max-width:280px;max-height:320px;width:auto;height:auto;border-radius:16px;cursor:zoom-in}.imsg-bubble.has-image .imsg-text{padding:.45rem .85rem .5rem;font-size:.94rem}.att-preview{position:relative;display:inline-block;margin:.5rem .7rem 0;padding:4px;border:1px solid var(--border);border-radius:12px;background:var(--bg)}.att-preview img{display:block;max-width:140px;max-height:120px;border-radius:8px}.att-preview-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0006;color:#fff;border-radius:12px}.att-preview-remove{position:absolute;top:-6px;right:-6px;width:22px;height:22px;border-radius:50%;background:#1f2937;color:#fff;border:2px solid white;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}.emoji-panel{position:absolute;bottom:100%;left:0;right:0;padding:.5rem;background:var(--surface);border-top:1px solid var(--border);z-index:5;display:flex;justify-content:center}.emoji-panel>*{max-width:360px}.chat-search{display:flex;align-items:center;gap:.4rem;padding:.5rem .8rem;margin:.75rem;background:#f0f0f3;border-radius:10px;color:var(--imsg-time)}.chat-search input{flex:1;border:none;background:transparent;outline:none;font-size:.88rem;color:var(--text)}.chat-section-label{padding:.4rem 1.1rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-weight:700}.chat-sidebar-head{display:flex;align-items:center;justify-content:space-between;padding:.65rem 1.1rem .35rem}.chat-compose-btn{width:34px;height:34px;border-radius:50%;background:var(--brand-100, #dbeafe);color:var(--brand-700, #1d4ed8);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .25s cubic-bezier(.34,1.56,.64,1),background .2s}.chat-compose-btn:hover{background:var(--brand-200, #bfdbfe);transform:scale(1.08) rotate(90deg)}.chat-contact-preview{font-size:.83rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px;max-width:100%}.chat-compose-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;display:flex;align-items:flex-start;justify-content:center;padding-top:6vh;animation:chat-compose-fade .2s ease-out}@keyframes chat-compose-fade{0%{opacity:0}to{opacity:1}}.chat-compose-modal{background:#fff;border-radius:18px;width:92%;max-width:520px;max-height:75vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 48px #00000040;animation:chat-compose-in .35s cubic-bezier(.34,1.56,.64,1)}@keyframes chat-compose-in{0%{opacity:0;transform:translateY(-12px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.chat-compose-head{display:flex;justify-content:center;align-items:center;padding:1rem;border-bottom:1px solid var(--border);position:relative}.chat-compose-head strong{font-size:1rem;font-weight:700}.chat-compose-close{position:absolute;right:.9rem;top:50%;transform:translateY(-50%);width:32px;height:32px;border-radius:50%;border:none;background:var(--slate-100, #f1f5f9);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-muted);transition:background .2s,transform .2s}.chat-compose-close:hover{background:var(--slate-200, #e2e8f0);transform:translateY(-50%) scale(1.08)}.chat-compose-to{display:flex;align-items:center;gap:.6rem;padding:.85rem 1rem;border-bottom:1px solid var(--border)}.chat-compose-to-label{color:var(--text-muted);font-size:.95rem;flex-shrink:0}.chat-compose-to input{flex:1;border:none;outline:none;font-size:1rem;background:transparent}.chat-compose-results{flex:1;overflow-y:auto;padding:.4rem 0}.chat-compose-result{width:100%;display:flex;align-items:center;gap:.75rem;padding:.7rem 1rem;background:transparent;border:none;cursor:pointer;text-align:left;transition:background .15s}.chat-compose-result:hover{background:var(--slate-50, #f8fafc)}.chat-compose-result-main{flex:1;min-width:0}.chat-compose-result-name{font-weight:600;font-size:.95rem;color:var(--text)}.chat-compose-result-sub{font-size:.8rem;color:var(--text-muted);margin-top:2px}.chat-contact-list{flex:1;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column}.chat-contact{display:flex;align-items:center;gap:.7rem;padding:.7rem .9rem;background:transparent;border:none;cursor:pointer;text-align:left;transition:background .12s}.chat-contact:hover{background:#f5f5f7}.chat-contact.active{background:var(--imsg-blue);color:#fff}.chat-contact.active .chat-contact-name,.chat-contact.active .chat-contact-sub,.chat-contact.active .chat-contact-time{color:#fff}.chat-contact.active .chat-contact-sub{opacity:.85}.chat-contact-avatar{position:relative;width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--brand-500),var(--brand-700));color:#fff;font-weight:700;font-size:.85rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}.chat-contact-avatar img{width:100%;height:100%;object-fit:cover;display:block}.chat-contact-avatar.sm{width:38px;height:38px;font-size:.78rem}.chat-contact-avatar .online-dot{position:absolute;bottom:1px;right:1px;width:11px;height:11px;border-radius:50%;background:var(--green-500);border:2px solid var(--surface);z-index:1}.chat-contact-main{flex:1;min-width:0}.chat-contact-name{font-weight:600;font-size:.92rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-contact-sub{font-size:.78rem;color:var(--text-muted);margin-top:.1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-contact-meta{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem}.chat-contact-time{font-size:.7rem;color:var(--text-muted)}.chat-unread-pill{background:var(--imsg-blue);color:#fff;font-size:.7rem;font-weight:700;border-radius:999px;padding:.1rem .5rem;min-width:20px;text-align:center}.chat-contact.active .chat-unread-pill{background:#fff;color:var(--imsg-blue)}@media(max-width:900px){.chat-page-active .page-title,.chat-page-active .page-subtitle{display:none}.chat-shell.imsg{grid-template-columns:1fr;gap:0;height:calc(100vh - 200px);min-height:420px;border-radius:0}.chat-page-active .chat-shell.imsg{position:fixed;top:0;right:0;bottom:0;left:0;height:100vh;height:100dvh;margin:0;z-index:100;background:#fff;border-radius:0}.chat-page-active .chat-shell.imsg .chat-sidebar{display:none}.chat-page-active .chat-shell.imsg .chat-main{display:flex;border-radius:0;border:none;height:100%}.chat-page-active .chat-head.imsg{padding:.85rem .7rem;padding-top:max(.85rem,env(safe-area-inset-top))}.chat-page-active .chat-input-wrap{padding-bottom:env(safe-area-inset-bottom)}.chat-shell.imsg:not(.chat-active) .chat-main{display:none}.chat-shell.imsg:not(.chat-active) .chat-sidebar{display:flex}.chat-head.imsg .chat-back-btn{display:inline-flex}}.header-unread{position:absolute;top:2px;right:4px;background:var(--red-500);color:#fff;font-size:.62rem;font-weight:700;padding:1px 5px;border-radius:999px;min-width:16px;line-height:1;text-align:center;box-shadow:0 0 0 2px #fff;z-index:2}.icon-btn{width:32px;height:32px;border-radius:8px;background:transparent;border:1px solid var(--border);display:inline-flex;align-items:center;justify-content:center;color:var(--text-soft);cursor:pointer}.icon-btn:hover{background:var(--slate-100);color:var(--text)}@media(max-width:640px){.layout>header{padding:.75rem 1rem;gap:.75rem;flex-wrap:wrap}.layout>header nav{order:3;width:100%}.stats-mini{grid-template-columns:1fr}.net-card-amount{font-size:2.2rem}main{padding:1rem}}.emp-pet-page{display:flex;flex-direction:column;gap:1rem}.emp-pet-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.emp-pet-head h1{margin:0;font-size:1.5rem;font-weight:800;color:var(--text)}.emp-pet-head p{margin:.25rem 0 0;color:var(--text-muted);font-size:.92rem}.emp-btn-primary{display:inline-flex;align-items:center;gap:.4rem;background:var(--brand-600);color:#fff;border:none;padding:.55rem 1rem;border-radius:10px;font-weight:600;font-size:.9rem;cursor:pointer;transition:background .15s,transform .15s}.emp-btn-primary:hover{background:var(--brand-700);transform:translateY(-1px)}.emp-btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.emp-btn-ghost{background:transparent;color:var(--text-soft);border:1px solid var(--border);padding:.55rem 1rem;border-radius:10px;font-weight:600;font-size:.9rem;cursor:pointer}.emp-btn-ghost:hover{background:var(--slate-100)}.emp-pet-tabs{display:flex;gap:.4rem;flex-wrap:wrap;background:var(--surface);padding:.4rem;border-radius:12px;border:1px solid var(--border)}.emp-pet-tab{background:transparent;border:none;padding:.5rem .9rem;border-radius:8px;color:var(--text-soft);font-weight:600;font-size:.88rem;cursor:pointer;display:inline-flex;align-items:center;gap:.4rem}.emp-pet-tab:hover{background:var(--slate-100);color:var(--text)}.emp-pet-tab.active{background:var(--brand-50);color:var(--brand-700)}.emp-pet-tab span{background:var(--slate-200);color:var(--text-soft);font-size:.72rem;padding:.1rem .45rem;border-radius:999px}.emp-pet-tab.active span{background:var(--brand-600);color:#fff}.emp-pet-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:3rem 1rem;background:var(--surface);border:1px dashed var(--border);border-radius:14px;color:var(--text-muted);text-align:center}.emp-pet-empty h3{margin:.25rem 0 0;color:var(--text)}.emp-pet-empty p{margin:0;font-size:.9rem;max-width:360px}.emp-pet-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:.85rem}.emp-pet-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:1rem;text-align:left;cursor:pointer;transition:all .18s cubic-bezier(.34,1.56,.64,1);display:flex;flex-direction:column;gap:.55rem;box-shadow:var(--shadow-sm)}.emp-pet-card:hover{border-color:var(--brand-200);transform:translateY(-2px);box-shadow:var(--shadow)}.emp-pet-card-head{display:flex;align-items:flex-start;gap:.65rem}.emp-pet-card-icon{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.emp-pet-card-title{flex:1;min-width:0}.emp-pet-card-title strong{display:block;font-size:.95rem;color:var(--text);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.emp-pet-card-title small{font-size:.75rem;color:var(--text-muted)}.emp-pet-card-body{margin:0;color:var(--text-soft);font-size:.88rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;line-height:1.45}.emp-pet-card-response{background:var(--slate-50);border-radius:8px;padding:.55rem .7rem;font-size:.82rem;color:var(--text-soft);line-height:1.4}.emp-pet-card-response strong{color:var(--text)}.emp-pet-status{display:inline-flex;align-items:center;gap:.3rem;font-size:.72rem;font-weight:700;padding:.2rem .55rem;border-radius:999px;white-space:nowrap}.emp-pet-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;z-index:200;display:flex;align-items:center;justify-content:center;padding:1rem;animation:emp-fade .18s ease-out}@keyframes emp-fade{0%{opacity:0}to{opacity:1}}.emp-pet-modal{width:100%;max-width:540px;max-height:92vh;background:var(--surface);border-radius:16px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden;animation:emp-pop .28s cubic-bezier(.34,1.56,.64,1)}@keyframes emp-pop{0%{opacity:0;transform:scale(.92) translateY(10px)}60%{opacity:1;transform:scale(1.02) translateY(0)}to{opacity:1;transform:scale(1)}}.emp-pet-modal-head{display:flex;align-items:center;gap:.55rem;padding:1rem 1.25rem;border-bottom:1px solid var(--border)}.emp-pet-modal-head h3{margin:0;font-size:1.05rem;font-weight:700;color:var(--text);flex:1}.emp-pet-close{background:transparent;border:none;font-size:1.5rem;color:var(--text-muted);cursor:pointer;line-height:1;padding:0 .25rem}.emp-pet-close:hover{color:var(--text)}.emp-pet-back{display:inline-flex;align-items:center;gap:.25rem;background:transparent;border:1px solid var(--border);padding:.3rem .55rem;border-radius:8px;color:var(--text-soft);font-size:.82rem;cursor:pointer}.emp-pet-back:hover{background:var(--slate-100)}.emp-pet-types{padding:1rem 1.25rem 1.25rem;display:flex;flex-direction:column;gap:.5rem;overflow-y:auto}.emp-pet-hint{margin:0 0 .25rem;color:var(--text-muted);font-size:.9rem}.emp-pet-type{display:flex;align-items:center;gap:.85rem;background:var(--surface);border:1px solid var(--border);padding:.75rem .9rem;border-radius:12px;cursor:pointer;text-align:left;transition:all .18s cubic-bezier(.34,1.56,.64,1)}.emp-pet-type:hover{border-color:var(--brand-300, var(--brand-500));transform:translateY(-1px);box-shadow:var(--shadow-sm)}.emp-pet-type-icon{width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.emp-pet-type-text{display:flex;flex-direction:column}.emp-pet-type-text strong{color:var(--text);font-size:.95rem;font-weight:700}.emp-pet-type-text small{font-size:.78rem;color:var(--text-muted);margin-top:2px}.emp-pet-form{padding:1rem 1.25rem 1.25rem;display:flex;flex-direction:column;gap:.75rem;overflow-y:auto}.emp-pet-route{margin:0;padding:.65rem .85rem;background:var(--brand-50);color:var(--brand-700);border-radius:10px;font-size:.85rem}.emp-pet-field{display:flex;flex-direction:column;gap:.3rem}.emp-pet-field>span{font-size:.82rem;color:var(--text-soft);font-weight:600}.emp-pet-field input,.emp-pet-field select,.emp-pet-field textarea{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:.55rem .75rem;font-size:.9rem;color:var(--text);outline:none;font-family:inherit}.emp-pet-field textarea{resize:vertical;min-height:100px}.emp-pet-field input:focus,.emp-pet-field select:focus,.emp-pet-field textarea:focus{border-color:var(--brand-500);box-shadow:0 0 0 3px var(--brand-100)}.emp-pet-row{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.emp-pet-hint-box{padding:.5rem .75rem;background:var(--slate-50);border-radius:8px;font-size:.82rem;color:var(--text-soft)}.emp-pet-error{color:var(--red-600);font-size:.85rem;background:var(--red-50);padding:.5rem .75rem;border-radius:8px}.emp-pet-form-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.5rem}.emp-pet-detail{padding:1rem 1.25rem 1.25rem;display:flex;flex-direction:column;gap:.85rem;overflow-y:auto}.emp-pet-detail-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.emp-pet-detail-meta{color:var(--text-muted);font-size:.82rem}.emp-pet-meta{background:var(--slate-50);border-radius:10px;padding:.75rem .9rem;display:flex;flex-direction:column;gap:.35rem}.emp-pet-meta>div{display:flex;justify-content:space-between;font-size:.88rem}.emp-pet-meta span{color:var(--text-muted)}.emp-pet-meta strong{color:var(--text);font-weight:700}.emp-pet-detail-section{padding:.85rem 1rem;border-radius:12px;border:1px solid var(--border)}.emp-pet-detail-section h4{margin:0 0 .4rem;font-size:.85rem;color:var(--text-soft);font-weight:700;text-transform:uppercase;letter-spacing:.04em}.emp-pet-detail-section p{margin:0;color:var(--text);font-size:.92rem;line-height:1.55;white-space:pre-wrap;word-break:break-word}.emp-pet-pending-note{display:inline-flex;align-items:center;gap:.4rem;background:var(--amber-50);color:var(--amber-700);padding:.65rem .85rem;border-radius:10px;font-size:.88rem;font-weight:500}@media(max-width:640px){.emp-pet-row,.emp-pet-grid{grid-template-columns:1fr}}.profile-page{display:flex;flex-direction:column;gap:1rem;max-width:900px;margin:0 auto;padding:.5rem 0 2rem}.profile-hero{position:relative;border-radius:18px;overflow:hidden;margin-bottom:.25rem}.profile-hero-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(120% 100% at 0% 0%,rgba(37,99,235,.35),transparent 55%),radial-gradient(120% 100% at 100% 100%,rgba(255,91,58,.35),transparent 55%),linear-gradient(135deg,#1e293b,#0f172a)}.profile-hero-inner{position:relative;z-index:1;display:flex;align-items:center;gap:1.25rem;padding:1.5rem;color:#fff;flex-wrap:wrap}.profile-avatar-wrap{position:relative;flex-shrink:0}.profile-avatar{width:96px;height:96px;border-radius:999px;object-fit:cover;border:3px solid rgba(255,255,255,.6);background:#1e293b;display:block;box-shadow:0 8px 20px -10px #00000080}.profile-avatar-fb{display:grid;place-items:center;font-size:1.6rem;font-weight:800;color:#fff;background:linear-gradient(135deg,#2563eb,#ff5b3a)}.profile-avatar-edit{position:absolute;right:-2px;bottom:-2px;width:32px;height:32px;border-radius:999px;background:#ff5b3a;color:#fff;border:2px solid #fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 4px 12px -4px #00000080;transition:transform .16s ease,background .16s}.profile-avatar-edit:hover{background:#f43f5e;transform:scale(1.08)}.profile-avatar-edit:disabled{opacity:.6;cursor:progress}.profile-hero-info{flex:1;min-width:240px}.profile-name{margin:0;font-size:1.5rem;font-weight:800;letter-spacing:-.02em}.profile-role{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:.35rem;font-size:.88rem;color:#ffffffd9}.profile-role span{display:inline-flex;align-items:center;gap:.3rem}.profile-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.65rem}.profile-chip{display:inline-flex;align-items:center;gap:.3rem;background:#ffffff24;color:#fff;padding:.25rem .6rem;border-radius:999px;font-size:.72rem;font-weight:600;letter-spacing:.02em}.profile-card{padding:1.1rem 1.2rem}.profile-card-head{display:flex;align-items:center;gap:.45rem;font-size:.95rem;font-weight:700;color:var(--text);margin-bottom:.2rem}.profile-card-head svg{color:var(--primary)}.profile-card-hint{margin:0 0 .85rem;font-size:.78rem;color:var(--muted)}.profile-row{display:grid;grid-template-columns:1fr 1fr;gap:.85rem 1rem;margin-bottom:.85rem}.profile-row:last-child{margin-bottom:0}@media(max-width:640px){.profile-row{grid-template-columns:1fr}}.profile-field{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.85rem}.profile-field:last-child{margin-bottom:0}.profile-field-label{display:inline-flex;align-items:center;gap:.3rem;font-size:.78rem;font-weight:600;color:var(--muted)}.profile-field input,.profile-field select,.profile-field textarea{width:100%;padding:.55rem .7rem;background:var(--surface);border:1px solid var(--border);border-radius:10px;font-size:.92rem;color:var(--text);transition:border-color .16s,box-shadow .16s;font-family:inherit}.profile-field input:focus,.profile-field select:focus,.profile-field textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2563eb26}.profile-field textarea{resize:vertical;min-height:70px}.profile-readonly-grid{display:grid;grid-template-columns:1fr 1fr;gap:.65rem 1rem}@media(max-width:640px){.profile-readonly-grid{grid-template-columns:1fr}}.profile-read-field{display:flex;flex-direction:column;gap:.15rem;padding:.55rem .7rem;background:var(--bg);border:1px solid var(--border);border-radius:10px}.profile-read-label{display:inline-flex;align-items:center;gap:.3rem;font-size:.72rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.profile-read-label svg{color:var(--primary)}.profile-read-value{font-size:.9rem;font-weight:600;color:var(--text)}.profile-actions{display:flex;justify-content:flex-end;gap:.65rem;padding:.5rem 0}.user-avatar-link{border-radius:999px;text-decoration:none;display:inline-flex;transition:outline .16s}.user-avatar-img{object-fit:cover;padding:0}.alert{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem .8rem;border-radius:10px;font-size:.86rem;font-weight:600}.alert-error{background:#fee2e2;color:#b91c1c;border:1px solid #fecaca}.alert-ok{background:#dcfce7;color:#15803d;border:1px solid #bbf7d0}.chat-typing{display:inline-flex;align-items:center;gap:.4rem;color:var(--brand-600, #2563eb);font-weight:600}.chat-typing-dots{display:inline-flex;align-items:center;gap:2px}.chat-typing-dots i{width:5px;height:5px;border-radius:999px;background:currentColor;display:inline-block;animation:chat-typing-bounce 1.2s infinite ease-in-out both}.chat-typing-dots i:nth-child(2){animation-delay:.15s}.chat-typing-dots i:nth-child(3){animation-delay:.3s}@keyframes chat-typing-bounce{0%,80%,to{transform:translateY(0);opacity:.3}40%{transform:translateY(-3px);opacity:1}}:root{--sf-radius: 16px;--sf-radius-sm: 10px;--sf-easing: cubic-bezier(.22, .95, .34, 1);--sf-easing-out: cubic-bezier(.16, 1, .3, 1);--sf-shadow: 0 8px 30px rgba(0, 0, 0, .08);--sf-shadow-sm: 0 2px 12px rgba(0, 0, 0, .06)}@media(prefers-reduced-motion:reduce){.sf-sheet,.sf-sheet-backdrop,.sf-story-viewer,.sf-post-fresh,.sf-heart-overlay,.sf-skel-shimmer,.sf-action-btn,.sf-icon-btn,.sf-new-btn,.sf-empty-btn{transition:none!important;animation:none!important}}.sf-page{max-width:540px;margin:0 auto;padding:0 0 max(4rem,env(safe-area-inset-bottom,0px));-webkit-tap-highlight-color:transparent}.sf-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.6rem;margin-bottom:.6rem}.sf-title{display:inline-flex;align-items:center;gap:.5rem;font-size:1.6rem;font-weight:800;margin:0;color:var(--text);letter-spacing:-.01em}.sf-title-spark{color:#ff5b3a}.sf-subtitle{color:var(--text-muted);margin:.15rem 0 0;font-size:.9rem;line-height:1.35}.sf-page-actions{display:flex;align-items:center;gap:.5rem;margin-top:.2rem}.sf-refresh-btn,.sf-new-btn{width:40px;height:40px;border-radius:50%;border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:transform .18s var(--sf-easing),box-shadow .2s ease,background .2s ease;touch-action:manipulation}.sf-refresh-btn{background:#fff;color:var(--text);border:1px solid var(--border)}.sf-refresh-btn:hover{background:#f8fafc}.sf-refresh-btn:active:not(:disabled){transform:scale(.92)}.sf-refresh-btn:disabled{opacity:.5;cursor:default}.sf-new-btn{background:linear-gradient(135deg,#ff5b3a,#f59e0b);color:#fff;box-shadow:0 6px 16px #ff5b3a59}.sf-new-btn:hover{box-shadow:0 8px 22px #ff5b3a80}.sf-new-btn:active{transform:scale(.92)}.sf-error{margin-bottom:.8rem;animation:sf-slide-in .3s var(--sf-easing-out)}@keyframes sf-slide-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.sf-avatar{border-radius:50%;object-fit:cover;background:var(--border);display:block;flex-shrink:0}.sf-avatar-fb{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#94a3b8,#475569);color:#fff;font-weight:700}.sf-avatar-ring{box-shadow:0 0 0 2px #fff,0 0 0 3.5px #2563eb}.sf-stories-tray{display:flex;gap:.9rem;overflow-x:auto;padding:.6rem .1rem 1rem;margin:0 -.25rem .5rem;border-bottom:1px solid var(--border);scrollbar-width:none;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}.sf-stories-tray::-webkit-scrollbar{display:none}.sf-story-cell{display:flex;flex-direction:column;align-items:center;gap:.4rem;background:transparent;border:none;cursor:pointer;min-width:74px;padding:.25rem;border-radius:12px;transition:transform .18s var(--sf-easing);scroll-snap-align:start;touch-action:manipulation}.sf-story-cell:active{transform:scale(.94)}.sf-story-name{font-size:.74rem;color:var(--text);max-width:68px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;letter-spacing:.01em}.sf-story-ring{position:relative;width:66px;height:66px;border-radius:50%;padding:3px;display:flex;align-items:center;justify-content:center;background:var(--border)}.sf-story-ring.unviewed{background:conic-gradient(from 230deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888,#f09433)}.sf-story-ring.viewed{background:linear-gradient(135deg,#cbd5e1,#94a3b8);opacity:.55}.sf-story-ring.active{background:conic-gradient(from 230deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888,#f09433)}.sf-story-ring.empty{background:#cbd5e1}.sf-story-ring:before{content:"";position:absolute;top:2px;right:2px;bottom:2px;left:2px;border-radius:50%;background:var(--bg-card, white)}.sf-story-ring>.sf-avatar{position:relative;z-index:1}.sf-story-add{position:absolute;z-index:2;bottom:-3px;right:-3px;width:22px;height:22px;border-radius:50%;background:#2563eb;color:#fff;display:flex;align-items:center;justify-content:center;border:3px solid var(--bg-card, white);box-shadow:0 1px 3px #00000026}.sf-feed{display:flex;flex-direction:column;gap:1.4rem}.sf-empty{text-align:center;padding:3.5rem 1.5rem;background:var(--bg-card, white);border-radius:var(--sf-radius);border:1px solid var(--border);animation:sf-fade-up .4s var(--sf-easing-out)}@keyframes sf-fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.sf-empty-icon{width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,#fef3c7,#fed7aa);color:#f59e0b;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem}.sf-empty h3{margin:0 0 .4rem;color:var(--text);font-size:1.05rem}.sf-empty p{margin:0 0 1.2rem;color:var(--text-muted)}.sf-empty-btn{background:linear-gradient(135deg,#ff5b3a,#f59e0b);color:#fff;border:none;padding:.7rem 1.3rem;border-radius:999px;display:inline-flex;align-items:center;gap:.4rem;cursor:pointer;font-weight:700;transition:transform .15s var(--sf-easing),box-shadow .2s ease;box-shadow:0 4px 14px #ff5b3a4d;touch-action:manipulation}.sf-empty-btn:active{transform:scale(.95)}.sf-post{background:var(--bg-card, white);border-radius:var(--sf-radius);border:1px solid var(--border);overflow:hidden;contain:layout style}.sf-post-fresh{animation:sf-post-in .55s var(--sf-easing-out)}@keyframes sf-post-in{0%{opacity:0;transform:translateY(-12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.sf-post-head{display:flex;align-items:center;gap:.75rem;padding:.85rem 1rem}.sf-post-head-info{flex:1;min-width:0}.sf-post-author{font-weight:700;font-size:.95rem;color:var(--text);line-height:1.2}.sf-post-meta{font-size:.76rem;color:var(--text-muted);margin-top:1px}.sf-icon-btn{background:transparent;border:none;cursor:pointer;color:var(--text);padding:6px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;transition:background .15s ease,transform .15s var(--sf-easing);touch-action:manipulation;min-width:36px;min-height:36px}.sf-icon-btn:hover{background:var(--bg-hover, #f1f5f9)}.sf-icon-btn:active{transform:scale(.92)}.sf-icon-btn.dark{color:#fff}.sf-icon-btn.dark:hover{background:#ffffff26}.sf-post-menu-wrap{position:relative}.sf-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50}.sf-menu{position:absolute;right:0;top:100%;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 10px 30px #00000024;min-width:200px;z-index:51;padding:5px;animation:sf-menu-in .18s var(--sf-easing-out);transform-origin:top right}@keyframes sf-menu-in{0%{opacity:0;transform:scale(.92) translateY(-4px)}to{opacity:1;transform:scale(1) translateY(0)}}.sf-menu-item{width:100%;text-align:left;background:transparent;border:none;cursor:pointer;padding:.65rem .8rem;border-radius:7px;display:flex;align-items:center;gap:.55rem;font-size:.92rem;color:var(--text);transition:background .12s ease}.sf-menu-item:hover{background:#f1f5f9}.sf-menu-item.danger{color:#ef4444}.sf-post-img-wrap{position:relative;background:#0f172a;display:flex;align-items:center;justify-content:center;min-height:280px;max-height:85vh;overflow:hidden}.sf-post-img{display:block;width:100%;max-height:85vh;height:auto;object-fit:contain;opacity:0;transition:opacity .35s ease;-webkit-user-select:none;user-select:none}.sf-post-img.loaded{opacity:1}.sf-post-img-skel{position:absolute;top:0;right:0;bottom:0;left:0;background:#1e293b}.sf-skel-shimmer{position:relative;background:linear-gradient(90deg,#f1f5f9,#e2e8f0,#f1f5f9);background-size:200% 100%;animation:sf-skel 1.6s ease-in-out infinite}.sf-skel-tray .sf-story-ring.sf-skel-shimmer{background:linear-gradient(135deg,#e2e8f0,#cbd5e1);animation:sf-skel-pulse 1.6s ease-in-out infinite}.sf-skel-tray .sf-story-ring.sf-skel-shimmer:before{background:var(--bg-card, white)}.sf-post-img-skel.sf-skel-shimmer{background:linear-gradient(90deg,#0f172a,#1e293b,#0f172a);background-size:200% 100%;animation:sf-skel 2s ease-in-out infinite}.sf-skel-line{display:block;height:9px;width:100%;background:linear-gradient(90deg,#f1f5f9,#e2e8f0,#f1f5f9);background-size:200% 100%;animation:sf-skel 1.6s ease-in-out infinite;border-radius:4px}.sf-skel-post .sf-post-img-wrap{min-height:280px}@keyframes sf-skel{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes sf-skel-pulse{0%,to{opacity:.8}50%{opacity:.5}}.sf-heart-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:0;transform:scale(.4);color:#fff;filter:drop-shadow(0 6px 20px rgba(0,0,0,.4))}.sf-heart-overlay.sf-heart-pop{animation:sf-heart-pop .95s var(--sf-easing-out) forwards}@keyframes sf-heart-pop{0%{opacity:0;transform:scale(.3)}18%{opacity:1;transform:scale(1.15)}36%{transform:scale(.96)}55%{transform:scale(1.05);opacity:1}to{opacity:0;transform:scale(1.35)}}.sf-post-actions{display:flex;align-items:center;gap:.3rem;padding:.55rem .6rem .2rem}.sf-action-btn{background:transparent;border:none;cursor:pointer;padding:8px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--text);transition:transform .18s var(--sf-easing),background .15s ease;touch-action:manipulation;min-width:44px;min-height:44px}.sf-action-btn:hover{background:#0000000a}.sf-action-btn:active{transform:scale(.86)}.sf-action-btn.liked{animation:sf-like-bounce .4s var(--sf-easing-out)}@keyframes sf-like-bounce{0%{transform:scale(1)}40%{transform:scale(1.25)}to{transform:scale(1)}}.sf-post-likes{padding:.1rem 1rem;font-size:.92rem;color:var(--text);font-weight:500}.sf-post-caption{padding:.35rem 1rem 0;font-size:.93rem;color:var(--text);line-height:1.4;word-wrap:break-word}.sf-post-caption strong{margin-right:.35rem;font-weight:700}.sf-post-caption-more{background:transparent;border:none;cursor:pointer;color:var(--text-muted);font-size:.9rem;padding:0}.sf-post-see-more{background:transparent;border:none;cursor:pointer;padding:.45rem 1rem 0;color:var(--text-muted);font-size:.88rem;display:block}.sf-post-see-more:hover{color:var(--text)}.sf-post-comment-preview{padding:.3rem 1rem 0;font-size:.92rem;color:var(--text);line-height:1.35;word-wrap:break-word}.sf-post-comment-preview strong{margin-right:.35rem;font-weight:600}.sf-quick-comment{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem .9rem;margin-top:.6rem;border-top:1px solid var(--border)}.sf-quick-comment input{flex:1;border:none;background:transparent;outline:none;font-size:.94rem;color:var(--text);padding:.3rem 0;min-width:0}.sf-quick-comment input::placeholder{color:var(--text-muted)}.sf-quick-send{background:transparent;border:none;cursor:pointer;color:#94a3b8;font-weight:700;font-size:.92rem;padding:.4rem .2rem;transition:color .15s ease,transform .12s var(--sf-easing)}.sf-quick-send.active{color:#2563eb}.sf-quick-send:active.active{transform:scale(.94)}.sf-quick-send:disabled{cursor:default}.sf-sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0f172a8c;display:flex;align-items:flex-end;justify-content:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:0;animation:sf-backdrop-in .28s ease both}.sf-sheet-backdrop.closing{animation:sf-backdrop-out .24s ease forwards}@keyframes sf-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes sf-backdrop-out{0%{opacity:1}to{opacity:0}}.sf-sheet-backdrop.dark{background:#000000d9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.sf-sheet{background:#fff;border-radius:18px 18px 0 0;width:100%;max-width:540px;max-height:92vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 -10px 40px #00000026;padding-bottom:env(safe-area-inset-bottom,0px);will-change:transform;animation:sf-sheet-in .36s var(--sf-easing-out) both}.sf-sheet.full{height:92vh}.sf-sheet.closing{animation:sf-sheet-out .28s var(--sf-easing-out) forwards}@keyframes sf-sheet-in{0%{transform:translate3d(0,100%,0)}to{transform:translateZ(0)}}@keyframes sf-sheet-out{0%{transform:translateZ(0)}to{transform:translate3d(0,100%,0)}}.sf-sheet-backdrop.dark .sf-sheet{background:#0f172a;color:#fff}.sf-sheet-handle{width:40px;height:4px;background:#cbd5e1;border-radius:999px;margin:.5rem auto .2rem;flex-shrink:0;cursor:grab}.sf-sheet-handle:active{cursor:grabbing}@media(min-width:720px){.sf-sheet-backdrop{align-items:center;padding:2rem}.sf-sheet{border-radius:18px;max-height:88vh}.sf-sheet.full{height:88vh}.sf-sheet-handle{display:none}}.sf-modal-head{display:flex;align-items:center;gap:.5rem;padding:.6rem .8rem .7rem;border-bottom:1px solid var(--border);flex-shrink:0}.sf-modal-head.dark{border-bottom-color:#ffffff1a;color:#fff}.sf-modal-head>strong{flex:1;text-align:center;font-size:1rem}.sf-modal-head.dark>strong{color:#fff}.sf-comments-head{padding:.6rem .8rem}.sf-comments-head-title{flex:1;text-align:center;min-width:0}.sf-comments-head-line1{font-weight:700;font-size:1rem;color:var(--text);line-height:1.15}.sf-comments-head-line2{font-size:.72rem;color:var(--text-muted);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sf-comments-head-thumb{width:36px;height:36px;border-radius:8px;overflow:hidden;flex-shrink:0;background:var(--border)}.sf-comments-head-thumb img{width:100%;height:100%;object-fit:cover;display:block}.sf-comments-body{flex:1;overflow-y:auto;padding:0 1rem .5rem;display:flex;flex-direction:column;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.sf-post-quote{display:flex;gap:.7rem;border-bottom:1px solid var(--border);margin:0 -.25rem;padding:.9rem .25rem}.sf-post-quote-main{flex:1;min-width:0}.sf-post-quote-author{display:flex;flex-direction:column;gap:1px;margin-bottom:.3rem}.sf-post-quote-author strong{font-weight:700;font-size:.94rem;color:var(--text)}.sf-post-quote-meta{font-size:.72rem;color:var(--text-muted)}.sf-post-quote-caption{font-size:.94rem;color:var(--text);line-height:1.4;white-space:pre-wrap;word-wrap:break-word}.sf-post-quote-caption.muted{color:var(--text-muted);font-style:italic;font-size:.86rem}.sf-comments-divider{display:flex;align-items:center;padding:.85rem 0 .5rem;font-size:.78rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.sf-comments-divider span{white-space:nowrap}.sf-comments-list{display:flex;flex-direction:column;gap:.85rem;padding-bottom:.5rem}.sf-comment-row{display:flex;gap:.6rem;align-items:flex-start;animation:sf-comment-in .3s var(--sf-easing-out)}.sf-comment-row.pending{opacity:.6}@keyframes sf-comment-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.sf-comment-bubble-wrap{flex:1;min-width:0}.sf-comment-bubble{background:#f1f5f9;border-radius:16px;padding:.5rem .8rem;display:inline-block;max-width:100%}.sf-comment-author{font-weight:700;font-size:.84rem;color:var(--text);margin-bottom:1px}.sf-comment-text{font-size:.92rem;color:var(--text);line-height:1.35;word-wrap:break-word;white-space:pre-wrap}.sf-comment-meta{margin-top:.25rem;padding-left:.4rem;font-size:.72rem;color:var(--text-muted);display:flex;gap:.85rem;align-items:center}.sf-comment-del{background:transparent;border:none;cursor:pointer;color:var(--text-muted);font-size:.72rem;font-weight:600;padding:0}.sf-comment-del:hover{color:#ef4444}.sf-comments-empty{text-align:center;color:var(--text-muted);padding:2.5rem 1rem;display:flex;flex-direction:column;align-items:center;gap:.5rem}.sf-comments-empty svg{opacity:.5}.sf-comments-loading{text-align:center;padding:2rem 1rem;color:var(--text-muted)}.sf-comments-input{display:flex;align-items:center;gap:.6rem;padding:.6rem .85rem .85rem;border-top:1px solid var(--border);background:#fff;flex-shrink:0}.sf-comments-input-pill{flex:1;display:flex;align-items:center;gap:.4rem;background:#f1f5f9;border-radius:999px;padding:.5rem .4rem .5rem 1rem;border:1px solid transparent;transition:border-color .15s ease,background .15s ease;min-width:0}.sf-comments-input-pill:focus-within{border-color:#2563eb;background:#fff}.sf-comments-input-pill input{flex:1;border:none;background:transparent;outline:none;font-size:.94rem;color:var(--text);min-width:0}.sf-comments-send{background:transparent;border:none;cursor:pointer;width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#cbd5e1;transition:background .15s ease,color .15s ease,transform .15s var(--sf-easing);flex-shrink:0}.sf-comments-send.active{background:#2563eb;color:#fff}.sf-comments-send.active:active{transform:scale(.9)}.sf-comments-send:disabled{cursor:default}.sf-composer-share{background:transparent;border:none;cursor:pointer;color:#94a3b8;font-weight:700;font-size:.95rem;padding:.3rem .6rem;border-radius:8px;transition:color .15s ease,background .15s ease;white-space:nowrap}.sf-composer-share.active{color:#2563eb}.sf-composer-share.active:hover{background:#2563eb14}.sf-composer-share:disabled{cursor:default}.sf-composer-body-scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.sf-composer-drop{padding:3rem 1.5rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.7rem;color:var(--text-muted);cursor:pointer;min-height:280px;justify-content:center}.sf-composer-drop:hover .sf-composer-drop-icon{transform:scale(1.05)}.sf-composer-drop-icon{width:88px;height:88px;border-radius:24px;background:linear-gradient(135deg,#dbeafe,#ede9fe);display:flex;align-items:center;justify-content:center;color:#2563eb;margin-bottom:.3rem;transition:transform .2s var(--sf-easing-out)}.sf-composer-drop p{margin:0;color:var(--text);font-size:1.05rem;font-weight:600}.sf-composer-drop small{color:var(--text-muted);font-size:.82rem}.sf-composer-pick{margin-top:.4rem;background:#2563eb;color:#fff;border:none;cursor:pointer;padding:.6rem 1.3rem;border-radius:999px;font-weight:700;font-size:.92rem;box-shadow:0 4px 14px #2563eb4d;transition:transform .15s var(--sf-easing),box-shadow .2s ease;touch-action:manipulation}.sf-composer-pick:hover{box-shadow:0 6px 18px #2563eb73}.sf-composer-pick:active{transform:scale(.95)}.sf-composer-compressing{margin-top:.6rem;display:inline-flex;align-items:center;gap:.4rem;font-size:.82rem;color:var(--text-muted)}.sf-composer-form{display:flex;flex-direction:column}.sf-composer-preview-wrap{position:relative;background:#0f172a;display:flex;align-items:center;justify-content:center;max-height:60vh;overflow:hidden}.sf-composer-preview{width:100%;max-height:60vh;object-fit:contain;display:block}.sf-composer-change-btn{position:absolute;bottom:12px;right:12px;background:#0f172ab3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;border:none;cursor:pointer;padding:.45rem .85rem;border-radius:999px;font-size:.82rem;font-weight:600;transition:background .15s ease,transform .15s var(--sf-easing)}.sf-composer-change-btn:hover{background:#0f172ae6}.sf-composer-change-btn:active{transform:scale(.94)}.sf-composer-change-btn.dark{background:#fff3}.sf-composer-author-row{display:flex;align-items:center;gap:.6rem;padding:.85rem 1rem .4rem}.sf-composer-author-row strong{font-weight:700;font-size:.95rem}.sf-composer-caption{width:100%;border:none;padding:.5rem 1rem;resize:none;outline:none;font-size:.95rem;color:var(--text);font-family:inherit;background:transparent}.sf-composer-char-count{font-size:.74rem;color:var(--text-muted);text-align:right;padding:0 1rem 1rem}.sf-composer-error{display:flex;align-items:center;gap:.5rem;padding:.7rem 1rem;color:#ef4444;background:#fef2f2;font-size:.86rem;margin:.5rem 1rem;border-radius:10px}.sf-story-composer-body{flex:1;display:flex;flex-direction:column;background:#0f172a;color:#fff;overflow:hidden}.sf-story-drop{padding:3rem 1.5rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.8rem;color:#ffffffb3;cursor:pointer;flex:1;justify-content:center}.sf-story-drop p{margin:0;color:#fff;font-size:1.1rem;font-weight:600}.sf-story-drop small{color:#ffffff80;font-size:.82rem}.sf-story-preview-wrap{position:relative;flex:1;display:flex;align-items:center;justify-content:center;background:#000;min-height:50vh}.sf-story-preview{max-width:100%;max-height:75vh;object-fit:contain}.sf-story-viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#000;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .24s ease}.sf-story-viewer.open{opacity:1}.sf-story-viewer.closing{opacity:0}.sf-story-stage{position:relative;width:100%;height:100%;max-width:460px;display:flex;align-items:center;justify-content:center;overflow:hidden}.sf-story-progress{position:absolute;top:calc(env(safe-area-inset-top,0px) + 10px);left:12px;right:12px;display:flex;gap:5px;z-index:10}.sf-story-progress-bar{flex:1;height:4px;background:#ffffff73;border-radius:3px;overflow:hidden;box-shadow:0 1px 2px #0006}.sf-story-progress-fill{height:100%;background:#fff;transition:width .05s linear;box-shadow:0 0 4px #ffffff80}.sf-story-head{position:absolute;top:calc(env(safe-area-inset-top,0px) + 26px);left:14px;right:14px;display:flex;align-items:center;gap:.7rem;z-index:5}.sf-story-author{flex:1;color:#fff;min-width:0}.sf-story-author-name{font-weight:700;font-size:.95rem;text-shadow:0 1px 4px rgba(0,0,0,.4);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sf-story-author-time{font-size:.75rem;opacity:.85;text-shadow:0 1px 4px rgba(0,0,0,.4)}.sf-story-icon{color:#fff}.sf-story-icon:hover{background:#ffffff26}.sf-story-image{max-width:100%;max-height:100vh;object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.sf-tap-zone{position:absolute;top:80px;bottom:80px;width:35%;background:transparent;border:none;cursor:pointer;z-index:3;touch-action:manipulation}.sf-tap-zone.left{left:0}.sf-tap-zone.right{right:0}.sf-story-nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;background:#ffffff2e;color:#fff;border:none;cursor:pointer;z-index:6;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background .15s ease,transform .15s var(--sf-easing)}.sf-story-nav:hover{background:#ffffff47}.sf-story-nav:active{transform:translateY(-50%) scale(.92)}.sf-story-nav.left{left:-64px}.sf-story-nav.right{right:-64px}@media(max-width:540px){.sf-story-nav{display:none}}.sf-story-viewers-btn{position:absolute;bottom:24px;left:50%;transform:translate(-50%);background:#ffffff2e;color:#fff;border:none;cursor:pointer;padding:.6rem 1.1rem;border-radius:999px;display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;font-weight:600;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:5;transition:background .15s ease,transform .15s var(--sf-easing);padding-bottom:calc(.6rem + env(safe-area-inset-bottom,0px))}.sf-story-viewers-btn:hover{background:#ffffff47}.sf-story-viewers-btn:active{transform:translate(-50%) scale(.94)}.sf-story-viewers-panel{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000f5;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);color:#fff;display:flex;flex-direction:column;z-index:7;animation:sf-viewers-in .3s var(--sf-easing-out)}@keyframes sf-viewers-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.sf-viewers-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:.85rem;padding:1.2rem;padding-bottom:calc(1.2rem + env(safe-area-inset-bottom,0px))}.sf-viewer-row{display:flex;align-items:center;gap:.8rem;animation:sf-fade-up .25s var(--sf-easing-out)}.sf-viewer-name strong{display:block;font-size:.94rem}.sf-viewer-name small{font-size:.75rem;opacity:.7}.spinning{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.sf-comment-node{display:flex;flex-direction:column;animation:sf-comment-in .3s var(--sf-easing-out)}.sf-comment-node.pending{opacity:.6}.sf-comment-row.reply{margin-left:2.5rem;animation:sf-comment-in .25s var(--sf-easing-out)}.sf-comment-row.reply .sf-comment-bubble{background:#f8fafc}.sf-comment-replies{display:flex;flex-direction:column;gap:.6rem;margin-top:.5rem;padding-left:0}.sf-comment-you{color:var(--text-muted);font-weight:500;font-size:.78rem;margin-left:.4rem}.sf-comment-action{background:transparent;border:none;cursor:pointer;color:var(--text-muted);font-size:.74rem;font-weight:600;padding:0;display:inline-flex;align-items:center;gap:.2rem;transition:color .15s ease,transform .12s var(--sf-easing);touch-action:manipulation}.sf-comment-action:hover{color:var(--text)}.sf-comment-action:active{transform:scale(.92)}.sf-comment-action.liked{color:#ef4444}.sf-comment-action.liked:hover{color:#dc2626}.sf-comment-action span{font-size:.74rem}.sf-comments-input-wrap{flex:1;display:flex;flex-direction:column;gap:.4rem;min-width:0}.sf-reply-banner{display:flex;align-items:center;gap:.4rem;padding:.45rem .85rem;background:#2563eb14;border-radius:999px;font-size:.78rem;color:var(--text);animation:sf-fade-up .22s var(--sf-easing-out)}.sf-reply-banner>span{flex:1}.sf-reply-banner strong{font-weight:700}.sf-reply-cancel{background:transparent;border:none;cursor:pointer;color:var(--text-muted);width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;transition:background .15s ease}.sf-reply-cancel:hover{background:#0000000f}.sf-story-preview-wrap{position:relative}.sf-story-aa-btn{position:absolute;top:14px;right:14px;z-index:5;display:inline-flex;align-items:center;gap:.45rem;padding:.55rem .9rem .55rem .7rem;background:linear-gradient(135deg,#2563eb,#7c3aed);color:#fff;border:2px solid rgba(255,255,255,.4);border-radius:999px;cursor:pointer;font-size:.85rem;font-weight:700;box-shadow:0 6px 20px #0006;transition:transform .15s var(--sf-easing),box-shadow .2s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.sf-story-aa-btn:hover{box-shadow:0 8px 26px #00000080}.sf-story-aa-btn:active{transform:scale(.94)}.sf-aa-icon{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;background:#fff;color:#2563eb;border-radius:50%;font-weight:900;font-size:.78rem;letter-spacing:-.04em}.sf-aa-label{white-space:nowrap}.sf-story-caption-display{position:absolute;bottom:22%;left:16px;right:16px;z-index:4;padding:.7rem 1rem;background:#00000073;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;border:none;cursor:pointer;border-radius:14px;font-size:1.05rem;font-weight:600;line-height:1.35;white-space:pre-wrap;word-wrap:break-word;text-align:center;text-shadow:0 2px 8px rgba(0,0,0,.5);font-family:inherit}.sf-story-text-editor{position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;background:#0000008c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;flex-direction:column;align-items:stretch;justify-content:center;padding:1.5rem}.sf-story-text-input{width:100%;background:transparent;border:none;outline:none;resize:none;color:#fff;font-size:1.4rem;font-weight:700;text-align:center;font-family:inherit;line-height:1.3;text-shadow:0 2px 8px rgba(0,0,0,.5)}.sf-story-text-input::placeholder{color:#ffffff8c}.sf-story-text-hint{margin-top:1.5rem;text-align:center;font-size:.78rem;color:#ffffffb3}.sf-story-caption-overlay{position:absolute;bottom:calc(80px + env(safe-area-inset-bottom,0px));left:18px;right:18px;z-index:4;padding:.8rem 1.1rem;background:#00000080;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;border-radius:14px;font-size:1.05rem;font-weight:600;line-height:1.4;white-space:pre-wrap;word-wrap:break-word;text-align:center;text-shadow:0 2px 8px rgba(0,0,0,.5);pointer-events:none;animation:sf-fade-up .35s var(--sf-easing-out)}
