:root{--color-bg:#eef2f5;--color-bg-elevated:#f5f7f9;--color-surface:#ffffff;--color-surface-soft:#f7f9fb;--color-surface-muted:#edf2f6;--color-surface-tint:#f8fbf9;--color-text:#121820;--color-text-soft:#3e4c59;--color-text-muted:#667482;--color-border:#d6dde5;--color-border-strong:#aebbc8;--color-accent:#17663a;--color-accent-hover:#0f4e2b;--color-accent-soft:#e7f3eb;--color-primary:var(--color-accent);--color-primary-soft:var(--color-accent-soft);--color-warning-bg:#fff8e6;--color-warning-border:#ead69a;--color-warning-text:#735c12;--color-error-bg:#fff1f1;--color-error-border:#e7b7b7;--color-error-text:#8e2f2f;--color-success-bg:#edf7ef;--color-success-border:#b9d7bf;--color-success-text:#24522e;--shadow-xs:0 1px 1px rgba(18,24,32,0.04);--shadow-sm:0 1px 2px rgba(18,24,32,0.06),0 8px 20px rgba(18,24,32,0.04);--shadow-md:0 16px 34px rgba(18,24,32,0.1);--shadow-focus:0 0 0 3px rgba(23,102,58,0.14);--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--container-width:1200px;--transition-fast:160ms ease}*{box-sizing:border-box}html{min-height:100%;font-size:16px;background:var(--color-bg);scroll-padding-top:env(safe-area-inset-top,0)}body{margin:0;min-height:100dvh;background:linear-gradient(180deg,var(--color-bg-elevated) 0,var(--color-bg) 260px),var(--color-bg);color:var(--color-text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (max-width:760px){html{font-size:14px}body{background:var(--color-bg)}input,select,textarea{font-size:16px}}@media (max-width:420px){html{font-size:13.5px}}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}img{max-width:100%;display:block}code{font-family:SFMono-Regular,ui-monospace,Cascadia Code,Source Code Pro,Menlo,Consolas,monospace;font-size:.92em;padding:.12rem .4rem;border-radius:var(--radius-md);background:var(--color-surface-muted);color:var(--color-text)}.container{width:min(100% - 32px,var(--container-width));margin:0 auto}.page-shell{padding:32px 0 48px}.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow-sm)}.panel-soft{background:var(--color-surface-soft)}.panel-tight{padding:16px}.grid{display:grid;gap:20px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex{display:flex}.flex-between{align-items:center;justify-content:space-between}.flex-between,.stack{display:flex;gap:16px}.stack{flex-direction:column}.spacer{height:16px}.badge{display:inline-flex;align-items:center;gap:8px;width:fit-content;padding:7px 12px;border-radius:var(--radius-md);background:var(--color-accent-soft);color:var(--color-accent);border:1px solid #c6ddce;font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.muted{color:var(--color-text-muted)}.subtle{color:var(--color-text-soft)}h1,h2,h3,h4,h5,h6{margin:0;color:var(--color-text);line-height:1.08;letter-spacing:0}h1{font-size:clamp(2rem,3vw,2.55rem);font-weight:750}h2{font-size:1.6rem}h2,h3{font-weight:700}h3{font-size:1.1rem}p{margin:0;line-height:1.6}label{display:block;margin-bottom:8px;font-size:.94rem;font-weight:600;color:var(--color-text-soft)}input,select,textarea{width:100%;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-md);padding:12px 14px;outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast)}input::placeholder,textarea::placeholder{color:#93a098}input:focus,select:focus,textarea:focus{border-color:var(--color-accent);box-shadow:var(--shadow-focus);background:var(--color-surface)}textarea{min-height:120px;resize:vertical}.button,button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:var(--radius-md);padding:12px 16px;font-weight:650;transition:background var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast),opacity var(--transition-fast)}.button:disabled,button:disabled{cursor:not-allowed;opacity:.55}.button-primary,button{background:var(--color-accent);color:#ffffff;box-shadow:var(--shadow-sm)}.button-primary:hover,button:hover{background:var(--color-accent-hover);box-shadow:var(--shadow-sm)}.button:not(:disabled):active,button:not(:disabled):active{transform:translateY(1px)}.button-secondary{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);box-shadow:var(--shadow-xs)}.button-secondary:hover{background:var(--color-surface-soft);border-color:var(--color-border-strong)}.button-ghost{background:transparent;color:var(--color-text-soft)}.button-ghost:hover{background:var(--color-surface-soft)}.error{border-radius:var(--radius-md);border:1px solid var(--color-error-border);background:var(--color-error-bg);color:var(--color-error-text)}.error,.success{padding:12px 14px;font-size:.95rem}.success{border-radius:var(--radius-md);border:1px solid var(--color-success-border);background:var(--color-success-bg);color:var(--color-success-text)}.divider{height:1px;background:var(--color-border);width:100%}.card-list{display:flex;flex-direction:column;gap:12px}.card-link{display:block;padding:16px;border-radius:var(--radius-md);border:1px solid var(--color-border);transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast),transform var(--transition-fast)}.card-link,.card-link:hover{background:var(--color-surface)}.card-link:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-sm)}.stat{padding:18px;border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border)}.stat-label{color:var(--color-text-muted);font-size:.9rem}.stat-value{margin-top:8px;font-size:1.65rem;font-weight:750;letter-spacing:0}@media (max-width:900px){.grid-2,.grid-3{grid-template-columns:1fr}.container{width:min(100% - 24px,var(--container-width))}.panel{padding:20px}}