:root{--cn-navy-900:#081729;--cn-navy-800:#0b1f3a;--cn-navy-700:#12294b;--cn-charcoal:#1e293b;--cn-amber-500:#c9a227;--cn-amber-400:#dcb439;--cn-amber-100:#faf3dc;--cn-bg:#fff;--cn-bg-subtle:#f8fafc;--cn-bg-muted:#f1f5f9;--cn-text:#0f172a;--cn-text-secondary:#475569;--cn-text-muted:#64748b;--cn-text-inverse:#f8fafc;--cn-success:#15803d;--cn-success-bg:#dcfce7;--cn-warning:#b45309;--cn-warning-bg:#fef3c7;--cn-danger:#b91c1c;--cn-danger-bg:#fee2e2;--cn-info:#1d4ed8;--cn-info-bg:#dbeafe;--cn-font-sans:"Inter","Segoe UI",system-ui,-apple-system,sans-serif;--cn-font-mono:"JetBrains Mono","SF Mono",ui-monospace,monospace;--cn-radius-sm:6px;--cn-radius-md:10px;--cn-radius-lg:16px;--cn-shadow-sm:0 1px 2px rgba(15,23,42,.06),0 1px 3px rgba(15,23,42,.08);--cn-shadow-md:0 4px 12px rgba(15,23,42,.1);--cn-shadow-lg:0 12px 32px rgba(15,23,42,.14);--cn-ease:cubic-bezier(0.22,1,0.36,1);--cn-duration-fast:150ms;--cn-duration-base:250ms;--cn-duration-slow:400ms;--cn-space-1:4px;--cn-space-2:8px;--cn-space-3:12px;--cn-space-4:16px;--cn-space-6:24px;--cn-space-8:32px;--cn-container:1200px;--cn-nav-height:72px;--cn-ring:0 0 0 3px rgba(201,162,39,.45)}[data-theme=dark]{--cn-bg:#0b1220;--cn-bg-subtle:#0f172a;--cn-bg-muted:#16233b;--cn-text:#e2e8f0;--cn-text-secondary:#94a3b8;--cn-text-muted:#64748b;--cn-text-inverse:#0f172a}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;font-family:var(--cn-font-sans);color:var(--cn-text);background:var(--cn-bg);line-height:1.6;-webkit-font-smoothing:antialiased}img,svg{max-width:100%;display:block}a{color:inherit}:focus-visible{outline:none;box-shadow:var(--cn-ring);border-radius:var(--cn-radius-sm)}.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}.reveal{opacity:0;transform:translateY(24px);transition:opacity var(--cn-duration-slow) var(--cn-ease),transform var(--cn-duration-slow) var(--cn-ease)}.reveal.is-visible{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important}}.cn-card{border:1px solid #e4e7ec;border-radius:12px;padding:20px}.cn-button{border:0;border-radius:10px;padding:11px 16px;cursor:pointer}.cn-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--cn-space-2);font:inherit;font-weight:600;border:1px solid transparent;border-radius:var(--cn-radius-sm);padding:10px 20px;cursor:pointer;text-decoration:none;transition:background-color var(--cn-duration-fast) ease,color var(--cn-duration-fast) ease,transform var(--cn-duration-fast) ease,box-shadow var(--cn-duration-fast) ease}.cn-btn:active{transform:translateY(1px)}.cn-btn:disabled,.cn-btn[aria-busy=true]{opacity:.6;cursor:not-allowed}.cn-btn--primary{background:var(--cn-navy-800);color:#fff}.cn-btn--primary:hover{background:var(--cn-navy-700);box-shadow:var(--cn-shadow-md)}.cn-btn--secondary{background:transparent;color:var(--cn-navy-800);border-color:var(--cn-navy-800)}.cn-btn--secondary:hover{background:var(--cn-bg-muted)}.cn-btn--ghost{background:transparent;color:var(--cn-text-secondary)}.cn-btn--ghost:hover{background:var(--cn-bg-muted)}.cn-btn--danger{background:var(--cn-danger);color:#fff}.cn-btn--danger:hover{background:#991b1b}.cn-btn--sm{padding:6px 14px;font-size:.85rem}.cn-btn--lg{padding:14px 28px;font-size:1.05rem;border-radius:var(--cn-radius-md)}.cn-btn--full{width:100%}.cn-btn__spinner{width:14px;height:14px;margin-right:8px;border:2px solid;border-top:2px solid transparent;border-radius:50%;animation:cn-spin .7s linear infinite}@keyframes cn-spin{to{transform:rotate(1turn)}}.cn-badge{display:inline-flex;align-items:center;gap:6px;font-size:.75rem;font-weight:600;letter-spacing:.02em;padding:4px 10px;border-radius:999px;white-space:nowrap}.cn-badge--neutral{background:var(--cn-bg-muted);color:var(--cn-text-secondary)}.cn-badge--success{background:var(--cn-success-bg);color:var(--cn-success)}.cn-badge--warning{background:var(--cn-warning-bg);color:var(--cn-warning)}.cn-badge--danger{background:var(--cn-danger-bg);color:var(--cn-danger)}.cn-badge--info{background:var(--cn-info-bg);color:var(--cn-info)}.cn-badge--amber{background:var(--cn-amber-100);color:#8a6d14}.cn-card{background:var(--cn-bg);border:1px solid var(--cn-border,#e2e8f0);border-radius:var(--cn-radius-md);box-shadow:var(--cn-shadow-sm);padding:var(--cn-space-6)}.cn-card--dark{background:var(--cn-navy-800);color:var(--cn-text-inverse);border:none}.cn-card--lg{padding:var(--cn-space-8);border-radius:var(--cn-radius-lg)}.cn-stat{display:flex;flex-direction:column;gap:4px}.cn-stat__label{font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--cn-text-muted)}.cn-stat__value{font-size:1.75rem;font-weight:800;color:var(--cn-text)}.cn-stat__hint{font-size:.8rem;color:var(--cn-text-muted)}.cn-field{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--cn-space-4)}.cn-label{font-size:.85rem;font-weight:600}.cn-input,.cn-label{color:var(--cn-text)}.cn-input{width:100%;padding:10px 14px;font:inherit;background:var(--cn-bg);border:1px solid #cbd5e1;border-radius:var(--cn-radius-sm);transition:border-color var(--cn-duration-fast) ease,box-shadow var(--cn-duration-fast) ease}.cn-input:hover{border-color:#94a3b8}.cn-input:focus{outline:none;border-color:var(--cn-amber-500);box-shadow:var(--cn-ring)}.cn-input--error{border-color:var(--cn-danger)}.cn-input__hint{font-size:.78rem;color:var(--cn-text-muted)}.cn-input__error{font-size:.8rem;color:var(--cn-danger);font-weight:500}.cn-table-wrap{overflow-x:auto;border:1px solid #e2e8f0;border-radius:var(--cn-radius-md);background:var(--cn-bg)}.cn-table{width:100%;border-collapse:collapse;font-size:.9rem;min-width:560px}.cn-table th{text-align:left;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--cn-text-muted);background:var(--cn-bg-subtle,#f8fafc);padding:12px 16px;border-bottom:1px solid #e2e8f0}.cn-table td{padding:12px 16px;border-bottom:1px solid #f1f5f9}.cn-table tbody tr:nth-child(2n){background:#fafbfc}.cn-table tbody tr:hover{background:var(--cn-bg-muted)}.cn-table__cell--right{text-align:right}.cn-table__empty{padding:var(--cn-space-8);text-align:center;color:var(--cn-text-muted)}.cn-skeleton{display:block;height:14px;border-radius:4px;background:linear-gradient(90deg,#eef2f7 25%,#e2e8f0 50%,#eef2f7 75%);background-size:200% 100%;animation:cn-shimmer 1.4s ease infinite}@keyframes cn-shimmer{0%{background-position:200% 0}to{background-size:-200% 0}}.cn-spinner{display:inline-flex;color:var(--cn-navy-800);animation:cn-spin .8s linear infinite}.cn-progress{display:grid;grid-gap:var(--cn-space-3);gap:var(--cn-space-3)}.cn-progress__bar{height:6px;border-radius:999px;background:#e2e8f0;overflow:hidden}.cn-progress__fill{height:100%;background:linear-gradient(90deg,var(--cn-navy-800),var(--cn-amber-500));transition:width var(--cn-duration-slow) var(--cn-ease)}.cn-progress__fill--alert{background:linear-gradient(90deg,var(--cn-warning),var(--cn-danger))}.cn-progress__milestones{display:flex;justify-content:space-between;margin:0;padding:0;list-style:none;font-size:.75rem;color:var(--cn-text-muted)}.cn-progress__milestone.is-done{color:var(--cn-success);font-weight:600}.cn-progress__milestone.is-current{color:var(--cn-navy-800);font-weight:700}.cn-logo{-webkit-user-select:none;-moz-user-select:none;user-select:none}@media (max-width:640px){.cn-card,.cn-card--lg{padding:var(--cn-space-4)}.cn-btn{min-height:44px;padding-inline:16px}.cn-btn--sm{min-height:40px}.cn-table-wrap{max-width:100%;-webkit-overflow-scrolling:touch}.cn-table{min-width:640px}.cn-progress__milestones{gap:8px;overflow-x:auto;padding-bottom:4px}.cn-progress__milestone{min-width:max-content}}.cn-admin{min-height:100vh;display:flex;background:#f4f6fa}.cn-admin__sidebar{width:248px;flex-shrink:0;background:var(--cn-navy-900);color:#94a3b8;display:flex;flex-direction:column;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto}.cn-admin__brand{padding:20px 20px 16px;border-bottom:1px solid rgba(148,163,184,.12)}.cn-admin__nav{flex:1 1;padding:12px 10px;display:grid;grid-gap:2px;gap:2px;align-content:start}.cn-admin__navlink{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:8px;color:#94a3b8;text-decoration:none;font-size:.9rem;font-weight:500;transition:background var(--cn-duration-fast) ease,color var(--cn-duration-fast) ease}.cn-admin__navlink:hover{background:hsla(0,0%,100%,.06);color:#e2e8f0}.cn-admin__navlink.is-active{background:var(--cn-amber-500);color:#0b1f3a;font-weight:700}.cn-admin__navgroup{font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#475569;padding:18px 14px 6px}.cn-admin__topbar{height:60px;background:#fff;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;gap:16px;padding:0 24px;position:-webkit-sticky;position:sticky;top:0;z-index:40}.cn-admin__user{margin-left:auto;display:flex;align-items:center;gap:12px;font-size:.9rem}.cn-admin__main{flex:1 1;padding:28px 32px;min-width:0}.cn-admin__burger{display:none}@media (max-width:960px){.cn-admin__sidebar{position:fixed;z-index:60;transform:translateX(-100%);transition:transform var(--cn-duration-normal,.25s) ease}.cn-admin__sidebar.is-open{transform:none;box-shadow:var(--cn-shadow-lg)}.cn-admin__burger{display:inline-flex}.cn-admin__main{padding:20px}}.cn-admin__pagehead{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:16px;margin-bottom:24px}.cn-admin__pagehead h1{margin:0;font-size:1.45rem;color:var(--cn-navy-800)}.cn-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:16px;gap:16px;margin-bottom:28px}.cn-filterbar{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin-bottom:20px}.cn-filter-grow{flex:1 1 220px}.cn-toolbar-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}@media (max-width:640px){.cn-admin__topbar{height:56px;padding:0 14px;gap:10px}.cn-admin__topbar h1{max-width:42vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cn-admin__user{gap:6px;font-size:.78rem}.cn-admin__user>span{display:none}.cn-admin__main{padding:16px 12px}.cn-admin__pagehead{align-items:stretch;gap:12px;margin-bottom:18px}.cn-admin__pagehead h1{font-size:1.25rem}.cn-admin__pagehead>*,.cn-toolbar-actions>.cn-btn,.cn-toolbar-actions>a{width:100%}.cn-filterbar{align-items:stretch;gap:8px}.cn-filter-grow,.cn-filterbar>*{flex-basis:100%;width:100%}.cn-toolbar-actions{width:100%;align-items:stretch}}