@charset "UTF-8";:root{--canvas: #eef1f6;--surface: #ffffff;--surface-muted: #fafbfd;--surface-sunken: #f1f4f9;--surface-tint: #eef3ff;--navy-900: #0c1526;--navy-800: #111f38;--navy-700: #141f35;--navy-600: #1d3557;--navy-line: #1e2c48;--navy-text: #a7b6d0;--navy-muted: #6e86ae;--navy-faint: #4e627f;--nav-item: #8fa0bc;--text: #0f172a;--text-soft: #334155;--text-muted: #475569;--text-dim: #64748b;--text-faint: #94a3b8;--border: #e7ebf2;--border-soft: #eef1f6;--border-row: #f4f6fa;--border-input: #dce2ec;--border-strong: #c7d2e4;--brand: #2563eb;--brand-dark: #1d4ed8;--brand-light: #3b82f6;--green: #16a34a;--green-text: #137a3f;--green-bg: #e7f6ee;--amber: #f59e0b;--amber-text: #b45309;--amber-bg: #fef2e2;--red: #ef4444;--red-text: #c0362c;--red-bg: #fdecec;--blue-bg: #e8efff;--gray-bg: #eef1f6;--gray-text: #5b6b82;--r-sm: 8px;--r-md: 10px;--r-lg: 14px;--r-xl: 16px;--r-2xl: 20px;--r-pill: 999px;--shadow-xs: 0 1px 2px rgb(16 24 40 / 4%);--shadow-sm: 0 1px 2px rgb(0 0 0 / 8%);--shadow-md: 0 6px 18px rgb(37 99 235 / 18%);--shadow-lg: 0 10px 40px rgb(16 24 40 / 6%);--shadow-xl: 0 30px 80px rgb(0 0 0 / 40%);--shadow-brand: 0 4px 14px rgb(37 99 235 / 30%);--shadow-green: 0 4px 14px rgb(22 163 74 / 30%);--font-sans: "Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--font-display: "Sora", var(--font-sans);--grad-1: linear-gradient(135deg, #f59e0b, #ea580c);--grad-2: linear-gradient(135deg, #8b5cf6, #6d28d9);--grad-3: linear-gradient(135deg, #0ea5e9, #0369a1);--grad-4: linear-gradient(135deg, #16a34a, #047857);--grad-5: linear-gradient(135deg, #db2777, #9d174d);--grad-6: linear-gradient(135deg, #f59e0b, #b45309);--grad-7: linear-gradient(135deg, #4f46e5, #3730a3);--grad-8: linear-gradient(135deg, #0d9488, #115e59)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-sans);-webkit-font-smoothing:antialiased;color:var(--text);background:var(--canvas)}a{color:var(--brand);text-decoration:none}a:hover{color:var(--brand-dark)}input,button,select,textarea{font-family:inherit}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#cbd3e1;border-radius:20px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-track{background:transparent}@media(pointer:coarse){input,select,textarea{font-size:16px}}@keyframes shv-fade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes shv-toast{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes shv-bar{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes shv-draw{0%{stroke-dashoffset:1400}to{stroke-dashoffset:0}}.shv-enter{animation:shv-fade .35s ease}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.shv-h1{font-family:var(--font-display);font-size:clamp(21px,1.1rem + .7vw,26px);letter-spacing:-.5px;margin:0 0 5px;font-weight:700}.shv-h2{font-family:var(--font-display);font-size:clamp(20px,1rem + .5vw,24px);letter-spacing:-.4px;margin:0 0 6px;font-weight:700}.shv-sub{color:var(--text-dim);font-size:14px;margin:0}.shv-num{font-family:var(--font-display);font-weight:700;letter-spacing:-.5px;font-variant-numeric:tabular-nums}.shv-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-xs)}.shv-card-pad{padding:22px 24px}.shv-card-title{font-size:15px;font-weight:700}.shv-section-label{font-size:12px;font-weight:700;letter-spacing:.6px;color:var(--text-faint);text-transform:uppercase}.shv-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border:1px solid var(--border-input);background:var(--surface);border-radius:var(--r-md);font-size:13.5px;font-weight:600;color:var(--text-soft);cursor:pointer;transition:background .15s ease,border-color .15s ease}.shv-btn:hover:not(:disabled){background:var(--surface-sunken)}.shv-btn:disabled{opacity:.55;cursor:not-allowed}.shv-btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.shv-btn-primary{border:none;background:var(--brand);color:#fff;font-weight:700;padding:10px 20px;box-shadow:var(--shadow-brand)}.shv-btn-primary:hover:not(:disabled){background:var(--brand-dark)}.shv-btn-success{border:none;background:var(--green);color:#fff;font-weight:700;padding:10px 22px;box-shadow:var(--shadow-green)}.shv-btn-success:hover:not(:disabled){filter:brightness(.95)}.shv-btn-ghost{border:none;background:transparent;padding:7px 14px;font-size:13px;color:var(--text-dim)}.shv-btn-ghost.is-on{background:var(--surface-tint);color:var(--brand-dark);font-weight:700}.shv-icon-btn{width:38px;height:38px;flex:none;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-soft)}.shv-icon-btn:hover{background:var(--surface-sunken)}.shv-icon-btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.shv-label{display:block;font-size:13px;font-weight:600;margin-bottom:7px}.shv-label-sm{display:block;font-size:12.5px;font-weight:600;margin-bottom:6px;color:var(--text-muted)}.shv-input,.shv-textarea{width:100%;padding:11px 14px;border:1px solid var(--border-input);border-radius:var(--r-md);font-size:14px;outline:none;background:var(--surface);color:var(--text)}.shv-input:focus,.shv-textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px #2563eb1f}.shv-textarea{min-height:110px;resize:vertical;line-height:1.6}.shv-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 11px;border-radius:var(--r-pill);font-size:12px;font-weight:600;white-space:nowrap;background:var(--gray-bg);color:var(--gray-text)}.shv-pill.tone-green{background:var(--green-bg);color:var(--green-text)}.shv-pill.tone-amber{background:var(--amber-bg);color:var(--amber-text)}.shv-pill.tone-red{background:var(--red-bg);color:var(--red-text)}.shv-pill.tone-blue{background:var(--blue-bg);color:var(--brand-dark)}.shv-pay-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:7px;font-size:11.5px;font-weight:700;background:var(--border-row);white-space:nowrap}.shv-thead{display:grid;gap:12px;padding:12px 20px;background:var(--surface-muted);border-bottom:1px solid var(--border-soft);font-size:11.5px;font-weight:700;letter-spacing:.4px;color:var(--text-faint);text-transform:uppercase}.shv-row{display:grid;gap:12px;padding:13px 20px;border-bottom:1px solid var(--border-row);align-items:center;text-align:left;width:100%;background:none;border-left:0;border-right:0;border-top:0;font:inherit;color:inherit;cursor:pointer}.shv-row:hover{background:var(--surface-muted)}.shv-row:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}.shv-thumb{border-radius:var(--r-md);flex:none;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700}.shv-avatar{border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700}.shv-truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.shv-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}@media print{.shv-no-print,app-shell aside,app-shell header,.head-actions,.toast-host,app-confirm-dialog{display:none!important}:root{--canvas: #fff;--surface: #fff;--surface-sunken: #fff;--surface-muted: #fff}body{background:#fff}.shv-card{border:1px solid #d5dbe6!important;box-shadow:none!important;break-inside:avoid}a[href]:after{content:""}}@layer properties;@layer theme,base,components,utilities;@layer theme{:root,:host{--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1)}}@layer utilities{.visible{visibility:visible}.fixed{position:fixed}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.flex-wrap{flex-wrap:wrap}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}}@property --tw-rotate-x{syntax: "*"; inherits: false;}@property --tw-rotate-y{syntax: "*"; inherits: false;}@property --tw-rotate-z{syntax: "*"; inherits: false;}@property --tw-skew-x{syntax: "*"; inherits: false;}@property --tw-skew-y{syntax: "*"; inherits: false;}@property --tw-blur{syntax: "*"; inherits: false;}@property --tw-brightness{syntax: "*"; inherits: false;}@property --tw-contrast{syntax: "*"; inherits: false;}@property --tw-grayscale{syntax: "*"; inherits: false;}@property --tw-hue-rotate{syntax: "*"; inherits: false;}@property --tw-invert{syntax: "*"; inherits: false;}@property --tw-opacity{syntax: "*"; inherits: false;}@property --tw-saturate{syntax: "*"; inherits: false;}@property --tw-sepia{syntax: "*"; inherits: false;}@property --tw-drop-shadow{syntax: "*"; inherits: false;}@property --tw-drop-shadow-color{syntax: "*"; inherits: false;}@property --tw-drop-shadow-alpha{syntax: "<percentage>"; inherits: false; initial-value: 100%;}@property --tw-drop-shadow-size{syntax: "*"; inherits: false;}@property --tw-backdrop-blur{syntax: "*"; inherits: false;}@property --tw-backdrop-brightness{syntax: "*"; inherits: false;}@property --tw-backdrop-contrast{syntax: "*"; inherits: false;}@property --tw-backdrop-grayscale{syntax: "*"; inherits: false;}@property --tw-backdrop-hue-rotate{syntax: "*"; inherits: false;}@property --tw-backdrop-invert{syntax: "*"; inherits: false;}@property --tw-backdrop-opacity{syntax: "*"; inherits: false;}@property --tw-backdrop-saturate{syntax: "*"; inherits: false;}@property --tw-backdrop-sepia{syntax: "*"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x: initial;--tw-rotate-y: initial;--tw-rotate-z: initial;--tw-skew-x: initial;--tw-skew-y: initial;--tw-blur: initial;--tw-brightness: initial;--tw-contrast: initial;--tw-grayscale: initial;--tw-hue-rotate: initial;--tw-invert: initial;--tw-opacity: initial;--tw-saturate: initial;--tw-sepia: initial;--tw-drop-shadow: initial;--tw-drop-shadow-color: initial;--tw-drop-shadow-alpha: 100%;--tw-drop-shadow-size: initial;--tw-backdrop-blur: initial;--tw-backdrop-brightness: initial;--tw-backdrop-contrast: initial;--tw-backdrop-grayscale: initial;--tw-backdrop-hue-rotate: initial;--tw-backdrop-invert: initial;--tw-backdrop-opacity: initial;--tw-backdrop-saturate: initial;--tw-backdrop-sepia: initial}}}
