@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap";
@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.3p2_lha1f2xer.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:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.1qq4vpdcun5oj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.390ncx5urfkfu.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:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.21jp631_3pja2.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:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.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:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.31988l_ccedte.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:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.2tuy5pz7dlieh.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.2dbetqa9o8jxf.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.1uyisp29ctx0d.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:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.1rgnod-3esatf.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:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.0r6juujl39pe6.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:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
:root{--color-primary:#2662d9;--color-primary-light:#5281e0;--color-primary-dark:#1f4ead;--color-primary-rgb:43, 99, 219;--color-accent:#1fad7e;--color-accent-light:#3c9;--color-accent-rgb:30, 173, 130;--color-success:#21ab6b;--color-success-rgb:32, 171, 99;--color-warning:#e09706;--color-warning-rgb:224, 166, 11;--color-danger:#df2020;--color-danger-rgb:222, 63, 63;--color-info:#1791cf;--color-info-rgb:33, 149, 204;--bg-body:#f9fafb;--bg-surface:#fff;--bg-surface-2:#f0f2f4;--bg-surface-3:#e8ebed;--bg-glass:#ffffffd9;--bg-glass-hover:#fffffff2;--bg-glass-active:#fff;--border-subtle:#0000000f;--border-default:#0000001a;--border-strong:#00000026;--border-focus:var(--color-primary);--text-primary:#1b2232;--text-secondary:#5c6370;--text-tertiary:#818898;--text-inverse:#fff;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs:.6875rem;--font-size-sm:.75rem;--font-size-base:.875rem;--font-size-md:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-weight-light:300;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--line-height-tight:1.2;--line-height-base:1.5;--line-height-relaxed:1.7;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:20px;--radius-full:9999px;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 12px #0000001a;--shadow-lg:0 8px 24px #00000026;--shadow-xl:0 16px 48px #0003;--shadow-glow-primary:0 0 20px rgba(var(--color-primary-rgb), .2);--shadow-glow-accent:0 0 20px rgba(var(--color-accent-rgb), .2);--glass-blur:blur(20px);--glass-border:1px solid var(--border-subtle);--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-base:.25s cubic-bezier(.4, 0, .2, 1);--transition-slow:.4s cubic-bezier(.4, 0, .2, 1);--transition-spring:.5s cubic-bezier(.34, 1.56, .64, 1);--sidebar-width:260px;--sidebar-collapsed-width:72px;--header-height:64px;--content-max-width:1400px;--z-sidebar:100;--z-header:200;--z-dropdown:300;--z-modal-backdrop:400;--z-modal:500;--z-toast:600}[data-theme=dark]{--bg-body:#0c1017;--bg-surface:#151923;--bg-surface-2:#1c212c;--bg-surface-3:#252a37;--bg-glass:#0f172ad9;--bg-glass-hover:#0f172af2;--bg-glass-active:#0f172a;--border-subtle:#ffffff0f;--border-default:#ffffff1a;--border-strong:#ffffff26;--text-primary:#f2f2f2;--text-secondary:#9da3af;--text-tertiary:#676f7e;--text-inverse:#0c1017;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs:.6875rem;--font-size-sm:.75rem;--font-size-base:.875rem;--font-size-md:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-weight-light:300;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--line-height-tight:1.2;--line-height-base:1.5;--line-height-relaxed:1.7;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:20px;--radius-full:9999px;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 24px #00000080;--shadow-xl:0 16px 48px #0009;--shadow-glow-primary:0 0 20px rgba(var(--color-primary-rgb), .3);--shadow-glow-accent:0 0 20px rgba(var(--color-accent-rgb), .3);--glass-blur:blur(20px);--glass-border:1px solid var(--border-subtle);--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-base:.25s cubic-bezier(.4, 0, .2, 1);--transition-slow:.4s cubic-bezier(.4, 0, .2, 1);--transition-spring:.5s cubic-bezier(.34, 1.56, .64, 1);--sidebar-width:260px;--sidebar-collapsed-width:72px;--header-height:64px;--content-max-width:1400px;--z-sidebar:100;--z-header:200;--z-dropdown:300;--z-modal-backdrop:400;--z-modal:500;--z-toast:600}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:var(--line-height-base);color:var(--text-primary);background:var(--bg-body);min-height:100vh;overflow-x:hidden}body:before{content:"";background:radial-gradient(ellipse at 20% 20%, rgba(var(--color-primary-rgb), .05) 0%, transparent 50%), radial-gradient(ellipse at 80% 80%, rgba(var(--color-accent-rgb), .03) 0%, transparent 50%);pointer-events:none;z-index:-1;width:100%;height:100%;position:fixed;top:0;left:0}[data-theme=dark] body:before{background:radial-gradient(ellipse at 20% 20%, rgba(var(--color-primary-rgb), .08) 0%, transparent 50%), radial-gradient(ellipse at 80% 80%, rgba(var(--color-accent-rgb), .05) 0%, transparent 50%)}a{color:var(--color-primary-light);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-primary)}img{max-width:100%;display:block}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--text-primary)}h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}h4{font-size:var(--font-size-lg)}h5{font-size:var(--font-size-md)}h6{font-size:var(--font-size-base)}.text-gradient{background:linear-gradient(135deg, var(--color-primary-light), var(--color-accent));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.card{background:var(--bg-surface);border:1px solid var(--border-default);box-shadow:var(--shadow-sm);transition:var(--transition-base);border-radius:24px}.card:hover{box-shadow:var(--shadow-md)}.glass-card{background:var(--bg-glass);-webkit-backdrop-filter:var(--glass-blur);border:var(--glass-border);padding:var(--space-6);transition:all var(--transition-base);border-radius:24px}.glass-card:hover{background:var(--bg-glass-hover);border-color:var(--border-default);box-shadow:var(--shadow-md);transform:translateY(-1px)}.glass-card--solid{background:var(--bg-surface);border:1px solid var(--border-subtle)}.glass-card--interactive{cursor:pointer}.glass-card--interactive:active{background:var(--bg-glass-active);transform:translateY(0)}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-5);min-height:40px;font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;-webkit-user-select:none;user-select:none;border:1px solid #0000;line-height:1;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn-primary{background:linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));color:#fff;box-shadow:var(--shadow-sm), 0 0 0 0 rgba(var(--color-primary-rgb), 0);border:none}.btn-primary:hover{background:linear-gradient(135deg, var(--color-primary-light), var(--color-primary));box-shadow:var(--shadow-md), var(--shadow-glow-primary);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-ghost{background:var(--bg-glass);color:var(--text-secondary);border-color:var(--border-default)}.btn-ghost:hover{background:var(--bg-glass-hover);color:var(--text-primary);border-color:var(--border-strong)}.btn-danger{background:linear-gradient(135deg, var(--color-danger), #c91d1d);color:#fff}.btn-danger:hover{box-shadow:var(--shadow-md), 0 0 20px rgba(var(--color-danger-rgb), .3);transform:translateY(-1px)}.btn-success{background:linear-gradient(135deg, var(--color-accent), #1b986e);color:#fff}.btn-success:hover{box-shadow:var(--shadow-md), var(--shadow-glow-accent);transform:translateY(-1px)}.btn-sm{padding:var(--space-1) var(--space-3);min-height:32px;font-size:var(--font-size-sm)}.btn-lg{padding:var(--space-3) var(--space-8);min-height:48px;font-size:var(--font-size-md)}.btn-icon{border-radius:var(--radius-md);width:40px;height:40px;padding:0}.form-group{gap:var(--space-2);flex-direction:column;display:flex}.form-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-secondary);letter-spacing:.02em}.form-label--required:after{content:" *";color:var(--color-danger)}.form-input,.form-select,.form-textarea{width:100%;padding:var(--space-3) var(--space-4);font-family:var(--font-family);font-size:var(--font-size-base);color:var(--text-primary);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);transition:all var(--transition-fast);outline:none}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-tertiary)}.form-input:hover,.form-select:hover,.form-textarea:hover{border-color:var(--border-strong)}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb), .15)}.form-input--error{border-color:var(--color-danger)}.form-input--error:focus{box-shadow:0 0 0 3px rgba(var(--color-danger-rgb), .15)}.form-error{font-size:var(--font-size-xs);color:var(--color-danger)}.form-textarea{resize:vertical;min-height:100px}.form-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23999' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-4) center;padding-right:var(--space-10)}.badge{align-items:center;gap:var(--space-1);padding:2px var(--space-3);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.03em;border-radius:var(--radius-full);text-transform:uppercase;display:inline-flex}.badge-excellent{background:rgba(var(--color-accent-rgb), .15);color:var(--color-accent-light);border:1px solid rgba(var(--color-accent-rgb), .3)}.badge-pass{background:rgba(var(--color-primary-rgb), .15);color:var(--color-primary-light);border:1px solid rgba(var(--color-primary-rgb), .3)}.badge-warning{background:rgba(var(--color-warning-rgb), .15);color:var(--color-warning);border:1px solid rgba(var(--color-warning-rgb), .3)}.badge-fail{background:rgba(var(--color-danger-rgb), .15);color:var(--color-danger);border:1px solid rgba(var(--color-danger-rgb), .3)}.badge-role-admin{color:#c775f0;background:#dc64ff26;border:1px solid #dc64ff4d}.badge-role-bod{background:rgba(var(--color-warning-rgb), .15);color:var(--color-warning);border:1px solid rgba(var(--color-warning-rgb), .3)}.badge-role-clevel{background:rgba(var(--color-primary-rgb), .15);color:var(--color-primary-light);border:1px solid rgba(var(--color-primary-rgb), .3)}.badge-role-manager{background:rgba(var(--color-accent-rgb), .15);color:var(--color-accent-light);border:1px solid rgba(var(--color-accent-rgb), .3)}.badge-role-staff{background:rgba(var(--color-info-rgb), .15);color:var(--color-info);border:1px solid rgba(var(--color-info-rgb), .3)}.score-ring{justify-content:center;align-items:center;display:inline-flex;position:relative}.score-ring__svg{transform:rotate(-90deg)}.score-ring__bg{fill:none;stroke:var(--border-subtle);stroke-width:6px}.score-ring__progress{fill:none;stroke-width:6px;stroke-linecap:round;transition:stroke-dashoffset 1s cubic-bezier(.4,0,.2,1)}.score-ring__label{flex-direction:column;align-items:center;gap:2px;display:flex;position:absolute}.score-ring__value{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold)}.score-ring__unit{font-size:var(--font-size-xs);color:var(--text-tertiary)}.data-table-container{border-radius:var(--radius-lg);border:1px solid var(--border-subtle);overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:var(--font-size-base)}.data-table thead{background:var(--bg-surface-2)}.data-table th{padding:var(--space-3) var(--space-4);text-align:left;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-default);white-space:nowrap}.data-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-subtle);color:var(--text-primary);vertical-align:middle}.data-table tbody tr{transition:background var(--transition-fast)}.data-table tbody tr:hover{background:var(--bg-glass-hover)}.data-table tbody tr:last-child td{border-bottom:none}.stat-card{gap:var(--space-3);padding:var(--space-6);background:var(--bg-glass);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:var(--glass-border);transition:all var(--transition-base);border-radius:24px;flex-direction:column;display:flex}.stat-card:hover{box-shadow:var(--shadow-lg);border-color:var(--border-default);transform:translateY(-2px)}.stat-card__header{justify-content:space-between;align-items:center;display:flex}.stat-card__icon{border-radius:var(--radius-lg);width:44px;height:44px;font-size:var(--font-size-xl);justify-content:center;align-items:center;display:flex}.stat-card__icon--primary{background:rgba(var(--color-primary-rgb), .15);color:var(--color-primary-light)}.stat-card__icon--accent{background:rgba(var(--color-accent-rgb), .15);color:var(--color-accent-light)}.stat-card__icon--warning{background:rgba(var(--color-warning-rgb), .15);color:var(--color-warning)}.stat-card__icon--danger{background:rgba(var(--color-danger-rgb), .15);color:var(--color-danger)}.stat-card__label{font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:var(--font-weight-medium)}.stat-card__value{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);letter-spacing:-.02em}.stat-card__change{align-items:center;gap:var(--space-1);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);display:inline-flex}.stat-card__change--up{color:var(--color-success)}.stat-card__change--down{color:var(--color-danger)}.sidebar{width:var(--sidebar-width);background:var(--bg-surface);border-right:1px solid var(--border-subtle);height:100vh;z-index:var(--z-sidebar);transition:width var(--transition-slow);flex-direction:column;flex-shrink:0;display:flex;overflow:hidden auto}.sidebar--collapsed{width:var(--sidebar-collapsed-width)}.sidebar__toggle-btn-elegant{color:var(--text-tertiary);border-radius:var(--radius-sm);cursor:pointer;width:32px;height:32px;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.sidebar__toggle-btn-elegant:hover{background:rgba(var(--color-primary-rgb), .1);color:var(--color-primary)}.sidebar__brand{padding:var(--space-5) var(--space-6);align-items:center;gap:var(--space-3);border-bottom:1px solid var(--border-subtle);min-height:var(--header-height);display:flex}.sidebar__brand-logo{background:linear-gradient(135deg, var(--color-primary), var(--color-accent));border-radius:var(--radius-md);color:#fff;width:36px;height:36px;font-weight:var(--font-weight-bold);font-size:var(--font-size-md);flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar__brand-text{flex-direction:column;display:flex;overflow:hidden}.sidebar__brand-name{font-size:var(--font-size-md);font-weight:var(--font-weight-bold);color:var(--text-primary);white-space:nowrap}.sidebar__brand-subtitle{font-size:var(--font-size-xs);color:var(--text-tertiary);white-space:nowrap}.sidebar__nav{padding:var(--space-4) var(--space-3);gap:var(--space-1);flex-direction:column;flex:1;display:flex;overflow-y:auto}.sidebar__section-title{padding:var(--space-3) var(--space-3) var(--space-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em}.sidebar__link{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-3);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);transition:all var(--transition-fast);white-space:nowrap;z-index:1;text-decoration:none;display:flex;position:relative;overflow:hidden}.sidebar__link:after{content:"";background:rgba(var(--color-primary-rgb), .05);z-index:-1;border-radius:var(--radius-md);width:100%;height:100%;transition:transform .3s cubic-bezier(.4,0,.2,1);position:absolute;top:0;left:0;transform:translate(-100%)}.sidebar__link:hover:after{transform:translate(0)}.sidebar__link:hover{color:var(--text-primary);transform:translate(4px)}.sidebar__link:active{background:rgba(var(--color-primary-rgb), .08);transform:scale(.98)translate(2px)}.sidebar__link--active{background:rgba(var(--color-primary-rgb), .12);color:var(--color-primary-light);font-weight:var(--font-weight-semibold)}.sidebar__link--active:after{display:none}.sidebar__link--active:before{content:"";background:var(--color-primary);border-radius:0 var(--radius-sm) var(--radius-sm) 0;width:4px;height:20px;position:absolute;top:50%;left:-8px;transform:translateY(-50%)}.sidebar__submenu{border-left:1px dashed var(--border-subtle);flex-direction:column;gap:2px;margin-top:4px;margin-bottom:8px;margin-left:20px;padding-left:36px;display:flex}.sidebar__submenu-link{border-radius:var(--radius-sm);color:var(--text-secondary);transition:all var(--transition-fast);z-index:1;align-items:center;gap:8px;padding:8px 12px;font-size:.8125rem;text-decoration:none;display:flex;position:relative;overflow:hidden}.sidebar__submenu-link:after{content:"";background:rgba(var(--color-primary-rgb), .04);z-index:-1;border-radius:var(--radius-sm);width:100%;height:100%;transition:transform .3s cubic-bezier(.4,0,.2,1);position:absolute;top:0;left:0;transform:translate(-100%)}.sidebar__submenu-link:hover:after{transform:translate(0)}.sidebar__submenu-link:hover{color:var(--text-primary);transform:translate(2px)}.sidebar__submenu-link:active{transform:scale(.98)}.sidebar__submenu-link--active{color:var(--color-primary-light);font-weight:var(--font-weight-medium);background:rgba(var(--color-primary-rgb), .08)}.sidebar__submenu-link--active:after{display:none}.sidebar__submenu-icon{opacity:.8;justify-content:center;align-items:center;display:flex;transform:scale(.85)}.sidebar__link-icon{width:20px;height:20px;font-size:var(--font-size-md);flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar__user{padding:var(--space-4) var(--space-4);border-top:1px solid var(--border-subtle);align-items:center;gap:var(--space-3);display:flex}.sidebar__avatar{border-radius:var(--radius-full);background:linear-gradient(135deg, var(--color-primary), var(--color-accent));color:#fff;width:36px;height:36px;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar__user-info{overflow:hidden}.sidebar__user-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sidebar__user-role{font-size:var(--font-size-xs);color:var(--text-tertiary)}.header{height:var(--header-height);background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);padding:0 var(--space-6);z-index:var(--z-header);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.header__left{align-items:center;gap:var(--space-4);display:flex}.header__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.header__breadcrumb{align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--text-tertiary);display:flex}.header__breadcrumb-sep{color:var(--text-tertiary)}.header__right{align-items:center;gap:var(--space-3);display:flex}.main-content{background:var(--bg-body);flex-direction:column;flex:1;height:100vh;display:flex;overflow:hidden}.page-content{padding:var(--space-8);flex:1;width:100%;max-width:100%;margin:0 auto;overflow-y:auto}.page-header{margin-bottom:var(--space-8);justify-content:space-between;align-items:center;display:flex}.page-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold)}.page-subtitle{font-size:var(--font-size-base);color:var(--text-secondary);margin-top:var(--space-1)}.grid-stats{gap:var(--space-6);margin-bottom:var(--space-8);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid}.grid-2{gap:var(--space-6);grid-template-columns:repeat(2,1fr);display:grid}.grid-3{gap:var(--space-6);grid-template-columns:repeat(3,1fr);display:grid}.task-checkbox{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);transition:background var(--transition-fast);cursor:pointer;display:flex}.task-checkbox:hover{background:var(--bg-glass-hover)}.task-checkbox__input{appearance:none;border:2px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;width:20px;height:20px;transition:all var(--transition-fast);flex-shrink:0;margin-top:1px;position:relative}.task-checkbox__input:checked{background:var(--color-accent);border-color:var(--color-accent)}.task-checkbox__input:checked:after{content:"✓";color:#fff;font-size:12px;font-weight:var(--font-weight-bold);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.task-checkbox__content{flex:1}.task-checkbox__title{font-size:var(--font-size-base);color:var(--text-primary);transition:all var(--transition-fast)}.task-checkbox__title--completed{color:var(--text-tertiary);text-decoration:line-through}.task-checkbox__meta{font-size:var(--font-size-xs);color:var(--text-tertiary);margin-top:var(--space-1)}.progress-bar{background:var(--bg-surface-2);border-radius:var(--radius-full);width:100%;height:8px;overflow:hidden}.progress-bar__fill{border-radius:var(--radius-full);background:linear-gradient(90deg, var(--color-primary), var(--color-accent));height:100%;transition:width 1s cubic-bezier(.4,0,.2,1)}.progress-bar--sm{height:4px}.progress-bar--lg{height:12px}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:var(--z-modal-backdrop);padding:var(--space-6);background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--bg-glass);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--border-default);box-shadow:var(--shadow-xl);width:100%;max-width:560px;max-height:85vh;z-index:var(--z-modal);border-radius:24px;overflow-y:auto}.modal__header{padding:var(--space-6) var(--space-6) var(--space-4);justify-content:space-between;align-items:center;display:flex}.modal__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.modal__body{padding:var(--space-4) var(--space-6)}.modal__footer{justify-content:flex-end;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-6) var(--space-6);display:flex}.toast{top:var(--space-6);right:var(--space-6);min-width:320px;max-width:420px;padding:var(--space-4) var(--space-5);background:var(--bg-surface-2);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:var(--z-toast);align-items:flex-start;gap:var(--space-3);display:flex;position:fixed}.toast--success{border-left:3px solid var(--color-success)}.toast--error{border-left:3px solid var(--color-danger)}.toast--warning{border-left:3px solid var(--color-warning)}.toast--info{border-left:3px solid var(--color-info)}.empty-state{padding:var(--space-16) var(--space-8);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-state__icon{margin-bottom:var(--space-4);opacity:.4;font-size:48px}.empty-state__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-2)}.empty-state__description{color:var(--text-secondary);max-width:360px;margin-bottom:var(--space-6)}.tabs{gap:var(--space-1);border-bottom:1px solid var(--border-subtle);margin-bottom:var(--space-6);display:flex}.tab{padding:var(--space-3) var(--space-5);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);font-family:var(--font-family);background:0 0;border:none;position:relative}.tab:hover{color:var(--text-primary)}.tab--active{color:var(--color-primary-light)}.tab--active:after{content:"";background:var(--color-primary);border-radius:var(--radius-full) var(--radius-full) 0 0;width:100%;height:2px;position:absolute;bottom:-1px;left:0}@media (max-width:1024px){.grid-3{grid-template-columns:repeat(2,1fr)}.page-content{padding:var(--space-6)}}@media (max-width:768px){.header__title-group{display:none}.sidebar{z-index:50;width:280px;transition:transform .4s cubic-bezier(.16,1,.3,1);position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar--open{transform:translate(0)}.main-content{margin-left:0}.grid-2,.grid-3,.grid-4,.form-grid{grid-template-columns:1fr}.grid-stats{grid-template-columns:repeat(2,1fr)}.page-content{padding:var(--space-4);overflow-x:hidden}.header{padding:0 var(--space-4)}.page-header{align-items:flex-start;gap:var(--space-4);flex-direction:column}.card{padding:var(--space-4)}.modal-content{width:95%;max-width:100%;margin:var(--space-2);padding:var(--space-4)}.tabs{gap:var(--space-2);flex-wrap:wrap}.form-actions{flex-direction:column}.form-actions button{width:100%}}@media (max-width:480px){.grid-stats{grid-template-columns:1fr}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-fade-in{animation:fadeIn var(--transition-base) ease-out}.animate-slide-up{animation:slideUp var(--transition-slow) ease-out}.animate-slide-in-right{animation:slideInRight var(--transition-slow) ease-out}.skeleton{background:linear-gradient(90deg, var(--bg-surface-2) 25%, var(--bg-surface-3) 50%, var(--bg-surface-2) 75%);border-radius:var(--radius-md);background-size:200% 100%;animation:1.5s infinite shimmer}.login-page{min-height:100vh;padding:var(--space-6);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.login-page__bg{background:radial-gradient(circle at 20% 30%, rgba(var(--color-primary-rgb), .15) 0%, transparent 40%), radial-gradient(circle at 80% 70%, rgba(var(--color-accent-rgb), .1) 0%, transparent 40%), radial-gradient(circle at 50% 50%, rgba(var(--color-primary-rgb), .05) 0%, transparent 60%);position:absolute;inset:0}.login-card{-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:1px solid var(--border-subtle);border-radius:var(--radius-2xl);width:100%;max-width:420px;padding:var(--space-10);box-shadow:var(--shadow-xl);z-index:1;background:#ffffff0a;position:relative}.login-card__logo{justify-content:center;align-items:center;gap:var(--space-3);margin-bottom:var(--space-8);display:flex}.login-card__title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);text-align:center;margin-bottom:var(--space-2)}.login-card__subtitle{text-align:center;color:var(--text-secondary);margin-bottom:var(--space-8);font-size:var(--font-size-base)}.login-form{gap:var(--space-5);flex-direction:column;display:flex}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.file-upload{border:2px dashed var(--border-default);padding:var(--space-10);text-align:center;cursor:pointer;transition:all var(--transition-base);border-radius:24px}.file-upload:hover{border-color:var(--color-primary);background:rgba(var(--color-primary-rgb), .05)}.file-upload--dragover{border-color:var(--color-primary);background:rgba(var(--color-primary-rgb), .1);transform:scale(1.02)}.file-upload__icon{margin-bottom:var(--space-4);opacity:.5;font-size:48px}.file-upload__text{font-size:var(--font-size-md);font-weight:var(--font-weight-medium);margin-bottom:var(--space-2)}.file-upload__hint{font-size:var(--font-size-sm);color:var(--text-tertiary)}[data-tooltip]{cursor:pointer;position:relative}[data-tooltip]:hover:after{content:attr(data-tooltip);background:var(--text-primary);color:var(--bg-default);white-space:nowrap;pointer-events:none;z-index:100;opacity:0;border-radius:6px;padding:6px 10px;font-size:.75rem;font-weight:600;animation:.2s forwards tooltip-fade;position:absolute;bottom:100%;left:50%;transform:translate(-50%)translateY(-8px);box-shadow:0 4px 12px #00000026}@keyframes tooltip-fade{to{opacity:1;transform:translate(-50%)translateY(-4px)}}
