:root{--bg: #FFFDF7;--bg-deep: #ECEAE3;--surface: #FFFFFF;--surface-warm: #FAF8F4;--surface-cream: #F7F4ED;--terracotta: #855744;--terracotta-50: #FBF5F3;--terracotta-100: #F2E1DB;--terracotta-200: #E2BFB3;--terracotta-500: #A36A55;--terracotta-600: #855744;--terracotta-700: #6B4537;--terracotta-800: #50342A;--terracotta-900: #3D2418;--gold: #F1B703;--gold-50: #FEF7DC;--gold-100: #FCEAA8;--gold-200: #F8D461;--gold-500: #F1B703;--gold-700: #B98A02;--gold-800: #8C6802;--ink: #1A1917;--ink-2: #5C5A54;--ink-3: #8C8A82;--ink-4: #B5B2A8;--ink-5: #D9D4C8;--border: #E8E4DC;--border-strong: #D9D4C8;--border-soft: #EFECE5;--danger: #DC2626;--success: #3FA56C;--shadow-xs: 0 1px 2px rgba(26,25,23,.04);--shadow-sm: 0 2px 6px -2px rgba(26,25,23,.06), 0 1px 2px rgba(26,25,23,.04);--shadow-card: 0 8px 24px -8px rgba(26,25,23,.08), 0 2px 6px -2px rgba(26,25,23,.04);--shadow-card-hover: 0 20px 48px -16px rgba(133,87,68,.2), 0 6px 14px -6px rgba(26,25,23,.08);--shadow-pop: 0 16px 40px -12px rgba(26,25,23,.16), 0 4px 10px -3px rgba(26,25,23,.06);--shadow-modal: 0 48px 120px -24px rgba(26,25,23,.32), 0 12px 32px -8px rgba(26,25,23,.12);--shadow-inset: inset 0 1px 0 rgba(255,255,255,.65);--r-xs: 6px;--r-sm: 10px;--r-md: 14px;--r-lg: 18px;--r-xl: 24px;--r-2xl: 32px;--r-pill: 999px;--ease: cubic-bezier(.22, 1, .36, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--d-fast: .18s;--d-base: .28s;--d-slow: .42s;--font: "Helvetica Neue", "Helvetica", "Arial", sans-serif;--mono: ui-monospace, "SF Mono", Menlo, monospace}*{box-sizing:border-box}html,body{margin:0;padding:0;font-family:var(--font);color:var(--ink);background:var(--bg)}body{font-size:14px;line-height:1.5;font-feature-settings:"kern","liga","calt";-webkit-font-smoothing:antialiased}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--ink);outline-offset:2px}:root{--success-50: #EAF6EF;--success-100: #CDE9D8;--success-700: #1F6B42;--danger-50: #FDECEC;--danger-100: #F7CFCF;--danger-700: #A61B1B}.ui-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:36px;padding:0 14px;border:1px solid transparent;border-radius:var(--r-sm);font-size:14px;font-weight:500;line-height:1;white-space:nowrap;text-decoration:none;transition:background var(--d-fast) var(--ease),border-color var(--d-fast) var(--ease),color var(--d-fast) var(--ease)}.ui-btn:disabled{cursor:not-allowed;opacity:.55}.ui-btn--sm{height:30px;padding:0 10px;font-size:13px;border-radius:var(--r-xs)}.ui-btn--primary{background:var(--ink);color:var(--surface)}.ui-btn--primary:not(:disabled):hover{background:var(--terracotta-900)}.ui-btn--secondary{background:var(--surface);color:var(--ink);border-color:var(--border-strong)}.ui-btn--secondary:not(:disabled):hover{background:var(--surface-warm)}.ui-btn--ghost{background:transparent;color:var(--ink-2)}.ui-btn--ghost:not(:disabled):hover{background:var(--surface-cream);color:var(--ink)}.ui-btn--danger{background:var(--danger);color:var(--surface)}.ui-btn--danger:not(:disabled):hover{filter:brightness(.92)}.ui-btn--block{width:100%}.ui-field{display:flex;flex-direction:column;gap:6px}.ui-field__label{font-size:13px;font-weight:600;color:var(--ink)}.ui-field__hint{font-size:12px;color:var(--ink-2)}.ui-field__error{font-size:12px;color:var(--danger)}.ui-input{height:36px;padding:0 12px;width:100%;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-sm);font-size:14px;transition:border-color var(--d-fast) var(--ease)}.ui-input::placeholder{color:var(--ink-3)}.ui-input:hover{border-color:var(--ink-4)}.ui-input:focus-visible{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px var(--gold-100)}.ui-input[aria-invalid=true]{border-color:var(--danger)}.ui-badge{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;border-radius:var(--r-pill);font-size:12px;font-weight:500;white-space:nowrap;background:var(--surface-cream);color:var(--ink-2);border:1px solid var(--border)}.ui-badge--gold{background:var(--gold-50);color:var(--gold-800);border-color:var(--gold-100)}.ui-badge--terracotta{background:var(--terracotta-50);color:var(--terracotta-700);border-color:var(--terracotta-100)}.ui-badge--success{background:var(--success-50);color:var(--success-700);border-color:var(--success-100)}.ui-badge--danger{background:var(--danger-50);color:var(--danger-700);border-color:var(--danger-100)}.ui-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-xs);padding:20px}.ui-spinner{display:inline-block;width:16px;height:16px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:ui-spin .7s linear infinite;opacity:.8}@keyframes ui-spin{to{transform:rotate(360deg)}}.ui-skeleton{display:block;border-radius:var(--r-xs);background:linear-gradient(90deg,var(--surface-cream) 0%,var(--border-soft) 50%,var(--surface-cream) 100%);background-size:200% 100%;animation:ui-shimmer 1.2s ease-in-out infinite}@keyframes ui-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.ui-spinner,.ui-skeleton{animation-duration:0s}}.ui-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:48px 24px}.ui-empty__icon{color:var(--ink-3);margin-bottom:4px}.ui-empty__title{font-size:15px;font-weight:600;color:var(--ink)}.ui-empty__text{font-size:13px;color:var(--ink-2);max-width:420px}.ui-empty__action{margin-top:8px}.ui-kbd{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:5px;background:var(--surface);color:var(--ink-2);font-family:var(--mono);font-size:11px}.ui-alert{padding:10px 12px;border-radius:var(--r-sm);font-size:13px;border:1px solid}.ui-alert--danger{background:var(--danger-50);color:var(--danger-700);border-color:var(--danger-100)}.ui-alert--info{background:var(--gold-50);color:var(--gold-800);border-color:var(--gold-100)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.stack{display:flex;flex-direction:column;gap:12px}.boot-screen{display:grid;place-items:center;min-height:100vh;color:var(--ink-2)}.shell{display:grid;grid-template-columns:248px 1fr;min-height:100vh}.shell--collapsed{grid-template-columns:64px 1fr}.shell__main{display:flex;flex-direction:column;min-width:0}.shell__content{flex:1;padding:28px 32px 48px;width:100%;max-width:1280px}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;background:var(--surface-warm);border-right:1px solid var(--border);overflow-y:auto}.sidebar__brand{display:flex;align-items:center;gap:10px;padding:18px 16px 14px}.sidebar__logo{display:inline-grid;place-items:center;flex:none;width:32px;height:32px;border-radius:var(--r-sm);background:var(--ink);color:var(--gold);font-weight:700}.sidebar__brand-text{display:flex;flex-direction:column;line-height:1.2}.sidebar__brand-text strong{font-size:14px}.sidebar__brand-text span{font-size:12px;color:var(--ink-2)}.sidebar__groups{flex:1;padding:4px 10px}.sidebar__group{margin-bottom:14px}.sidebar__group ul{list-style:none;margin:0;padding:0}.sidebar__group-label{padding:0 8px 4px;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2)}.sidebar__link{display:flex;align-items:center;gap:10px;height:34px;padding:0 10px;border-radius:var(--r-sm);color:var(--ink-2);text-decoration:none;font-size:14px}.sidebar__link:hover{background:var(--surface-cream);color:var(--ink)}.sidebar__link--active{background:var(--gold-50);color:var(--ink);font-weight:600;box-shadow:inset 3px 0 0 var(--gold)}.sidebar--collapsed .sidebar__link{justify-content:center;padding:0}.sidebar--collapsed .sidebar__brand{justify-content:center;padding-inline:0}.sidebar__toggle{display:flex;align-items:center;gap:8px;margin:8px 10px 14px;height:32px;padding:0 10px;background:none;border:0;border-radius:var(--r-sm);color:var(--ink-2);font-size:13px}.sidebar__toggle:hover{background:var(--surface-cream);color:var(--ink)}.sidebar--collapsed .sidebar__toggle{justify-content:center;padding:0}.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:16px;height:56px;padding:0 32px;background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.topbar__search{display:flex;align-items:center;gap:8px;width:min(440px,50vw);height:34px;padding:0 10px;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-sm);color:var(--ink-2);font-size:13px;text-align:left}.topbar__search:hover{border-color:var(--ink-4)}.topbar__search>span:nth-child(2){flex:1}.topbar__keys{display:inline-flex;gap:3px}.topbar__account{display:flex;align-items:center;gap:10px;min-width:0}.topbar__email{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:var(--ink-2)}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px}.page-header h1{margin:0;font-size:24px;font-weight:600;letter-spacing:-.02em}.page-header__lead{margin:4px 0 0;color:var(--ink-2)}.page-header__actions{display:flex;gap:8px}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:20px}.kpi{padding:16px 18px}.kpi__label{font-size:13px;color:var(--ink-2);margin-bottom:6px}.kpi__value{font-size:26px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.notice-card h2{margin:0 0 6px;font-size:16px}.notice-card p{margin:0 0 14px;color:var(--ink-2);max-width:760px}.upcoming{display:flex;gap:16px;align-items:flex-start}.upcoming__icon{display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:var(--r-md);background:var(--gold-50);color:var(--gold-800)}.upcoming__meta{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink-2)}.upcoming__body p{margin:10px 0 14px;max-width:640px}.login{display:grid;place-items:center;min-height:100vh;padding:24px;background:var(--bg)}.login__card{display:flex;flex-direction:column;gap:16px;width:100%;max-width:380px;padding:28px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-card)}.login__brand{display:flex;align-items:center;gap:12px;margin-bottom:4px}.login__brand h1{margin:0;font-size:18px}.login__brand p{margin:0;font-size:13px;color:var(--ink-2)}.palette__overlay{position:fixed;inset:0;z-index:40;background:#1a191752}.palette{position:fixed;z-index:41;top:12vh;left:50%;transform:translate(-50%);width:min(620px,calc(100vw - 32px));background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-modal);overflow:hidden}.palette__input-row{display:flex;align-items:center;gap:10px;padding:0 16px;border-bottom:1px solid var(--border);color:var(--ink-2)}.palette__input{flex:1;height:52px;border:0;outline:none;font-size:15px;background:transparent;color:var(--ink)}.palette__notice{padding:8px 16px;font-size:12px;color:var(--ink-2);background:var(--surface-warm)}.palette__list{list-style:none;margin:0;padding:6px;max-height:360px;overflow-y:auto}.palette__item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--r-sm);cursor:pointer}.palette__item--active{background:var(--gold-50)}.palette__item-icon{color:var(--ink-2);display:inline-flex}.palette__item-text{display:flex;flex-direction:column;flex:1;min-width:0}.palette__item-title{font-size:14px;font-weight:500}.palette__item-detail{font-size:12px;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.palette__item-kind{font-size:12px;color:var(--ink-2)}.palette__empty{padding:20px;text-align:center;color:var(--ink-2);font-size:13px}@media(max-width:1024px){.shell{grid-template-columns:64px 1fr}.shell .sidebar__brand-text,.shell .sidebar__group-label,.shell .sidebar__link span,.shell .sidebar__toggle span{display:none}.shell .sidebar__link{justify-content:center;padding:0}.shell__content{padding:20px}.topbar{padding:0 20px}.topbar__email{display:none}}
