@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.0e__wj8580tc5.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e629b5bc06499d58-s.10u7vx61f1ie7.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/1a099d89ee94ee96-s.35a5cae5tspm2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.18rizl4rsrl42.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.0e__wj8580tc5.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/e629b5bc06499d58-s.10u7vx61f1ie7.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/1a099d89ee94ee96-s.35a5cae5tspm2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.18rizl4rsrl42.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.0e__wj8580tc5.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/e629b5bc06499d58-s.10u7vx61f1ie7.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/1a099d89ee94ee96-s.35a5cae5tspm2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.18rizl4rsrl42.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.0e__wj8580tc5.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/e629b5bc06499d58-s.10u7vx61f1ie7.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/1a099d89ee94ee96-s.35a5cae5tspm2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.18rizl4rsrl42.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.0e__wj8580tc5.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(../media/e629b5bc06499d58-s.10u7vx61f1ie7.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(../media/1a099d89ee94ee96-s.35a5cae5tspm2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.18rizl4rsrl42.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans Fallback;src:local(Arial);ascent-override:98.88%;descent-override:21.15%;line-gap-override:0.0%;size-adjust:104.98%}.plus_jakarta_sans_690532f-module__Ly1fUa__className{font-family:Plus Jakarta Sans,Plus Jakarta Sans Fallback;font-style:normal}.plus_jakarta_sans_690532f-module__Ly1fUa__variable{--font-body:"Plus Jakarta Sans", "Plus Jakarta Sans Fallback"}
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--navy-950:#05101f;--navy-900:#091a38;--navy-800:#0d2452;--navy-700:#12336e;--navy-600:#1a4899;--navy-500:#2563eb;--navy-100:#dbeafe;--navy-50:#eff6ff;--gold-600:#b45309;--gold-500:#d97706;--gold-400:#f59e0b;--gold-300:#fcd34d;--gold-100:#fef3c7;--gold-50:#fffbeb;--slate-900:#0f172a;--slate-700:#334155;--slate-500:#64748b;--slate-400:#94a3b8;--slate-300:#cbd5e1;--slate-200:#e2e8f0;--slate-100:#f1f5f9;--slate-50:#f8fafc;--white:#fff;--text:var(--slate-900);--muted:var(--slate-500);--subtle:var(--slate-400);--border:var(--slate-200);--bg:#eef2fb;--surface:var(--white);--hover:#f7f9fd;--ink-soft:var(--slate-100);--accent:var(--navy-500);--gold:var(--gold-400);--gold-hover:var(--gold-500);--gold-soft:var(--gold-50);--blue-soft:var(--navy-50);--navy:var(--navy-800);--navy-mid:var(--navy-700);--navy-light:var(--navy-600);--placeholder:var(--slate-400);--r-xs:4px;--r-sm:6px;--r:10px;--r-md:12px;--r-lg:16px;--r-xl:24px;--sh-xs:0 1px 2px #091a380f;--sh-sm:0 1px 4px #091a3812, 0 2px 8px #091a380d;--sh-md:0 4px 12px #091a3814, 0 8px 24px #091a380d;--sh-lg:0 8px 30px #091a381c, 0 20px 60px #091a3812;--sh-xl:0 20px 60px #091a3829, 0 40px 90px #091a381a;--shadow:var(--sh-sm);--shadow-sm:var(--sh-xs);--shadow-lg:var(--sh-lg);--radius:var(--r);--radius-sm:var(--r-sm);--radius-lg:var(--r-lg)}*,:before,:after{box-sizing:border-box}html,body{min-height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-body), "Plus Jakarta Sans", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:14.5px;line-height:1.6}button{cursor:pointer;font:inherit}a{color:inherit;text-decoration:none}input,select,textarea{font:inherit}.app-shell{min-height:100vh;display:flex}.sidebar{background:linear-gradient(175deg, var(--navy-950) 0%, var(--navy-900) 45%, var(--navy-800) 100%);z-index:40;border-right:1px solid #ffffff0b;flex-direction:column;flex-shrink:0;width:256px;height:100vh;transition:width .28s cubic-bezier(.4,0,.2,1);display:flex;position:sticky;top:0;overflow:hidden}.sidebar--collapsed{width:68px}.sidebar-brand{border-bottom:1px solid #ffffff0e;flex-shrink:0;padding:20px 14px 16px;display:flex}.brand-link{align-items:center;gap:11px;min-width:0;display:flex}.brand-logo-wrap{border-radius:var(--r-sm);background:#ffffff1a;border:1px solid #ffffff1f;flex-shrink:0;place-items:center;width:38px;height:38px;display:grid;overflow:hidden}.brand-text{white-space:nowrap;opacity:1;flex-direction:column;min-width:0;transition:opacity .2s;display:flex;overflow:hidden}.sidebar--collapsed .brand-text{opacity:0}.brand-text strong{color:#fff;letter-spacing:-.01em;text-overflow:ellipsis;font-size:.85rem;font-weight:700;display:block;overflow:hidden}.brand-text small{color:#ffffff6b;letter-spacing:.04em;text-overflow:ellipsis;margin-top:1px;font-size:.67rem;display:block;overflow:hidden}.sidebar-nav{flex-direction:column;flex-shrink:0;gap:1px;padding:16px 10px 8px;display:flex}.nav-section-label{letter-spacing:.1em;text-transform:uppercase;color:#ffffff40;white-space:nowrap;opacity:1;margin:0 4px 8px;font-size:.62rem;font-weight:700;transition:opacity .2s;overflow:hidden}.sidebar--collapsed .nav-section-label{opacity:0}.nav-link{border-radius:var(--r-sm);color:#ffffff8c;white-space:nowrap;border:1px solid #0000;align-items:center;gap:10px;padding:9px 10px;font-size:.84rem;font-weight:500;text-decoration:none;transition:background .14s,color .14s;display:flex;position:relative;overflow:hidden}.nav-link:hover{color:#ffffffe6;background:#ffffff12}.nav-link--active{background:#f59e0b21;border-color:#f59e0b2e;font-weight:600;color:var(--gold-300)!important}.nav-link--active .nav-icon-wrap{color:var(--gold-400)}.nav-icon-wrap{border-radius:var(--r-xs);flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;transition:background .14s;display:flex}.nav-active-dot{background:var(--gold-400);width:5px;height:5px;box-shadow:0 0 6px var(--gold-400);opacity:1;border-radius:50%;transition:opacity .2s;position:absolute;right:10px}.sidebar--collapsed .nav-active-dot{opacity:0}.nav-label{text-overflow:ellipsis;opacity:1;flex:1;transition:opacity .2s;overflow:hidden}.sidebar--collapsed .nav-label{opacity:0}.nav-group{margin-bottom:2px}.nav-group__header{color:#ffffff61;cursor:default;-webkit-user-select:none;user-select:none;border-radius:var(--r-sm);align-items:center;gap:10px;padding:9px 10px;font-size:.84rem;font-weight:500;display:flex}.nav-group--active .nav-group__header{color:#ffffff94}.nav-group__children{border-left:1.5px solid #ffffff14;flex-direction:column;gap:1px;margin-bottom:4px;margin-left:24px;padding-left:16px;display:flex}.nav-group--active .nav-group__children{border-left-color:#f59e0b40}.nav-child{border-radius:var(--r-sm);color:#ffffff75;align-items:center;gap:7px;padding:6px 10px;font-size:.775rem;font-weight:500;text-decoration:none;transition:background .14s,color .14s;display:flex;position:relative}.nav-child:hover{color:#ffffffd1;background:#ffffff0f}.nav-child--active{background:#f59e0b1f;font-weight:600;color:var(--gold-300)!important}.nav-child__icon{width:18px;height:18px;color:inherit;opacity:.75;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.nav-child--active .nav-child__icon{color:var(--gold-400);opacity:1}.sidebar--collapsed .nav-group__header{justify-content:center;padding:9px 0}.sidebar--collapsed .nav-group__children{border-left:none;margin-left:0;padding-left:0}.sidebar--collapsed .nav-child{justify-content:center;padding:8px 0}.sidebar--collapsed .nav-child__icon{opacity:1;width:32px;height:32px}.sidebar-collapse-btn{border-radius:var(--r-sm);color:#fff6;cursor:pointer;white-space:nowrap;text-align:left;background:#ffffff0a;border:1px solid #ffffff14;flex-shrink:0;align-items:center;gap:10px;margin:4px 10px 8px;padding:8px 10px;font-size:.82rem;font-weight:500;transition:background .14s,color .14s,border-color .14s;display:flex;overflow:hidden}.sidebar-collapse-btn:hover{color:#ffffffbf;background:#ffffff17;border-color:#ffffff24}.sidebar-footer{background:#0003;border-top:1px solid #ffffff0e;flex-shrink:0;align-items:center;gap:10px;padding:12px 14px;display:flex;overflow:hidden}.user-avatar{background:linear-gradient(135deg, var(--gold-500) 0%, var(--gold-400) 100%);width:32px;height:32px;color:var(--navy-900);letter-spacing:.02em;border:1.5px solid #ffffff26;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.72rem;font-weight:800;display:flex}.user-meta{opacity:1;flex-direction:column;flex:1;min-width:0;transition:opacity .2s;display:flex;overflow:hidden}.sidebar--collapsed .user-meta{opacity:0}.user-name{color:#ffffffe6;white-space:nowrap;text-overflow:ellipsis;font-size:.82rem;font-weight:600;overflow:hidden}.user-role{color:#ffffff61;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;text-overflow:ellipsis;margin-top:1px;font-size:.67rem;overflow:hidden}.logout-btn{border-radius:var(--r-xs);color:#ffffff61;cursor:pointer;opacity:1;background:0 0;border:1px solid #ffffff1a;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;padding:0;transition:opacity .2s,background .14s,color .14s;display:flex}.sidebar--collapsed .logout-btn{opacity:0;pointer-events:none}.logout-btn:hover{color:#fca5a5;background:#ef444426;border-color:#ef444440}.workspace{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{z-index:30;-webkit-backdrop-filter:blur(20px);background:#eef2fbd9;border-bottom:1px solid #cbd5e199;justify-content:space-between;align-items:center;height:56px;padding:0 28px;display:flex;position:sticky;top:0;box-shadow:0 1px #091a380a,0 4px 12px #091a380a}.topbar-left{align-items:center;gap:8px;display:flex}.topbar-dot{background:var(--gold-400);border-radius:50%;flex-shrink:0;width:7px;height:7px;box-shadow:0 0 8px #f59e0b99}.topbar-title{color:var(--navy-800);letter-spacing:.03em;text-transform:uppercase;font-size:.82rem;font-weight:700}.topbar-right{align-items:center;gap:10px;display:flex}.topbar-role-badge{background:var(--navy-50);border:1px solid var(--navy-100);color:var(--navy-600);letter-spacing:.04em;text-transform:uppercase;border-radius:20px;align-items:center;padding:3px 10px;font-size:.72rem;font-weight:700;display:inline-flex}.content{align-content:start;gap:24px;width:min(100%,1440px);padding:32px;display:grid}.page-heading{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;display:grid}.page-heading h1{color:var(--navy-800);letter-spacing:-.03em;margin:0;font-size:1.6rem;font-weight:800;line-height:1.2}.eyebrow{color:var(--gold-500);letter-spacing:.12em;text-transform:uppercase;margin:0 0 4px;font-size:.67rem;font-weight:800}.heading-actions{align-items:center;gap:10px;display:flex}.page-summary{max-width:640px;color:var(--muted);margin:10px 0 0;font-size:.9rem;line-height:1.7}.primary-button{border-radius:var(--r-sm);background:linear-gradient(135deg, var(--gold-400) 0%, var(--gold-500) 100%);min-height:38px;color:var(--navy-900);font:inherit;cursor:pointer;white-space:nowrap;border:none;justify-content:center;align-items:center;gap:7px;padding:0 18px;font-size:.84rem;font-weight:700;transition:transform .15s,box-shadow .15s,filter .15s;display:inline-flex;box-shadow:0 1px 3px #d9770640,0 4px 12px #d977062e}.primary-button:hover:not(:disabled){filter:brightness(1.06);transform:translateY(-1px);box-shadow:0 2px 6px #d9770659,0 8px 20px #d9770640}.primary-button:active:not(:disabled){transform:translateY(0)}.primary-button:disabled{opacity:.55;cursor:not-allowed}.secondary-button{border:1.5px solid var(--border);border-radius:var(--r-sm);background:var(--surface);min-height:38px;color:var(--slate-700);font:inherit;cursor:pointer;box-shadow:var(--sh-xs);white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:0 16px;font-size:.84rem;font-weight:600;transition:background .13s,border-color .13s,box-shadow .13s;display:inline-flex}.secondary-button:hover:not(:disabled){background:var(--ink-soft);border-color:var(--slate-300)}.secondary-button:disabled{opacity:.5;cursor:not-allowed}.secondary-button--sm{border-radius:var(--r-xs);min-height:30px;padding:0 10px;font-size:.78rem}.icon-button{border:1.5px solid var(--border);border-radius:var(--r-sm);background:var(--surface);width:34px;height:34px;color:var(--muted);cursor:pointer;box-shadow:var(--sh-xs);justify-content:center;align-items:center;padding:0;transition:background .12s,color .12s,border-color .12s,box-shadow .12s;display:inline-flex}.icon-button:hover{background:var(--ink-soft);color:var(--text);border-color:var(--slate-300)}.icon-button--danger:hover{color:#dc2626;background:#fff0f0;border-color:#fca5a5}.action-btn{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;padding:0;transition:color .15s,background .15s,transform .12s;display:inline-flex}.action-btn:hover{transform:translateY(-1px)}.action-btn:active{transform:translateY(0)}.action-btn--view:hover{color:#2563eb;background:#eff6ff}.action-btn--edit:hover{color:#b45309;background:#fffbeb}.action-btn--delete:hover{color:#dc2626;background:#fff5f5}.action-btn--done:hover{color:#059669;background:#ecfdf5}.aptitude-badge{color:#166534;letter-spacing:.025em;white-space:nowrap;background:#f0fdf4;border-radius:20px;align-items:center;gap:5px;padding:3px 10px 3px 7px;font-size:.695rem;font-weight:600;display:inline-flex}.aptitude-badge:before{content:"";background:#22c55e;border-radius:50%;flex-shrink:0;width:6px;height:6px}.stack-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.stack-card,.foundation-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--sh-sm);transition:box-shadow .2s,transform .2s}.stack-card:hover{box-shadow:var(--sh-md);transform:translateY(-2px)}.stack-card{align-content:start;gap:14px;padding:22px;display:grid}.stack-icon{border-radius:var(--r-sm);background:var(--navy-50);width:40px;height:40px;color:var(--navy-600);place-items:center;display:grid}.stack-card h2{color:var(--navy-800);letter-spacing:0;margin:0;font-size:.95rem;font-weight:700}.stack-card p,.foundation-panel p{color:var(--muted);margin:4px 0 0;font-size:.88rem;line-height:1.65}.foundation-panel{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:20px;padding:24px;display:grid}.foundation-panel h2{color:var(--navy-800);letter-spacing:-.01em;margin:0;font-size:1.3rem;font-weight:700;line-height:1.3}.auth-shell{background:radial-gradient(ellipse 80% 70% at 50% -20%, #1e489973 0%, transparent 70%), linear-gradient(160deg, var(--navy-950) 0%, var(--navy-900) 55%, #0a2040 100%);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);width:100%;max-width:420px;box-shadow:var(--sh-xl);padding:40px;position:relative;overflow:hidden}.auth-card:before{content:"";background:linear-gradient(90deg, var(--gold-500) 0%, var(--gold-400) 50%, var(--gold-300) 100%);height:3px;position:absolute;top:0;left:0;right:0}.auth-brand{align-items:center;gap:12px;margin-bottom:32px;display:flex}.auth-brand strong{color:var(--navy-800);font-size:.95rem;display:block}.auth-brand small{color:var(--muted);margin-top:1px;font-size:.78rem;display:block}.auth-brand .brand-logo-wrap{background:var(--navy-50);border:1px solid var(--navy-100)}.auth-title{color:var(--navy-800);letter-spacing:-.025em;margin:0 0 4px;font-size:1.45rem;font-weight:800}.auth-subtitle{color:var(--muted);margin:0 0 28px;font-size:.88rem}.auth-form{flex-direction:column;gap:18px;display:flex}.auth-submit{width:100%;min-height:44px;font-size:.95rem}.field{flex-direction:column;gap:5px;display:flex}.field label{color:var(--slate-700);letter-spacing:.01em;font-size:.8rem;font-weight:600}.field input,.field select,.field textarea{border:1.5px solid var(--slate-200);border-radius:var(--r-sm);background:var(--surface);width:100%;color:var(--text);outline:none;padding:9px 12px;font-size:.875rem;transition:border-color .15s,box-shadow .15s}.field input::placeholder,.field textarea::placeholder{color:var(--placeholder)}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--navy-500);box-shadow:0 0 0 3px #2563eb1a}.field select:disabled{background:var(--ink-soft);color:var(--subtle);cursor:not-allowed}.field textarea{resize:vertical;min-height:80px;line-height:1.5}.field .optional{color:var(--subtle);font-size:.75rem;font-weight:400}.field .required-mark{color:#e03131;margin-left:2px}.field--conditional{margin-top:-6px;animation:.15s slide-in}.password-wrap{align-items:center;display:flex;position:relative}.password-wrap input{padding-right:40px}.password-toggle{width:24px;height:24px;color:var(--muted);cursor:pointer;border-radius:var(--r-xs);background:0 0;border:none;justify-content:center;align-items:center;transition:color .15s;display:flex;position:absolute;right:10px}.password-toggle:hover{color:var(--text)}@keyframes slide-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.form-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.form-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--sh-sm);padding:28px}.visitor-form{flex-direction:column;gap:18px;display:flex}.form-actions{border-top:1px solid var(--slate-100);justify-content:flex-end;align-items:center;gap:10px;margin-top:4px;padding-top:10px;display:flex}.form-error{border-radius:var(--r-sm);color:#c0392b;background:#fff5f5;border:1.5px solid #fca5a5;align-items:flex-start;gap:10px;padding:11px 14px;font-size:.84rem;line-height:1.5;display:flex}@media (max-width:600px){.form-row{grid-template-columns:1fr}.form-card{padding:20px 16px}}.table-wrapper{border-radius:var(--r-md);background:var(--surface);border:1px solid #e2e8f0;overflow:visible;box-shadow:0 1px 4px #0f20400f}.data-table tbody tr:last-child td:first-child{border-radius:0 0 0 var(--r-md)}.data-table tbody tr:last-child td:last-child{border-radius:0 0 var(--r-md) 0}.data-table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:.875rem}.data-table th{text-align:left;text-transform:uppercase;letter-spacing:.08em;color:var(--navy-700);background:var(--navy-50);white-space:nowrap;border-bottom:1.5px solid #d0dcf0;padding:11px 16px;font-size:.68rem;font-weight:700}.data-table th:first-child{border-radius:var(--r-md) 0 0 0}.data-table th:last-child{border-radius:0 var(--r-md) 0 0}.data-table td{border-bottom:1px solid var(--slate-100);vertical-align:middle;color:var(--text);white-space:nowrap;text-overflow:ellipsis;-webkit-user-select:none;user-select:none;cursor:default;padding:13px 16px;overflow:hidden}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr{transition:background .1s}.data-table tbody tr:hover{background:#f7f9fd}.td-truncate{white-space:nowrap;text-overflow:ellipsis;max-width:200px;overflow:hidden}.td-name{color:var(--navy-800);font-weight:600}.td-time{white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums;font-size:.8rem}.data-table .th-actions,.data-table .td-actions{text-align:center;vertical-align:middle;white-space:nowrap;overflow:visible}.data-table .td-actions .action-btn+.action-btn{margin-left:3px}.vl-col-visitor{width:33%}.vl-col-type{width:15%}.vl-col-phone{width:19%}.vl-col-time{width:18%}.vl-col-actions{width:15%}.vl-td-visitor{overflow:visible}.visitor-cell{align-items:center;gap:7px;min-width:0;display:flex;overflow:visible}.vl-name-truncate{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:205px;overflow:hidden}.vl-td-type,.vl-td-phone,.vl-td-time{overflow:hidden}.tt-root{color:#f8fafc;white-space:normal;word-break:break-word;pointer-events:none;z-index:9999;text-align:center;background:#1e293b;border-radius:6px;max-width:260px;padding:6px 10px;font-size:.74rem;font-weight:500;line-height:1.45;animation:.1s tt-in;position:fixed;transform:translate(-50%)translateY(calc(-100% - 8px));box-shadow:0 4px 12px #00000038}@keyframes tt-in{0%{opacity:0;transform:translate(-50%)translateY(calc(-100% - 4px))}to{opacity:1;transform:translate(-50%)translateY(calc(-100% - 8px))}}.reg-td-text,.reg-td-badge{overflow:hidden}.reg-name-truncate{text-overflow:ellipsis;white-space:nowrap;max-width:200px;display:block;overflow:hidden}.vl-cell-text{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.vl-badge-fit{text-overflow:ellipsis;max-width:100%;overflow:hidden}.badge{letter-spacing:.025em;white-space:nowrap;border-radius:20px;align-items:center;gap:5px;padding:3px 10px 3px 7px;font-size:.695rem;font-weight:600;display:inline-flex}.badge:before{content:"";border-radius:50%;flex-shrink:0;width:6px;height:6px}.badge--parent{color:#1e40af;background:#eff6ff}.badge--parent:before{background:#3b82f6}.badge--vendor{color:#9a3412;background:#fff7ed}.badge--vendor:before{background:#f97316}.badge--publisher{color:#5b21b6;background:#f5f3ff}.badge--publisher:before{background:#8b5cf6}.badge--candidate{color:#065f46;background:#ecfdf5}.badge--candidate:before{background:#10b981}.badge--job-inquiry{color:#78350f;background:#fffbeb}.badge--job-inquiry:before{background:#f59e0b}.log-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-xs);overflow:hidden}.log-controls{flex-direction:column;gap:12px;padding:16px 18px 14px;display:flex}.log-search{align-items:center;display:flex;position:relative}.log-search__icon{color:var(--slate-400);pointer-events:none;flex-shrink:0;position:absolute;left:12px}.log-search__input{border:1.5px solid var(--border);border-radius:var(--r-md);width:100%;font:inherit;background:var(--bg);color:var(--text);outline:none;padding:9px 36px;font-size:.875rem;transition:border-color .15s,box-shadow .15s}.log-search__input:focus{border-color:var(--gold-400);background:var(--surface);box-shadow:0 0 0 3px #f59e0b1f}.log-search__input::placeholder{color:var(--slate-400)}.log-search__input::-webkit-search-cancel-button{display:none}.log-search__clear{background:var(--slate-200);width:22px;height:22px;color:var(--slate-500);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;transition:background .15s;display:flex;position:absolute;right:10px}.log-search__clear:hover{background:var(--slate-300);color:var(--slate-700)}.type-chips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.type-chip{border:1.5px solid var(--border);background:var(--surface);color:var(--slate-500);font:inherit;cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;border-radius:20px;align-items:center;gap:5px;padding:5px 12px;font-size:.78rem;font-weight:600;transition:border-color .15s,background .15s,color .15s;display:inline-flex}.type-chip:hover:not(.type-chip--zero){border-color:var(--slate-300);background:var(--slate-50);color:var(--slate-700)}.type-chip--active{background:var(--navy-800)!important;border-color:var(--navy-800)!important;color:#fff!important}.type-chip--active .type-chip__count{color:#fff;background:#fff3}.type-chip--zero{opacity:.45;cursor:default}.type-chip__count{background:var(--slate-100);min-width:18px;height:18px;color:var(--slate-500);font-variant-numeric:tabular-nums;border-radius:10px;justify-content:center;align-items:center;padding:0 5px;font-size:.7rem;font-weight:700;transition:background .15s,color .15s;display:inline-flex}.log-result-info{color:var(--muted);align-items:center;gap:8px;margin:0;font-size:.78rem;display:flex}.log-clear-btn{font:inherit;color:var(--navy-600);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;font-size:.78rem;font-weight:600;text-decoration:underline}.log-clear-btn:hover{color:var(--navy-800)}.log-panel__empty{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:14px;padding:40px 24px;font-size:.88rem;display:flex}.log-panel .table-wrapper,.log-panel__table{box-shadow:none!important;border:none!important;border-radius:0!important}.vl-card-list{flex-direction:column;gap:10px;padding:12px 14px 16px;display:none}.vl-card{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--sh-xs);transition:box-shadow .18s,transform .18s;overflow:hidden}.vl-card:hover{box-shadow:var(--sh-sm);transform:translateY(-1px)}.vl-card__inner{display:flex}.vl-card__accent{flex-shrink:0;width:4px}.vl-card__accent--parent{background:#3b82f6}.vl-card__accent--vendor{background:#f97316}.vl-card__accent--publisher{background:#8b5cf6}.vl-card__accent--candidate{background:#10b981}.vl-card__accent--job-inquiry{background:#f59e0b}.vl-card__content{flex-direction:column;flex:1;gap:11px;min-width:0;padding:14px 14px 12px;display:flex}.vl-card__header{align-items:flex-start;gap:11px;display:flex}.vl-card__avatar{letter-spacing:-.02em;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;font-size:1.1rem;font-weight:800;display:flex}.vl-card__avatar--parent{color:#1e40af;background:#dbeafe}.vl-card__avatar--vendor{color:#9a3412;background:#ffedd5}.vl-card__avatar--publisher{color:#5b21b6;background:#ede9fe}.vl-card__avatar--candidate{color:#065f46;background:#d1fae5}.vl-card__avatar--job-inquiry{color:#78350f;background:#fef3c7}.vl-card__name-block{flex:1;min-width:0}.vl-card__name-row{flex-wrap:wrap;align-items:center;gap:7px;margin-bottom:5px;display:flex}.vl-card__name-text{color:var(--text);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:.97rem;font-weight:700;line-height:1.25;overflow:hidden}.vl-card__visit-badge{width:20px;height:20px;font-size:.66rem}.vl-card__meta{border-top:1px solid var(--border);flex-direction:column;gap:6px;padding-top:10px;display:flex}.vl-card__meta-row{align-items:flex-start;gap:8px;font-size:.82rem;line-height:1.45;display:flex}.vl-card__meta-icon{color:var(--subtle);flex-shrink:0;margin-top:2px}.vl-card__meta-label{color:var(--slate-500);white-space:nowrap;flex-shrink:0;font-weight:600}.vl-card__meta-value{color:var(--slate-700);white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.vl-card__meta-value--mono{font-variant-numeric:tabular-nums;letter-spacing:.01em}.vl-card__actions{border-top:1px solid var(--border);align-items:center;gap:7px;padding-top:10px;display:flex}.vl-card__btn{border-radius:var(--r-sm);border:1.5px solid var(--border);background:var(--bg);color:var(--slate-500);cursor:pointer;white-space:nowrap;flex:1;justify-content:center;align-items:center;gap:5px;padding:7px 6px;font-size:.775rem;font-weight:600;transition:background .14s,color .14s,border-color .14s;display:inline-flex}.vl-card__btn--view:hover{color:#2563eb;background:#eff6ff;border-color:#bfdbfe}.vl-card__btn--edit:hover{color:#b45309;background:#fffbeb;border-color:#fde68a}.vl-card__btn--delete:hover{color:#dc2626;background:#fff5f5;border-color:#fca5a5}.rv-card-list{flex-direction:column;gap:8px;display:none}.rv-card{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg);transition:box-shadow .15s,transform .15s;overflow:hidden}.rv-card:hover{box-shadow:var(--sh-xs);transform:translateY(-1px)}.rv-card__inner{display:flex}.rv-card__accent{flex-shrink:0;width:4px}.rv-card__content{flex-direction:column;flex:1;gap:8px;min-width:0;padding:12px 12px 10px;display:flex}.rv-card__header{align-items:flex-start;gap:10px;display:flex}.rv-card__name-block{flex:1;min-width:0}.rv-card__name{color:var(--navy-800);white-space:nowrap;text-overflow:ellipsis;margin-bottom:3px;font-size:.9rem;font-weight:700;overflow:hidden}.rv-card__top-row{justify-content:space-between;align-items:center;gap:6px;display:flex}.rv-card__time{color:var(--slate-500);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.75rem;font-weight:600}.rv-card__meta{border-top:1px solid var(--border);flex-direction:column;gap:5px;padding-top:8px;display:flex}.rv-card__meta-row{align-items:flex-start;gap:7px;font-size:.8rem;display:flex}.rv-card__meta-icon{color:var(--subtle);flex-shrink:0;margin-top:2px}.rv-card__meta-value{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.reg-card-list{flex-direction:column;gap:10px;padding:12px 14px 16px;display:none}.reg-card{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--sh-xs);transition:box-shadow .18s,transform .18s;overflow:hidden}.reg-card:hover{box-shadow:var(--sh-sm);transform:translateY(-1px)}.reg-card__inner{display:flex}.reg-card__accent{flex-shrink:0;width:4px}.reg-card__content{flex-direction:column;flex:1;gap:11px;min-width:0;padding:14px 14px 12px;display:flex}.reg-card__header{align-items:flex-start;gap:11px;display:flex}.reg-card__avatar{letter-spacing:-.02em;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;font-size:1.1rem;font-weight:800;display:flex}.reg-card__avatar--register{color:#166534;background:#f0fdf4}.reg-card__avatar--scheduled{color:#1e40af;background:#eff6ff}.reg-card__avatar--history{color:#5b21b6;background:#f5f3ff}.reg-card__name-block{flex:1;min-width:0}.reg-card__name-row{flex-wrap:wrap;align-items:center;gap:7px;margin-bottom:5px;display:flex}.reg-card__name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:.97rem;font-weight:700;line-height:1.25;overflow:hidden}.reg-card__meta{border-top:1px solid var(--border);flex-direction:column;gap:6px;padding-top:10px;display:flex}.reg-card__meta-row{align-items:flex-start;gap:8px;font-size:.82rem;line-height:1.45;display:flex}.reg-card__meta-icon{color:var(--subtle);flex-shrink:0;margin-top:2px}.reg-card__meta-label{color:var(--slate-500);white-space:nowrap;flex-shrink:0;font-weight:600}.reg-card__meta-value{color:var(--slate-700);white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.reg-card__meta-value--mono{font-variant-numeric:tabular-nums;letter-spacing:.01em}.reg-card__actions{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:6px;padding-top:10px;display:flex}.reg-card__btn{border-radius:var(--r-sm);border:1.5px solid var(--border);background:var(--bg);color:var(--slate-500);cursor:pointer;white-space:nowrap;flex:auto;justify-content:center;align-items:center;gap:5px;padding:7px 8px;font-size:.775rem;font-weight:600;transition:background .14s,color .14s,border-color .14s;display:inline-flex}.reg-card__btn--view:hover{color:#2563eb;background:#eff6ff;border-color:#bfdbfe}.reg-card__btn--edit:hover{color:#b45309;background:#fffbeb;border-color:#fde68a}.reg-card__btn--schedule:hover{color:#2563eb;background:#eff6ff;border-color:#bfdbfe}.reg-card__btn--assess:hover{color:#7c3aed;background:#f5f3ff;border-color:#ddd6fe}.reg-card__btn--delete:hover{color:#dc2626;background:#fff5f5;border-color:#fca5a5}.date-filter{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.range-seg{background:var(--ink-soft);border-radius:10px;align-items:center;gap:1px;padding:3px;display:inline-flex}.range-seg__btn{height:30px;color:var(--muted);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:7px;align-items:center;padding:0 16px;font-size:.8rem;font-weight:500;transition:color .15s,background .15s;display:inline-flex}.range-seg__btn:hover:not(.range-seg__btn--active){color:var(--text);background:#0000000d;border-radius:7px}.range-seg__btn--active{background:var(--surface);color:var(--navy-700,#1d4ed8);font-weight:650;box-shadow:0 1px 4px #00000021,0 0 0 .5px #0000000f}.date-filter-or{color:var(--subtle);letter-spacing:.02em;flex-shrink:0;font-size:.74rem;font-weight:500}.date-filter-custom{border:1.5px solid var(--border);border-radius:var(--r-sm);background:var(--surface);height:36px;box-shadow:var(--sh-xs);cursor:pointer;align-items:center;gap:7px;padding:0 11px;transition:border-color .15s,box-shadow .15s;display:inline-flex}.date-filter-custom:focus-within{border-color:var(--navy-500);box-shadow:0 0 0 3px #2563eb1a}.date-filter-custom__icon{color:var(--muted);pointer-events:none;flex-shrink:0}.date-input{color:var(--text);font:inherit;cursor:pointer;background:0 0;border:none;outline:none;min-width:0;padding:0;font-size:.82rem}.empty-state{border:2px dashed var(--slate-200);border-radius:var(--r-md);background:var(--surface);color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:72px 24px;font-size:.9rem;display:flex}.confirm-overlay{z-index:9998;background:#0a0f1e85;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.confirm-dialog{background:var(--surface);border-radius:var(--r-xl);border:1px solid var(--border);text-align:center;width:100%;max-width:360px;padding:36px 28px 28px;animation:.2s cubic-bezier(.175,.885,.32,1.275) both confirmPop;box-shadow:0 24px 64px #00000038,0 4px 16px #0000001a}@keyframes confirmPop{0%{opacity:0;transform:scale(.88)translateY(-10px)}to{opacity:1;transform:scale(1)translateY(0)}}.confirm-dialog__icon{color:#dc2626;background:#fff0f0;border:1.5px solid #fecaca;border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;margin:0 auto 20px;display:flex}.confirm-dialog__title{color:var(--text);letter-spacing:-.01em;margin:0 0 10px;font-size:1.05rem;font-weight:700}.confirm-dialog__msg{color:var(--muted);margin:0 0 28px;font-size:.875rem;line-height:1.6}.confirm-dialog__msg strong{color:var(--text);font-weight:600}.confirm-dialog__actions{justify-content:center;gap:10px;display:flex}.danger-button{border-radius:var(--r-sm);color:#fff;cursor:pointer;background:#dc2626;border:1.5px solid #dc2626;align-items:center;gap:6px;height:38px;padding:0 20px;font-size:.875rem;font-weight:600;transition:background .15s,border-color .15s,box-shadow .15s;display:inline-flex}.danger-button:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c;box-shadow:0 2px 8px #dc262659}.danger-button:disabled{opacity:.6;cursor:not-allowed}.vd-panel{max-width:580px}.vd-modal-body{scrollbar-width:thin;scrollbar-color:var(--slate-200) transparent;flex-direction:column;flex:1;display:flex;overflow-y:auto}.vd-modal-body::-webkit-scrollbar{width:4px}.vd-modal-body::-webkit-scrollbar-track{background:0 0}.vd-modal-body::-webkit-scrollbar-thumb{background:var(--slate-200);border-radius:2px}.vd-header{align-items:center;gap:12px}.vd-header-left{flex:1;align-items:center;gap:14px;min-width:0;display:flex;overflow:hidden}.vd-avatar{color:#fff;letter-spacing:.02em;-webkit-user-select:none;user-select:none;background:linear-gradient(145deg,#1e3a5f,#0f2040);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;font-size:.95rem;font-weight:700;display:inline-flex}.vd-avatar--purple{background:linear-gradient(145deg,#5b21b6,#3b0d8c)}.vd-header-info{min-width:0;overflow:hidden}.vd-header-info .modal-title{white-space:nowrap;text-overflow:ellipsis;margin-bottom:5px;overflow:hidden}.vd-header-meta{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.vd-meta-sep{background:var(--slate-300);border-radius:50%;flex-shrink:0;width:3px;height:3px}.vd-phone{color:var(--muted);align-items:center;gap:4px;font-size:.78rem;font-weight:500;display:inline-flex}.vd-visit-count{color:var(--slate-500);font-size:.75rem;font-weight:600}.vd-section{border-bottom:1px solid var(--slate-100);padding:18px 24px}.vd-section:last-child{border-bottom:none}.vd-section-header{align-items:center;gap:6px;margin-bottom:14px;display:flex}.vd-section-icon{color:var(--muted);flex-shrink:0;align-items:center;display:inline-flex}.vd-section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:.68rem;font-weight:700}.vd-section-date{color:var(--slate-400);margin-left:auto;font-size:.72rem;font-weight:500}.vd-info-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.vd-info-card{background:#f8fafc;border:1px solid #eef2f7;border-radius:10px;flex-direction:column;gap:4px;min-width:0;padding:10px 14px;display:flex;overflow:hidden}.vd-info-card--full{grid-column:1/-1}.vd-info-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:.63rem;font-weight:700}.vd-info-value{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;font-weight:500;line-height:1.4;overflow:hidden}.vd-info-value--muted{color:var(--slate-500);font-weight:400}.vd-state-row{color:var(--muted);align-items:center;gap:8px;padding:12px 0;font-size:.83rem;display:flex}.vd-spinner{animation:.8s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.vd-timeline{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.vd-timeline-item{grid-template-columns:14px 1fr;gap:12px;padding-bottom:12px;display:grid;position:relative}.vd-timeline-item:last-child{padding-bottom:0}.vd-timeline-item:before{content:"";background:#e2e8f0;width:1.5px;position:absolute;top:16px;bottom:0;left:6px}.vd-timeline-item:last-child:before{display:none}.vd-timeline-dot{z-index:1;background:#fff;border:2px solid #cbd5e1;border-radius:50%;flex-shrink:0;width:14px;height:14px;margin-top:3px;position:relative}.vd-timeline-card{background:#f8fafc;border:1px solid #eef2f7;border-radius:10px;min-width:0;padding:10px 14px}.vd-timeline-top{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.vd-timeline-time{color:var(--navy-700);font-size:.73rem;font-weight:600}.vd-timeline-purpose{color:var(--text);margin:0 0 4px;font-size:.86rem;font-weight:500}.vd-timeline-meta{color:var(--muted);margin:0 0 2px;font-size:.76rem}.badge--sm{gap:4px;padding:2px 7px 2px 5px;font-size:.63rem}.badge--sm:before{width:5px;height:5px}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(16px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-overlay{z-index:150;-webkit-backdrop-filter:blur(6px);background:#091a388c;justify-content:center;align-items:center;padding:24px;animation:.18s fade-in;display:flex;position:fixed;inset:0}.modal-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);width:100%;max-width:680px;max-height:90vh;box-shadow:var(--sh-xl);flex-direction:column;animation:.2s cubic-bezier(.22,1,.36,1) slide-up;display:flex;overflow:hidden}.modal-header{border-bottom:1px solid var(--slate-100);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:22px 28px 18px;display:flex;overflow:hidden}.modal-header>div:first-child{min-width:0;overflow:hidden}.modal-title{color:var(--navy-800);letter-spacing:-.01em;margin:0;font-size:1.05rem;font-weight:700}.modal-panel .visitor-form{scrollbar-width:thin;scrollbar-color:var(--slate-200) transparent;flex-direction:column;flex:1;gap:18px;padding:22px 28px 0;display:flex;overflow-y:auto}.modal-panel .visitor-form::-webkit-scrollbar{width:4px}.modal-panel .visitor-form::-webkit-scrollbar-track{background:0 0}.modal-panel .visitor-form::-webkit-scrollbar-thumb{background:var(--slate-200);border-radius:2px}.modal-panel .form-actions{border-top:1px solid var(--slate-100);background:var(--surface);flex-shrink:0;margin-top:0;padding:16px 28px 22px}.idle-overlay{z-index:200;-webkit-backdrop-filter:blur(8px);background:#091a389e;justify-content:center;align-items:center;animation:.2s fade-in;display:flex;position:fixed;inset:0}.idle-modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);text-align:center;width:calc(100% - 48px);max-width:400px;box-shadow:var(--sh-xl);padding:44px 40px;animation:.22s cubic-bezier(.22,1,.36,1) slide-up;position:relative;overflow:hidden}.idle-modal:before{content:"";background:linear-gradient(90deg, var(--gold-500), var(--gold-300));height:3px;position:absolute;top:0;left:0;right:0}.idle-icon{margin-bottom:14px;font-size:2.4rem;line-height:1}.idle-modal-title{color:var(--navy-800);letter-spacing:-.02em;margin:0 0 8px;font-size:1.25rem;font-weight:800}.idle-modal-msg{color:var(--muted);margin:0 0 6px;font-size:.88rem;line-height:1.6}.idle-countdown{color:var(--navy-800);font-variant-numeric:tabular-nums;letter-spacing:-.04em;margin:6px 0 30px;font-size:3rem;font-weight:800}.idle-actions{flex-direction:column;gap:10px;display:flex}.dash-stat-grid{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-xs);flex-direction:column;gap:4px;padding:22px 22px 18px;transition:box-shadow .2s,transform .2s;display:flex;position:relative;overflow:hidden}.stat-card:after{content:"";background:var(--stat-accent,transparent);border-radius:0 0 var(--r-lg) var(--r-lg);height:3px;position:absolute;bottom:0;left:0;right:0}.stat-card:hover{box-shadow:var(--sh-md);transform:translateY(-2px)}.stat-card__header{align-items:center;gap:10px;margin-bottom:8px;display:flex}.stat-card__icon{border-radius:var(--r-md);flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.stat-card__icon--gold{color:var(--gold-500);background:#f59e0b1f}.stat-card__icon--navy{color:var(--navy-600);background:#1e3a8a1a}.stat-card__icon--slate{color:var(--slate-500);background:#64748b1a}.stat-card__icon--emerald{color:#059669;background:#10b9811f}.stat-card--gold{--stat-accent:#f59e0b}.stat-card--navy{--stat-accent:var(--navy-500)}.stat-card--slate{--stat-accent:var(--slate-400)}.stat-card--emerald{--stat-accent:#10b981}.stat-card--rose{--stat-accent:#f43f5e}.stat-card__label{color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-size:.75rem;font-weight:600}.stat-card__value{color:var(--navy-800);letter-spacing:-.04em;font-variant-numeric:tabular-nums;margin:0;font-size:2.6rem;font-weight:800;line-height:1}.stat-card__value--text{letter-spacing:-.02em;font-size:1.45rem;font-weight:700}.stat-card__sub{color:var(--muted);margin:4px 0 0;font-size:.78rem}.dash-chart-grid{grid-template-columns:1fr 320px;gap:16px;display:grid}.dash-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-xs);padding:24px}.dash-card__header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:22px;display:flex}.dash-card__title{color:var(--navy-800);letter-spacing:-.01em;margin:0 0 3px;font-size:1rem;font-weight:700}.dash-card__sub{color:var(--muted);margin:0;font-size:.78rem}.dash-badge{background:var(--gold-100);color:var(--gold-600);white-space:nowrap;border-radius:20px;flex-shrink:0;align-items:center;padding:4px 10px;font-size:.75rem;font-weight:700;display:inline-flex}.dash-link{color:var(--navy-600);white-space:nowrap;flex-shrink:0;font-size:.82rem;font-weight:600;text-decoration:none}.dash-link:hover{color:var(--navy-800);text-decoration:underline}.dash-empty{color:var(--muted);text-align:center;margin:0;padding:24px 0;font-size:.88rem}.dash-empty-lg{text-align:center;color:var(--muted);flex-direction:column;align-items:center;padding:32px 0 16px;font-size:.9rem;display:flex}.wchart__area{border-bottom:1.5px solid var(--slate-100);align-items:flex-end;gap:8px;height:160px;margin-bottom:10px;display:flex}.wchart__col{flex-direction:column;flex:1;align-items:center;height:100%;display:flex}.wchart__spacer{flex:1}.wchart__count{color:var(--slate-400);margin-bottom:4px;font-size:.68rem;font-weight:700;line-height:1}.wchart__fill{background:var(--slate-200);border-radius:5px 5px 0 0;width:calc(100% - 10px);max-width:38px;transition:background .2s}.wchart__col--today .wchart__fill{background:linear-gradient(to bottom, var(--gold-300) 0%, var(--gold-500) 100%);box-shadow:0 -4px 14px #f59e0b59}.wchart__col--today .wchart__count{color:var(--gold-500);font-weight:800}.wchart__labels{gap:8px;display:flex}.wchart__day{text-align:center;color:var(--slate-400);flex:1;padding-top:8px;font-size:.68rem;font-weight:500}.wchart__day--today{color:var(--gold-600);font-weight:700}.tbd{flex-direction:column;gap:14px;display:flex}.tbd__row{flex-direction:column;gap:6px;display:flex}.tbd__meta{justify-content:space-between;align-items:center;gap:8px;display:flex}.tbd__badge{border-radius:20px;padding:2px 9px;font-size:.75rem;font-weight:600;display:inline-block}.tbd__stat{color:var(--navy-800);white-space:nowrap;align-items:baseline;gap:5px;font-size:.82rem;font-weight:700;display:flex}.tbd__pct{color:var(--muted);font-size:.7rem;font-weight:500}.tbd__track{background:var(--slate-100);border-radius:3px;height:6px;overflow:hidden}.tbd__bar{border-radius:3px;min-width:4px;height:100%;transition:width .4s}.rd-section{flex-direction:column;display:flex}.rd-section-label{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin:0 0 12px;font-size:.7rem;font-weight:700}.rd-visitor-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.apt-pipeline{border-radius:var(--r-lg);box-shadow:var(--sh-md), 0 0 0 1px #ffffff0a inset;background:linear-gradient(135deg,#0f172a 0%,#1e3a5f 100%);border:1px solid #ffffff14;padding:24px 28px 20px}.apt-pipeline__head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:20px;display:flex}.apt-pipeline__title{color:#fff;letter-spacing:-.01em;margin:0 0 4px;font-size:1rem;font-weight:700}.apt-pipeline__sub{color:#ffffff80;margin:0;font-size:.78rem}.apt-pipeline__link{color:#ffffff8c;white-space:nowrap;border:1px solid #ffffff2e;border-radius:20px;flex-shrink:0;padding:4px 14px;font-size:.8rem;font-weight:600;text-decoration:none;transition:background .15s,color .15s}.apt-pipeline__link:hover{color:#fff;background:#ffffff1a}.apt-pipeline__stages{align-items:center;display:flex}.apt-stage-wrap{min-width:0;color:inherit;flex:1;text-decoration:none}.apt-stage{border-radius:var(--r-md);text-align:center;flex-direction:column;align-items:center;gap:10px;padding:18px 8px;transition:background .14s;display:flex}.apt-stage-wrap:is(a):hover .apt-stage{background:#ffffff0f}.apt-stage__icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;display:flex}.apt-icon--blue{color:#60a5fa;background:#2563eb40;box-shadow:0 0 0 8px #2563eb14}.apt-icon--green{color:#4ade80;background:#16a34a40;box-shadow:0 0 0 8px #16a34a14}.apt-icon--purple{color:#a78bfa;background:#7c3aed40;box-shadow:0 0 0 8px #7c3aed14}.apt-icon--amber{color:#fbd46d;background:#d9770640;box-shadow:0 0 0 8px #d9770614}.apt-stage__count{color:#fff;letter-spacing:-.04em;font-variant-numeric:tabular-nums;margin:0;font-size:2.4rem;font-weight:800;line-height:1}.apt-stage__label{color:#ffffff80;text-transform:uppercase;letter-spacing:.08em;margin:0;font-size:.7rem;font-weight:600}.apt-connector{flex-shrink:0;align-items:center;margin-bottom:32px;padding:0 4px;display:flex}.apt-connector__line{background:linear-gradient(90deg,#ffffff14,#ffffff47,#ffffff14);width:22px;height:1px}.apt-connector__arrow{border-top:5px solid #0000;border-bottom:5px solid #0000;border-left:7px solid #ffffff47;width:0;height:0}.rd-bottom-grid{grid-template-columns:1fr 340px;gap:16px;display:grid}.upcoming-list{flex-direction:column;margin:0 -24px;padding:0;list-style:none;display:flex}.upcoming-item{align-items:center;gap:12px;padding:11px 24px;transition:background .12s;display:flex}.upcoming-item:hover{background:var(--hover)}.upcoming-item+.upcoming-item{border-top:1px solid var(--border)}.upcoming-item__avatar{width:34px;height:34px;color:var(--navy-700);text-transform:uppercase;background:#1e3a8a14;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.85rem;font-weight:700;display:flex}.upcoming-item__body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.upcoming-item__name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;font-weight:600;overflow:hidden}.upcoming-item__grade{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;overflow:hidden}.upcoming-item__date{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:1px;display:flex}.upcoming-item__day{color:var(--navy-700);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.72rem;font-weight:700}.upcoming-item__time{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.68rem}.type-dot-label{color:var(--slate-700);align-items:center;gap:6px;font-size:.82rem;font-weight:500;display:inline-flex}.type-dot-label:before{content:"";background:var(--dot,var(--slate-400));border-radius:50%;flex-shrink:0;width:8px;height:8px}.td-bold{color:var(--navy-800);font-weight:600}.td-muted{color:var(--muted);font-size:.85rem}.td-time{color:var(--navy-700);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.83rem;font-weight:700}.role-chip{text-transform:uppercase;letter-spacing:.08em;background:var(--slate-100);color:var(--slate-500);vertical-align:middle;border-radius:20px;align-items:center;margin-left:12px;padding:3px 10px;font-size:.7rem;font-weight:700;display:inline-flex}.role-chip--admin{color:var(--navy-700);background:#1e3a8a1a}.user-breakdown{flex-direction:column;gap:14px;display:flex}.ubr__row{grid-template-columns:160px 1fr 40px;align-items:center;gap:14px;display:grid}.ubr__label{align-items:center;gap:8px;display:flex}.ubr__icon{border-radius:var(--r-sm);flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.ubr__name{color:var(--slate-700);font-size:.85rem;font-weight:600}.ubr__track{background:var(--slate-100);border-radius:4px;height:8px;overflow:hidden}.ubr__fill{border-radius:4px;min-width:4px;height:100%;transition:width .4s}.ubr__count{color:var(--navy-800);text-align:right;font-variant-numeric:tabular-nums;font-size:.85rem;font-weight:700}.ph-banner{background:linear-gradient(135deg, var(--navy-50), var(--gold-50));border:1px solid #d0dcf0;border-left:4px solid var(--gold-400);border-radius:var(--r-lg);align-items:flex-start;gap:16px;padding:18px 22px;display:flex}.ph-banner__icon{flex-shrink:0;padding-top:2px;font-size:1.6rem;line-height:1}.ph-banner__title{color:var(--navy-800);margin:0 0 4px;font-size:.95rem;font-weight:700}.ph-banner__sub{color:var(--muted);margin:0;font-size:.82rem;line-height:1.5}.module-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.module-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-xs);flex-direction:column;gap:8px;padding:24px;transition:box-shadow .2s,transform .2s;display:flex}.module-card:hover{box-shadow:var(--sh-sm);transform:translateY(-2px)}.module-card__icon{border-radius:var(--r-md);background:var(--navy-50);width:44px;height:44px;color:var(--navy-600);flex-shrink:0;justify-content:center;align-items:center;margin-bottom:4px;display:flex}.module-card__name{color:var(--navy-800);letter-spacing:-.01em;margin:0;font-size:.95rem;font-weight:700}.module-card__desc{color:var(--muted);flex:1;margin:0;font-size:.82rem;line-height:1.55}.module-card__pill{background:var(--slate-100);color:var(--slate-500);text-transform:uppercase;letter-spacing:.07em;border-radius:20px;align-self:flex-start;margin-top:4px;padding:3px 10px;font-size:.7rem;font-weight:700;display:inline-block}.stat-card__icon--rose{color:#be123c;background:#f43f5e1f}@media (max-width:1024px){.dash-stat-grid{grid-template-columns:repeat(2,1fr)}.dash-chart-grid{grid-template-columns:1fr}.module-grid{grid-template-columns:repeat(2,1fr)}.ubr__row{grid-template-columns:140px 1fr 36px}.rd-bottom-grid{grid-template-columns:1fr}}@media (max-width:768px){.rd-visitor-grid{grid-template-columns:repeat(2,1fr)}.apt-pipeline__stages{flex-wrap:wrap;justify-content:center;gap:8px}.apt-connector{display:none}.apt-stage-wrap{flex:44%}}@media (max-width:560px){.dash-stat-grid,.module-grid{grid-template-columns:1fr}.ubr__row{grid-template-columns:1fr auto}.ubr__track{display:none}}.idle-actions .primary-button,.idle-actions .secondary-button{width:100%;min-height:44px;font-size:.9rem}.mobile-topbar,.mobile-drawer,.mobile-overlay,.mobile-close-btn{display:none}@media (max-width:900px){.app-shell{flex-direction:column}.desktop-sidebar,.topbar{display:none}.mobile-topbar{z-index:40;-webkit-backdrop-filter:blur(16px);background:#eef2fbeb;border-bottom:1px solid #cbd5e199;justify-content:space-between;align-items:center;height:58px;padding:0 16px;display:flex;position:sticky;top:0;box-shadow:0 2px 12px #091a380f}.hamburger-btn{width:40px;height:40px;color:var(--navy-800);border-radius:var(--r-sm);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;transition:background .14s;display:flex}.hamburger-btn:hover{background:var(--ink-soft)}.mobile-brand{align-items:center;gap:9px;text-decoration:none;display:flex}.mobile-brand .brand-logo-wrap{background:var(--navy-50);border:1px solid var(--navy-100);width:32px;height:32px}.mobile-brand strong{color:var(--navy-800);letter-spacing:-.01em;font-size:.9rem;font-weight:700}.mobile-signout-btn{width:40px;height:40px;color:var(--muted);border-radius:var(--r-sm);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;transition:background .14s,color .14s;display:flex}.mobile-signout-btn:hover{color:#dc2626;background:#fff0f0}.mobile-overlay{z-index:48;-webkit-backdrop-filter:blur(3px);background:#091a3885;animation:.2s fade-in;display:block;position:fixed;inset:0}.mobile-drawer{z-index:49;height:100dvh;box-shadow:var(--sh-xl);transition:transform .28s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;top:0;left:0;transform:translate(-100%);width:280px!important}.mobile-drawer--open{transform:translate(0)}.mobile-drawer .mobile-close-btn{color:#ffffffa6;border-radius:var(--r-sm);cursor:pointer;background:#ffffff12;border:1px solid #ffffff24;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;padding:0;transition:background .14s,color .14s;display:flex}.mobile-drawer .mobile-close-btn:hover{color:#fff;background:#ffffff21}.mobile-drawer .brand-text,.mobile-drawer .nav-label,.mobile-drawer .nav-section-label,.mobile-drawer .user-meta{opacity:1!important}.mobile-drawer .logout-btn{opacity:1!important;pointer-events:auto!important}.mobile-drawer .sidebar-collapse-btn{display:none}.mobile-drawer .sidebar-brand{justify-content:space-between;align-items:center;gap:8px;display:flex}.mobile-drawer .brand-link{flex:1;min-width:0}.content{gap:18px;padding:20px 16px 32px}.page-heading{grid-template-columns:1fr}.heading-actions{justify-content:flex-start}.foundation-panel{grid-template-columns:1fr}.stack-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:560px){.page-heading h1{font-size:1.35rem}.stack-grid{grid-template-columns:1fr}.mobile-brand strong,.topbar-role-badge{display:none}}@media (max-width:1200px){.content{gap:20px;padding:24px}}@media (max-width:900px){.stat-card__value{font-size:2.1rem}.dash-card{padding:18px}.dash-card__header{margin-bottom:16px}.upcoming-list{margin:0 -18px}.upcoming-item{padding:11px 18px}.topbar-role-badge{display:none}}@media (max-width:768px){.vl-card-list{display:flex}.log-panel__table{display:none}.rv-card-list{display:flex}.rv-desktop-table{display:none}.reg-card-list{display:flex}}@media (max-width:640px){.content{gap:12px;padding:14px 12px 32px}.page-heading h1{font-size:1.2rem}.stat-card{padding:14px}.stat-card__value{font-size:1.75rem}.stat-card__value--text{font-size:1.1rem}.dash-card{padding:14px}.dash-card__header{margin-bottom:12px}.upcoming-list{margin:0 -14px}.upcoming-item{padding:11px 14px}.apt-pipeline{padding:18px 16px 14px}.apt-stage{padding:14px 8px}.apt-stage__count{font-size:2rem}.wchart__area{height:110px}.wchart__count{font-size:.62rem}.type-chips{scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;padding-bottom:4px;overflow-x:auto}.type-chips::-webkit-scrollbar{display:none}.type-chip{flex-shrink:0}.log-controls{gap:10px;padding:12px 14px}.modal-overlay{align-items:flex-end;padding:0}.modal-panel{border-radius:var(--r-lg) var(--r-lg) 0 0;max-width:100%;max-height:88dvh}.modal-header{padding:14px 18px 12px}.modal-panel .visitor-form{padding:14px 18px 0}.modal-panel .form-actions{padding:12px 18px 18px}.ph-banner{flex-direction:column;gap:10px;padding:14px 16px}.ph-banner__icon{font-size:1.4rem}.module-card{padding:16px}.module-grid{gap:10px}.auth-card{padding:28px 18px}.date-filter{flex-wrap:wrap;gap:8px}.range-seg{scrollbar-width:none;overflow-x:auto}.range-seg::-webkit-scrollbar{display:none}.date-filter-or{display:none}.log-result-info{flex-wrap:wrap;gap:6px}.ubr__row{grid-template-columns:1fr auto;gap:10px}.ubr__track{display:none}}@media (max-width:480px){.content{gap:10px;padding:12px 10px 28px}.auth-card{padding:22px 14px}.auth-title{font-size:1.15rem}.stat-card{padding:12px}.stat-card__value{font-size:1.6rem}.stat-card__value--text{font-size:1.05rem}.rd-visitor-grid{grid-template-columns:1fr}.apt-pipeline{padding:14px 12px 12px}.apt-stage{padding:10px 6px}.apt-stage__icon{width:40px;height:40px;box-shadow:none}.apt-stage__count{font-size:1.8rem}.apt-pipeline__title{font-size:.9rem}.type-chip__count{display:none}.heading-actions{flex-direction:column;align-items:stretch}.heading-actions .primary-button,.heading-actions .secondary-button{justify-content:center}.form-card{padding:16px 14px}.idle-modal{padding:28px 18px}.idle-countdown{font-size:2.2rem}.module-grid{grid-template-columns:1fr}}.visitor-cell{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.visit-badge{color:#475569;cursor:default;background:#cbd5e1;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:.62rem;font-weight:700;line-height:1;display:inline-flex;position:relative}.visitor-lookup{align-items:center;gap:5px;margin-top:4px;font-size:.78rem;font-weight:500;display:inline-flex}.visitor-lookup--loading{color:var(--muted)}.visitor-lookup--found{color:#047857}.visitor-lookup--new{color:var(--navy-600)}.th-form,.td-form{white-space:nowrap;width:120px}.give-form-btn{border-radius:var(--r-full);letter-spacing:.01em;height:26px;color:var(--navy-600);border:1.5px solid var(--navy-300,#bfdbfe);cursor:pointer;white-space:nowrap;background:0 0;align-items:center;gap:5px;padding:3px 10px;font-size:.73rem;font-weight:600;transition:background .14s,border-color .14s,color .14s;display:inline-flex}.give-form-btn:hover:not(:disabled){background:var(--navy-600);border-color:var(--navy-600);color:var(--white)}.give-form-btn:disabled{opacity:.55;cursor:not-allowed}.form-given-badge{border-radius:var(--r-full);color:#047857;white-space:nowrap;background:#d1fae5;border:1.5px solid #6ee7b7;align-items:center;gap:4px;padding:2px 9px;font-size:.72rem;font-weight:700;display:inline-flex}.page-summary{color:var(--muted);margin-top:4px;font-size:.88rem;font-weight:400}.fr-controls{flex-direction:row;align-items:center;gap:14px}.fr-result-count{color:var(--muted);white-space:nowrap;flex-shrink:0;margin:0;font-size:.78rem;font-weight:500}.fr-visitor{align-items:center;gap:10px;display:flex}.fr-avatar{background:var(--navy-100);width:32px;height:32px;color:var(--navy-700);letter-spacing:.02em;-webkit-user-select:none;user-select:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.72rem;font-weight:700;display:inline-flex}.fr-visitor-name{color:var(--text);font-weight:500}.fr-purpose{border-radius:var(--r-full);background:var(--slate-100);color:var(--slate-700);white-space:nowrap;text-overflow:ellipsis;max-width:200px;padding:2px 9px;font-size:.75rem;font-weight:500;display:inline-block;overflow:hidden}.fr-given-time{color:#047857;white-space:nowrap;align-items:center;gap:5px;font-size:.82rem;font-weight:500;display:inline-flex}.fr-col-phone{width:130px}.fr-col-date{width:140px}.fr-col-given{width:160px}.fr-empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:60px 24px;display:flex}.fr-empty__icon{background:var(--slate-100);width:68px;height:68px;color:var(--slate-400);border-radius:50%;justify-content:center;align-items:center;margin-bottom:4px;display:flex}.fr-empty__title{color:var(--slate-700);font-size:.97rem;font-weight:600}.fr-empty__hint{color:var(--muted);max-width:360px;margin:0;font-size:.83rem;line-height:1.5}@media (max-width:640px){.th-form,.td-form,.fr-col-phone,.fr-col-date{display:none}}.reg-col-phone{width:130px}.reg-col-date{width:150px}.rd-aptitude-badge{color:#5b21b6;letter-spacing:.025em;white-space:nowrap;background:#f5f3ff;border-radius:20px;align-items:center;gap:5px;padding:3px 10px 3px 7px;font-size:.695rem;font-weight:600;display:inline-flex}.rd-aptitude-badge:before{content:"";background:#8b5cf6;border-radius:50%;flex-shrink:0;width:6px;height:6px}@media (max-width:640px){.reg-col-phone,.reg-col-date{display:none}}.grade-badge{letter-spacing:.02em;white-space:nowrap;border-radius:20px;align-items:center;gap:5px;padding:3px 10px 3px 7px;font-size:.685rem;font-weight:600;display:inline-flex}.grade-badge:before{content:"";border-radius:50%;flex-shrink:0;width:6px;height:6px}.grade-badge--exceptional{color:#5b21b6;background:#f5f3ff}.grade-badge--exceptional:before{background:#7c3aed}.grade-badge--above{color:#075985;background:#e0f2fe}.grade-badge--above:before{background:#0891b2}.grade-badge--meet{color:#065f46;background:#ecfdf5}.grade-badge--meet:before{background:#059669}.grade-badge--improve{color:#78350f;background:#fffbeb}.grade-badge--improve:before{background:#d97706}.result-badge{letter-spacing:.02em;border-radius:20px;align-items:center;gap:5px;padding:3px 10px 3px 7px;font-size:.685rem;font-weight:700;display:inline-flex}.result-badge:before{content:"";border-radius:50%;flex-shrink:0;width:6px;height:6px}.result-badge--passed{color:#166534;background:#dcfce7}.result-badge--passed:before{background:#16a34a}.result-badge--failed{color:#991b1b;background:#fee2e2}.result-badge--failed:before{background:#dc2626}.action-btn--schedule:hover{color:#2563eb;background:#eff6ff;border-color:#bfdbfe}.action-btn--assess:hover{color:#7c3aed;background:#f5f3ff;border-color:#ddd6fe}.sched-panel{max-width:460px}.sched-form{padding:20px 24px 24px}.sched-info-grid{margin-bottom:0}.sched-divider{background:var(--slate-100);height:1px;margin:18px 0}.sched-dt-row{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:24px;display:grid}.sched-field{flex-direction:column;gap:7px;display:flex}.sched-field-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);align-items:center;gap:5px;font-size:.67rem;font-weight:700;display:flex}.sched-input{border:1.5px solid var(--border);border-radius:var(--r-md);width:100%;color:var(--text);background:var(--surface);padding:10px 12px;font-family:inherit;font-size:.875rem;transition:border-color .15s,box-shadow .15s}.sched-input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #2563eb1a}.sched-select-wrap{align-items:center;display:flex;position:relative}.sched-select{border:1.5px solid var(--border);border-radius:var(--r-md);width:100%;color:var(--text);background:var(--surface);appearance:none;cursor:pointer;padding:10px 36px 10px 12px;font-family:inherit;font-size:.875rem;transition:border-color .15s,box-shadow .15s}.sched-select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #2563eb1a}.sched-select-icon{color:var(--muted);pointer-events:none;position:absolute;right:11px}.sched-actions{justify-content:flex-end;gap:10px;display:flex}.assess-panel{max-width:500px}.assess-form{scrollbar-width:thin;scrollbar-color:var(--slate-200) transparent;flex:1;padding:16px 24px 0;overflow-y:auto}.assess-form::-webkit-scrollbar{width:4px}.assess-form::-webkit-scrollbar-track{background:0 0}.assess-form::-webkit-scrollbar-thumb{background:var(--slate-200);border-radius:2px}.assess-form .form-actions{border-top:1px solid var(--slate-100);background:var(--surface);margin-top:4px;padding:14px 0 18px;position:sticky;bottom:0}.assess-subtitle{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:.78rem;font-weight:500;overflow:hidden}.assess-subtitle-sep{opacity:.5;margin:0 5px}.assess-section{margin-bottom:16px}.assess-section-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:8px;font-size:.68rem;font-weight:700}.assess-optional{text-transform:none;letter-spacing:0;color:var(--muted);opacity:.75;font-size:.68rem;font-weight:400}.assess-grade-grid{grid-template-columns:1fr 1fr;gap:6px;display:grid}.assess-grade-btn{cursor:pointer;text-align:left;background:0 0;border:1.5px solid #e2e8f0;border-radius:8px;align-items:center;gap:8px;padding:9px 12px;transition:border-color .13s,background .13s,box-shadow .13s;display:flex;position:relative}.assess-grade-btn:hover{border-color:var(--gc,#94a3b8);background:color-mix(in srgb, var(--gc) 5%, white)}.assess-grade-btn--on{border-color:var(--gc,#94a3b8);background:color-mix(in srgb, var(--gc) 8%, white);box-shadow:0 0 0 3px color-mix(in srgb, var(--gc) 13%, transparent)}.assess-grade-ico{background:color-mix(in srgb, var(--gc) 13%, transparent);width:26px;height:26px;color:var(--gc);border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.assess-grade-lbl{color:var(--text);flex:1;font-size:.8rem;font-weight:600}.assess-grade-btn--on .assess-grade-lbl{color:var(--gc)}.assess-grade-check{background:var(--gc);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;display:inline-flex}.assess-remarks{border:1.5px solid var(--border);border-radius:var(--r-md);width:100%;color:var(--text);background:var(--surface);resize:vertical;padding:9px 12px;font-family:inherit;font-size:.86rem;transition:border-color .13s}.assess-remarks:focus{border-color:var(--accent);outline:none}.assess-result-row{gap:8px;display:flex}.assess-result-btn{height:40px;color:var(--muted);cursor:pointer;background:0 0;border:1.5px solid #e2e8f0;border-radius:8px;flex:1;justify-content:center;align-items:center;gap:6px;font-size:.85rem;font-weight:600;transition:border-color .13s,background .13s,color .13s,box-shadow .13s;display:inline-flex}.assess-result-btn--pass:hover{color:#15803d;background:#f0fdf4;border-color:#16a34a}.assess-result-btn--pass.assess-result-btn--on{color:#15803d;background:#f0fdf4;border-color:#16a34a;box-shadow:0 0 0 3px #bbf7d0}.assess-result-btn--fail:hover{color:#b91c1c;background:#fef2f2;border-color:#dc2626}.assess-result-btn--fail.assess-result-btn--on{color:#b91c1c;background:#fef2f2;border-color:#dc2626;box-shadow:0 0 0 3px #fecaca}
