@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-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--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}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-serif:ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-xl:1.25rem;--leading-normal:1.5;--leading-loose:2;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--shadow-xs:0 1px 2px 0 #0000000d;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--ease-out:cubic-bezier(0, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.fixed{position:fixed}.relative{position:relative}.static{position:static}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.flex{display:flex}.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,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.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,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--brand-50:#eef2f2;--brand-100:#d3dcdc;--brand-200:#a7baba;--brand-300:#7b9797;--brand-400:#4a6f6f;--brand-500:#2f4f4f;--brand-600:#264242;--brand-700:#1a3232;--brand-800:#142626;--brand-900:#0d1818;--gold-50:#fbf7ee;--gold-100:#f5eddf;--gold-200:#e8d7b7;--gold-300:#d2b98a;--gold-400:#bfa06c;--gold-500:#b08d57;--gold-600:#937342;--gold-700:#73592f;--gold-800:#53401f;--gold-900:#33270f;--cinnabar-50:#fbe6e3;--cinnabar-100:#f4c8c2;--cinnabar-300:#d96860;--cinnabar-500:#c0392b;--cinnabar-700:#8b271b;--cinnabar-900:#4d160e;--paper:#f5f1e8;--paper-soft:#faf6ec;--paper-card:#fff;--paper-elev:#fcfaf3;--ink:#1a1a1a;--ink-soft:#5c5c5c;--ink-mute:#8a8a8a;--line:#e8e2d3;--line-soft:#f0ebdb;--line-strong:#c9c0ac;--success:#2e7d5b;--success-soft:#e0f1e8;--success-deep:#1f5a3f;--warning:#b7791f;--warning-soft:#fbf1d9;--warning-deep:#8a5a12;--danger:var(--cinnabar-500);--danger-soft:var(--cinnabar-50);--info:var(--brand-500);--info-soft:var(--brand-50);--font-serif:var(--font-serif-loaded,"Noto Serif SC"), "Source Han Serif SC", "Songti SC", "STSong", serif;--font-sans:var(--font-sans-loaded,"Noto Sans SC"), "PingFang SC", "Microsoft YaHei", -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif;--font-mono:"SF Mono", "Menlo", "Consolas", monospace;--text-xs:12px;--text-sm:14px;--text-base:15px;--text-md:16px;--text-lg:20px;--text-xl:26px;--text-2xl:32px;--text-3xl:48px;--weight-normal:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--leading-tight:1.25;--leading-normal:1.5;--leading-loose:1.75;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:20px;--radius-pill:9999px;--shadow-xs:0 1px 2px #1414140a;--shadow-sm:0 2px 6px #1414140f;--shadow-md:0 6px 16px #14141414;--shadow-lg:0 16px 40px #1414141f;--shadow-focus:0 0 0 3px #4a6f6f40;--ease-out:cubic-bezier(.16, 1, .3, 1);--duration-fast:.12s;--duration-base:.2s;--duration-slow:.32s;--sidebar-width:240px;--topbar-height:56px;--content-max:1240px;--content-narrow:640px;--bg:var(--paper);--card:var(--paper-card);--text:var(--ink);--text-soft:var(--ink-soft);--blue:var(--brand-500);--blue-soft:var(--brand-50);--green:var(--success);--orange:var(--warning);--red:var(--danger);--gray-soft:var(--line-soft)}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}button{font-family:inherit}img,svg{max-width:100%;display:block}h1,h2,h3,h4{font-family:var(--font-serif);font-weight:var(--weight-semibold);letter-spacing:-.01em;color:var(--brand-700);margin:0}::selection{background:var(--gold-200);color:var(--brand-700)}.container-app{max-width:var(--content-max);padding:var(--space-6) var(--space-5) var(--space-16);margin:0 auto}.container-narrow{max-width:var(--content-narrow);padding:var(--space-6) var(--space-5);margin:0 auto}.page-title{font-family:var(--font-serif);font-size:var(--text-xl);font-weight:var(--weight-semibold);color:var(--brand-700);letter-spacing:-.01em;margin:0 0 var(--space-1)}.page-sub{color:var(--ink-soft);font-size:var(--text-sm);margin:0 0 var(--space-6)}.row{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.col{gap:var(--space-3);flex-direction:column;display:flex}.spacer{flex:1}.card{background:var(--paper-card);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}.card-pad{padding:var(--space-5)}.card-pad-lg{padding:var(--space-6)}.card-elev{box-shadow:var(--shadow-sm)}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:9px var(--space-4);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;background:var(--brand-500);color:#fff;transition:transform var(--duration-fast) var(--ease-out), background var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out);white-space:nowrap;border:1px solid #0000;line-height:1.2;display:inline-flex}.btn:hover{background:var(--brand-600)}.btn:active{transform:scale(.98)}.btn:focus-visible{box-shadow:var(--shadow-focus);outline:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--paper-card);color:var(--brand-700);border-color:var(--line-strong)}.btn-secondary:hover{background:var(--line-soft)}.btn-ghost{color:var(--brand-500);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--brand-50)}.btn-danger{background:var(--danger)}.btn-danger:hover{background:var(--cinnabar-700)}.btn-link{color:var(--brand-500);border-radius:var(--radius-sm);background:0 0;padding:4px 8px}.btn-link:hover{background:var(--brand-50)}.btn-sm{font-size:var(--text-xs);padding:5px 10px}.btn-lg{font-size:var(--text-md);padding:12px 24px}.btn-block{width:100%}.field{flex-direction:column;gap:6px;display:flex}.field-label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--ink-soft)}.field-hint{font-size:var(--text-xs);color:var(--ink-mute)}.field-error{font-size:var(--text-xs);color:var(--danger)}.input,.select,.textarea{border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--paper-card);width:100%;font-family:inherit;font-size:var(--text-sm);color:var(--ink);transition:border-color var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out);outline:none;padding:10px 12px;line-height:1.4}.input:hover,.select:hover,.textarea:hover{border-color:var(--brand-300)}.input:focus,.select:focus,.textarea:focus{border-color:var(--brand-500);box-shadow:var(--shadow-focus)}.input::placeholder,.textarea::placeholder{color:var(--ink-mute)}.input:disabled,.select:disabled,.textarea:disabled{background:var(--line-soft);color:var(--ink-mute);cursor:not-allowed}.input.invalid,.select.invalid,.textarea.invalid{border-color:var(--danger)}.input.invalid:focus,.select.invalid:focus,.textarea.invalid:focus{box-shadow:0 0 0 3px #c0392b33}.select{appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3e%3cpath fill='%232F4F4F' d='M6 8L0 0h12z'/%3e%3c/svg%3e");background-position:right 12px center;background-repeat:no-repeat;padding-right:32px}.textarea{resize:vertical;min-height:88px}.badge{border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:var(--weight-medium);white-space:nowrap;border:1px solid #0000;align-items:center;gap:4px;padding:2px 10px;line-height:1.6;display:inline-flex}.badge:before{content:"";opacity:.7;background:currentColor;border-radius:50%;width:6px;height:6px}.badge-dot:before{display:none}.badge-brand{background:var(--brand-50);color:var(--brand-700);border-color:var(--brand-100)}.badge-gold{background:var(--gold-50);color:var(--gold-700);border-color:var(--gold-200)}.badge-green{background:var(--success-soft);color:var(--success-deep);border-color:#c2e4d1}.badge-orange{background:var(--warning-soft);color:var(--warning-deep);border-color:#f0daa0}.badge-red{background:var(--danger-soft);color:var(--cinnabar-700);border-color:#f0b5ae}.badge-gray{background:var(--line-soft);color:var(--ink-soft);border-color:var(--line)}.badge-blue{background:var(--brand-50);color:var(--brand-500);border-color:var(--brand-100)}.badge-pending{background:var(--warning-soft);color:var(--warning-deep);border-color:#f0daa0}.badge-approved{background:var(--success-soft);color:var(--success-deep);border-color:#c2e4d1}.badge-rejected{background:var(--danger-soft);color:var(--cinnabar-700);border-color:#f0b5ae}.table-wrap{background:var(--paper-card);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}.table-scroll{overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.table thead th{background:var(--paper-soft);color:var(--ink-soft);font-weight:var(--weight-semibold);text-align:left;font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;border-bottom:1px solid var(--line);z-index:1;padding:12px 16px;position:sticky;top:0}.table tbody td{border-bottom:1px solid var(--line-soft);color:var(--ink);vertical-align:middle;padding:14px 16px}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover{background:var(--paper-soft)}.table .num{font-variant-numeric:tabular-nums;font-family:var(--font-mono)}.table .actions{text-align:right;white-space:nowrap}.toast-root{z-index:100;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:20px;right:20px}.toast{pointer-events:auto;border-radius:var(--radius-md);background:var(--paper-card);border:1px solid var(--line);border-left:3px solid var(--brand-500);min-width:240px;max-width:360px;box-shadow:var(--shadow-md);font-size:var(--text-sm);animation:toast-in var(--duration-base) var(--ease-out);align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.toast-success{border-left-color:var(--success)}.toast-error{border-left-color:var(--danger)}.toast-warning{border-left-color:var(--warning)}.toast-title{font-weight:var(--weight-semibold);color:var(--ink);margin-bottom:2px}.toast-body{color:var(--ink-soft);font-size:var(--text-xs)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.empty{padding:var(--space-12) var(--space-6);text-align:center;color:var(--ink-soft);flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-icon{width:80px;height:80px;margin-bottom:var(--space-4);opacity:.6}.empty-title{font-family:var(--font-serif);font-size:var(--text-md);color:var(--ink);margin-bottom:6px}.empty-desc{font-size:var(--text-sm);color:var(--ink-soft);max-width:320px;line-height:var(--leading-loose)}.empty-action{margin-top:var(--space-4)}@keyframes skeleton-pulse{0%,to{opacity:.6}50%{opacity:1}}.skeleton{background:linear-gradient(90deg, var(--line-soft) 0%, var(--line) 50%, var(--line-soft) 100%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.4s ease-in-out infinite skeleton-pulse}.skeleton-text{height:12px;margin:6px 0}.skeleton-block{border-radius:var(--radius-md);height:80px}:focus-visible{outline:2px solid var(--brand-500);outline-offset:2px;border-radius:4px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--brand-300)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.app-shell{background:var(--paper);min-height:100vh;display:flex}.app-main{min-width:0;margin-left:var(--sidebar-width);flex-direction:column;flex:1;display:flex}.app-content{padding:var(--space-6) var(--space-5) var(--space-12);flex:1;max-width:100%}.sidebar{width:var(--sidebar-width);background:var(--paper-card);border-right:1px solid var(--line);z-index:50;transition:transform var(--duration-base) var(--ease-out);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-brand{border-bottom:1px solid var(--line-soft);align-items:center;gap:12px;padding:20px 20px 18px;display:flex}.sidebar-brand-mark{background:var(--brand-500);color:#fff;border-radius:8px;flex-shrink:0;place-items:center;width:36px;height:36px;display:grid}.sidebar-brand-text{flex:1;min-width:0}.sidebar-brand-name{font-family:var(--font-serif);color:var(--brand-700);letter-spacing:.04em;font-size:18px;font-weight:600}.sidebar-brand-sub{color:var(--ink-mute);letter-spacing:.06em;margin-top:2px;font-size:11px}.sidebar-close{display:none}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:16px 12px;display:flex;overflow-y:auto}.sidebar-item{color:var(--ink-soft);transition:background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);border-radius:8px;align-items:center;gap:12px;padding:9px 14px 9px 17px;font-size:14px;font-weight:500;display:flex;position:relative}.sidebar-item:hover{background:var(--brand-50);color:var(--brand-700)}.sidebar-item-bar{width:3px;transition:background var(--duration-fast) var(--ease-out);background:0 0;border-radius:0 2px 2px 0;position:absolute;top:8px;bottom:8px;left:0}.sidebar-item.is-active{color:var(--brand-700);background:var(--brand-50);font-weight:600}.sidebar-item.is-active .sidebar-item-bar{background:var(--brand-500)}.sidebar-item-icon{opacity:.85;flex-shrink:0;place-items:center;display:grid}.sidebar-item.is-active .sidebar-item-icon{color:var(--brand-500);opacity:1}.sidebar-item-label{flex:1}.sidebar-foot{border-top:1px solid var(--line-soft);flex-direction:column;gap:10px;padding:16px;display:flex}.sidebar-user{align-items:center;gap:10px;padding:4px;display:flex}.sidebar-avatar{background:var(--gold-100);width:36px;height:36px;color:var(--gold-700);font-family:var(--font-serif);border:1px solid var(--gold-200);border-radius:50%;flex-shrink:0;place-items:center;font-size:16px;font-weight:600;display:grid}.sidebar-user-text{flex:1;min-width:0}.sidebar-user-name{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.sidebar-user-role{color:var(--ink-mute);margin-top:2px;font-size:12px}.topbar{height:var(--topbar-height);padding:0 var(--space-5);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line-soft);z-index:20;background:#ffffffd9;align-items:center;gap:12px;display:flex;position:sticky;top:0}.topbar-menu{padding:6px;display:none}.topbar-crumbs{color:var(--ink-mute);flex-shrink:0;align-items:center;gap:6px;font-size:13px;display:flex}.topbar-crumb{align-items:center;gap:6px;display:inline-flex}.topbar-crumb-sep{color:var(--line-strong)}.topbar-crumb .is-current{color:var(--brand-700);font-size:15px;font-weight:600;font-family:var(--font-serif);letter-spacing:-.01em}.topbar-search{background:var(--paper-soft);width:240px;height:36px;color:var(--ink-mute);transition:background var(--duration-fast) var(--ease-out), box-shadow var(--duration-base) var(--ease-out);border-radius:8px;align-items:center;gap:6px;padding:0 10px;display:flex}.topbar-search:focus-within{background:var(--paper-card);box-shadow:var(--shadow-focus)}.topbar-search-input{color:var(--ink);background:0 0;border:none;outline:none;flex:1;font-size:13px}.topbar-search-input::placeholder{color:var(--ink-mute)}.topbar-bell{color:var(--ink-soft);padding:6px;position:relative}.topbar-bell:hover{color:var(--brand-500)}.sidebar-backdrop{z-index:40;animation:fade-in .2s var(--ease-out);background:#14141466;display:none;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media (max-width:1023px){.app-main{margin-left:0}.sidebar{box-shadow:var(--shadow-lg);transform:translate(-100%)}.sidebar.is-open{transform:translate(0)}.sidebar-close{display:inline-flex}.sidebar-backdrop{display:block}.topbar-menu{display:inline-flex}.topbar-crumbs{display:none}.topbar-search{width:180px}}@media (max-width:640px){.topbar-search{display:none}.app-content{padding:var(--space-4)}}.auth-shell{background:var(--paper);min-height:100vh;display:flex}.auth-brand{color:#f5f1e8;background:var(--brand-700);flex-direction:column;flex:0 0 50%;justify-content:space-between;padding:48px 56px;display:flex;position:relative;overflow:hidden}.auth-brand-bg{background:radial-gradient(120% 80% at 90% 0%, #b08d572e 0%, transparent 60%), radial-gradient(80% 60% at 0% 100%, #c0392b1a 0%, transparent 60%), var(--brand-700);position:absolute;inset:0}.auth-brand-inner{z-index:1;flex-direction:column;gap:16px;max-width:480px;display:flex;position:relative}.auth-seal{background:var(--cinnabar-500);color:#fff;border-radius:10px;place-items:center;width:56px;height:56px;margin-bottom:8px;display:grid;box-shadow:0 8px 20px #c0392b4d}.auth-brand-title{font-family:var(--font-serif);color:#f5f1e8;letter-spacing:.08em;margin:0;font-size:64px;font-weight:700;line-height:1}.auth-brand-sub{font-family:var(--font-serif);color:var(--gold-300);letter-spacing:.16em;margin:0;font-size:18px}.auth-brand-desc{color:#f5f1e8c7;margin:16px 0 0;font-size:15px;line-height:1.8}.auth-brand-meta{color:#f5f1e899;letter-spacing:.08em;border-top:1px solid #f5f1e826;margin-top:32px;padding-top:20px;font-size:13px}.auth-brand-foot{z-index:1;color:#f5f1e880;letter-spacing:.06em;font-size:12px;position:relative}.auth-form-wrap{flex:1;justify-content:center;align-items:center;padding:32px 24px;display:flex;overflow-y:auto}.auth-form{width:100%;max-width:380px}.auth-form-wide{max-width:480px}.auth-form-head{margin-bottom:28px}.auth-form-title{font-family:var(--font-serif);color:var(--brand-700);letter-spacing:-.01em;margin:0 0 6px;font-size:28px;font-weight:600}.auth-form-sub{color:var(--ink-soft);margin:0;font-size:14px}.auth-form-grid{grid-template-columns:1fr 1fr;gap:14px 16px;display:grid}.req{color:var(--danger);margin-left:2px}.auth-link{color:var(--brand-500);margin-left:4px;font-weight:500}.auth-link:hover{text-decoration:underline}.auth-form-foot{text-align:center;color:var(--ink-soft);margin-top:24px;font-size:13px}@media (max-width:900px){.auth-shell{flex-direction:column}.auth-brand{flex:none;min-height:240px;padding:32px 24px}.auth-brand-title{font-size:44px}.auth-brand-desc{display:none}.auth-brand-meta{margin-top:16px;padding-top:12px}.auth-form-grid{grid-template-columns:1fr}}.status-card{align-items:center;gap:16px;max-width:640px;display:flex}.status-card-icon{border-radius:12px;flex-shrink:0;place-items:center;width:48px;height:48px;display:grid}.status-card[data-status=APPROVED] .status-card-icon{background:var(--success-soft);color:var(--success-deep)}.status-card[data-status=REJECTED] .status-card-icon{background:var(--danger-soft);color:var(--cinnabar-700)}.status-card[data-status=PENDING] .status-card-icon{background:var(--warning-soft);color:var(--warning-deep)}.status-card-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.status-card-tip{color:var(--ink-soft);font-size:13px}.profile-list{margin:0;padding:0}.profile-row{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;padding:12px 0;display:flex}.profile-row:last-child{border-bottom:none}.profile-row-label{color:var(--ink-soft);margin:0;font-size:13px}.profile-row-value{color:var(--ink);font-variant-numeric:tabular-nums;margin:0;font-size:14px;font-weight:500}.auth-toast{background:var(--paper-soft);border-left:3px solid;border-radius:8px;padding:10px 12px;font-size:13px}.auth-toast-success{color:var(--success-deep);background:var(--success-soft);border-left-color:var(--success)}.auth-toast-error{color:var(--cinnabar-700);background:var(--danger-soft);border-left-color:var(--danger)}.notice-card{background:var(--paper-soft);border-style:dashed;align-items:center;gap:14px;max-width:640px;margin-bottom:20px;display:flex}.notice-icon{width:40px;height:40px;color:var(--ink-soft);background:var(--paper-card);border:1px solid var(--line);border-radius:10px;flex-shrink:0;place-items:center;display:grid}.notice-title{color:var(--ink);font-size:14px;font-weight:500}.notice-desc{color:var(--ink-soft);margin-top:2px;font-size:13px}.form-section-title{font-family:var(--font-serif);color:var(--brand-700);letter-spacing:-.01em;align-items:center;gap:6px;margin:0 0 12px;font-size:16px;font-weight:600;display:flex}.booking-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.booking-row-main{flex:1;min-width:0}.booking-row-title{color:var(--ink);margin-bottom:4px;font-size:14px;font-weight:500}.booking-row-meta{color:var(--ink-mute);font-size:12px}.course-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.course-card{transition:box-shadow var(--duration-base) var(--ease-out), transform var(--duration-base) var(--ease-out);flex-direction:column;gap:14px;display:flex}.course-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.course-card-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.course-card-title{font-family:var(--font-serif);color:var(--brand-700);margin:0;font-size:18px;font-weight:600;line-height:1.4}.course-card-meta{flex-direction:column;gap:6px;margin:0;padding:0;font-size:13px;display:flex}.course-card-meta>div{gap:8px;display:flex}.course-card-meta dt{color:var(--ink-mute);align-items:center;gap:4px;min-width:36px;margin:0;display:inline-flex}.course-card-meta dd{color:var(--ink);margin:0}.course-capacity{flex-direction:column;gap:6px;display:flex}.course-capacity-bar{background:var(--line-soft);border-radius:3px;height:6px;overflow:hidden}.course-capacity-fill{background:linear-gradient(90deg, var(--brand-500), var(--gold-500));height:100%;transition:width var(--duration-slow) var(--ease-out);border-radius:3px}.course-capacity-text{color:var(--ink-mute);font-variant-numeric:tabular-nums;gap:6px;font-size:12px;display:flex}.course-card-tip{color:var(--ink-mute);text-align:center;background:var(--paper-soft);border-radius:6px;padding:8px;font-size:12px}.page-head{margin-bottom:var(--space-6);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.page-head .page-title{margin:0 0 4px}.page-head .page-sub{margin:0}.digest-card{background:linear-gradient(135deg, var(--paper-card) 0%, var(--gold-50) 100%);border-color:var(--gold-200)}.digest-card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:14px;display:flex}.digest-card-meta{align-items:center;gap:10px;display:flex}.digest-card-time{color:var(--ink-mute);font-variant-numeric:tabular-nums;font-size:12px}.digest-content{color:var(--ink);white-space:pre-wrap;word-break:break-word;background:var(--paper-card);border:1px solid var(--line-soft);border-radius:8px;margin:0;padding:14px 16px;font-family:inherit;font-size:14px;line-height:1.85}.followup-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.followup-row-main{flex:1;min-width:0}.followup-row-title{color:var(--ink);margin-bottom:4px;font-size:14px;font-weight:500}.followup-row-meta{color:var(--ink-mute);font-size:12px}.filter-bar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.filter-pill{border-radius:var(--radius-pill);border:1px solid var(--line);background:var(--paper-card);color:var(--ink-soft);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);padding:6px 14px;font-size:13px}.filter-pill:hover{color:var(--brand-700);border-color:var(--brand-200)}.filter-pill.is-active{background:var(--brand-500);color:#fff;border-color:var(--brand-500)}.filter-count{color:var(--ink-mute);font-variant-numeric:tabular-nums;font-size:12px}.review-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;display:grid}.review-card{flex-direction:column;gap:14px;display:flex}.review-card-head{align-items:center;gap:12px;display:flex}.review-card-avatar{background:var(--brand-50);width:40px;height:40px;color:var(--brand-700);font-family:var(--font-serif);border:1px solid var(--brand-100);border-radius:50%;flex-shrink:0;place-items:center;font-size:17px;font-weight:600;display:grid}.review-card-name{color:var(--ink);font-size:15px;font-weight:600}.review-card-phone{color:var(--ink-mute);font-variant-numeric:tabular-nums;font-size:12px}.review-card-info{border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);grid-template-columns:1fr 1fr;gap:8px 16px;margin:0;padding:12px 0;font-size:13px;display:grid}.review-card-info>div{flex-direction:column;gap:2px;display:flex}.review-card-info dt{color:var(--ink-mute);margin:0;font-size:11px}.review-card-info dd{color:var(--ink);margin:0}.form-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px 16px;display:grid}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:20px;display:grid}.stat-card{background:var(--paper-card);border:1px solid var(--line);border-radius:var(--radius-lg);padding:18px 20px;position:relative;overflow:hidden}.stat-card:before{content:"";background:var(--brand-500);width:3px;position:absolute;top:0;bottom:0;left:0}.stat-card.stat-warning:before{background:var(--warning)}.stat-card.stat-success:before{background:var(--success)}.stat-card.stat-info:before{background:var(--info)}.stat-card.stat-muted:before{background:var(--ink-mute)}.stat-value{font-family:var(--font-serif);color:var(--brand-700);font-variant-numeric:tabular-nums;font-size:32px;font-weight:600;line-height:1}.stat-label{color:var(--ink-soft);letter-spacing:.02em;margin-top:6px;font-size:13px}.stats-charts{grid-template-columns:1fr 1fr;gap:16px;display:grid}.chart-title{font-family:var(--font-serif);color:var(--brand-700);letter-spacing:-.01em;margin:0 0 16px;font-size:16px;font-weight:600}.bar-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.bar-item{grid-template-columns:100px 1fr 48px;align-items:center;gap:10px;font-size:13px;display:grid}.bar-label{color:var(--ink-soft)}.bar-track{background:var(--line-soft);border-radius:4px;height:8px;overflow:hidden}.bar-fill{background:var(--brand-500);height:100%;transition:width var(--duration-slow) var(--ease-out);border-radius:4px}.bar-fill-gold{background:linear-gradient(90deg, var(--brand-500), var(--gold-500))}.bar-value{text-align:right;color:var(--ink);font-variant-numeric:tabular-nums;font-weight:600}@media (max-width:900px){.stats-charts{grid-template-columns:1fr}.bar-item{grid-template-columns:80px 1fr 40px}}@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-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@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}
