:root{--color-background:#0f172a;--color-surface:#1e293b;--color-surface-alt:#2a2a2a;--color-surface-hover:#334155;--color-primary:#3b82f6;--color-primary-hover:#60a5fa;--color-on-accent:#0f172a;--color-primary-text:#7cb2fb;--color-link:var(--color-primary-text);--color-link-hover:#93c5fd;--color-secondary:#f97316;--color-accent:#ef4444;--color-success:#22c55e;--color-text-main:#f8fafc;--color-text-muted:#94a3b8;--color-border:#334155;--color-info-bg:#3b82f61f;--color-primary-bg:#3b82f626;--color-warning:#f59e0b;--color-warning-bg:#f59e0b1f;--color-danger-text:#ff6b6b;--color-overlay:#000c;--color-shadow-soft:#0003;--font-family:"Inter",sans-serif;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.25rem;--font-size-xl:1.5rem;--font-size-2xl:2rem;--font-size-3xl:2.5rem;--font-size-4xl:3rem;--font-weight-regular:400;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-black:900;--line-height-tight:1.2;--line-height-normal:1.5;--spacing-xs:.25rem;--spacing-sm:.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-full:9999px;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--shadow-glow:0 0 15px #3b82f680;--header-height:56px;--content-min-height:calc(100dvh - var(--header-height));--z-dropdown:20;--z-sticky:50;--z-modal:100;--z-toast:200;--transition-fast:.15s ease;--transition-base:.2s ease}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--color-background);color:var(--color-text-main);font-family:var(--font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex-direction:column;min-height:100dvh;display:flex}button{cursor:pointer;background:0 0;border:none;font-family:inherit}a{color:inherit}input,select,textarea{font-family:inherit}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}button:focus:not(:focus-visible){outline:none}.container{max-width:720px;padding:var(--spacing-md);width:100%;margin:0 auto}.page-loading{min-height:var(--content-min-height)}@media (min-width:769px){.container{max-width:960px;padding:var(--spacing-xl)}}.page-bottom-space{padding-bottom:100px}.card{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-md);border:1px solid var(--color-border)}.card-compact{padding:var(--spacing-md)}.card-highlight{border-color:var(--color-primary);box-shadow:var(--shadow-glow)}.btn{padding:var(--spacing-sm)var(--spacing-lg);border-radius:var(--radius-md);font-weight:var(--font-weight-semibold);font-size:var(--font-size-base);min-height:44px;transition:all var(--transition-base);justify-content:center;align-items:center;display:inline-flex}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background-color:var(--color-primary);color:var(--color-on-accent);box-shadow:0 4px 14px #3b82f663}.btn-primary:hover{background-color:var(--color-primary-hover);transform:translateY(-1px);box-shadow:0 6px 20px #3b82f63b}.btn-secondary{background-color:var(--color-surface);color:var(--color-text-main);border:1px solid var(--color-border)}.btn-secondary:hover{background-color:var(--color-surface-hover)}.btn-success{background-color:var(--color-success);color:var(--color-on-accent)}.btn-success:hover{background-color:#4ade80}.btn-danger{background-color:var(--color-accent);color:var(--color-on-accent)}.btn-danger:hover{background-color:#f87171}.btn-ghost{color:var(--color-text-muted);background:0 0;border:none}.btn-ghost:hover{color:var(--color-text-main)}.btn-sm{padding:var(--spacing-xs)var(--spacing-md);font-size:var(--font-size-sm);min-height:36px}.btn-icon{padding:var(--spacing-sm);min-width:44px;min-height:44px}.input,.select,.textarea{width:100%;padding:var(--spacing-sm)var(--spacing-md);font-size:var(--font-size-base);border-radius:var(--radius-sm);border:1px solid var(--color-border);background-color:var(--color-background);min-height:44px;color:var(--color-text-main);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.input:focus,.select:focus,.textarea:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #3b82f633}.input--sm{padding:var(--spacing-xs)var(--spacing-sm);font-size:var(--font-size-sm);min-height:36px}.input--error{border-color:var(--color-accent)}.input--date{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.input--date:invalid{border-color:var(--color-accent)}.form-label{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-bottom:var(--spacing-xs);display:block}.form-row{margin-bottom:var(--spacing-md)}.form-grid-2{gap:var(--spacing-sm);grid-template-columns:1fr 1fr;display:grid}.callout{padding:var(--spacing-sm)var(--spacing-md);border-radius:var(--radius-md);border-left:3px solid var(--color-border);background-color:var(--color-surface-hover);color:var(--color-text-main);font-size:var(--font-size-sm);line-height:var(--line-height-normal)}.callout--info{background-color:var(--color-info-bg);border-left-color:var(--color-primary)}.callout--warning{background-color:var(--color-warning-bg);border-left-color:var(--color-warning)}.callout--sm{padding:6px var(--spacing-sm);font-size:var(--font-size-xs);line-height:var(--line-height-tight)}.link-inline,.callout a:not(.btn){color:var(--color-link);text-decoration:underline}.link-inline:hover,.callout a:not(.btn):hover{color:var(--color-link-hover)}.badge{border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);align-items:center;padding:2px 6px;display:inline-flex}.badge--info{background-color:var(--color-primary);color:var(--color-on-accent)}.badge--success{background-color:var(--color-success);color:var(--color-on-accent)}.badge--warning{background-color:var(--color-warning);color:var(--color-on-accent)}.filter-section{gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);flex-direction:column;display:flex}.filter-head{justify-content:space-between;align-items:center;gap:var(--spacing-sm);display:flex}.filter-label{color:var(--color-text-muted);font-size:var(--font-size-sm)}.text-center{text-align:center}.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:var(--spacing-sm)}.gap-4{gap:var(--spacing-md)}.w-full{width:100%}.mb-xs{margin-bottom:var(--spacing-xs)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.mt-xs{margin-top:var(--spacing-xs)}.mt-lg{margin-top:var(--spacing-lg)}.page-pad{padding-top:var(--spacing-lg);padding-bottom:var(--spacing-xl)}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-muted{color:var(--color-text-muted)}.text-primary{color:var(--color-primary)}.text-danger{color:var(--color-accent)}.stat-box{padding:var(--spacing-md);background-color:var(--color-background);border-radius:var(--radius-sm);text-align:center}.stat-label{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-bottom:var(--spacing-xs)}.stat-value{font-size:var(--font-size-lg);font-weight:700}.stat-value-lg{font-size:var(--font-size-xl);font-weight:700}.stat-sub{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:var(--spacing-xs)}.stat-value--primary{color:var(--color-primary)}.stat-value--success{color:var(--color-success)}.stat-value--secondary{color:var(--color-secondary)}.grid-3{gap:var(--spacing-sm);grid-template-columns:repeat(3,1fr);display:grid}@media (max-width:480px){.grid-3{grid-template-columns:repeat(2,1fr)}}.page-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);margin-bottom:var(--spacing-md)}.modal-overlay{background-color:var(--color-overlay);z-index:var(--z-modal);padding:var(--spacing-md);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-dialog{padding:var(--spacing-xl);width:100%;max-height:90vh;overflow-y:auto}.modal-dialog--sm{max-width:300px}.modal-dialog--md{max-width:500px}.modal-dialog--lg{max-width:700px}.modal-title{margin-bottom:var(--spacing-lg);font-size:var(--font-size-xl)}.dropdown{position:relative}.dropdown-menu{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:0 4px 6px var(--color-shadow-soft);z-index:var(--z-dropdown);min-width:180px;position:absolute;top:120%;right:0;overflow:hidden}.dropdown-header{padding:var(--spacing-sm);border-bottom:1px solid var(--color-border);background-color:var(--color-surface-alt)}.dropdown-item{text-align:left;width:100%;padding:var(--spacing-md);font-size:var(--font-size-sm);cursor:pointer;align-items:center;gap:var(--spacing-sm);color:var(--color-text-main);background:0 0;border:none;display:flex}.dropdown-item:hover{background-color:var(--color-surface-hover)}.dropdown-item--danger{color:var(--color-danger-text)}.avatar{cursor:pointer;background-color:var(--color-surface);border:2px solid #fff3;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;padding:0;display:flex;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.toast-container{bottom:var(--spacing-lg);gap:var(--spacing-sm);z-index:var(--z-toast);pointer-events:none;width:100%;max-width:480px;padding:0 var(--spacing-md);flex-direction:column;display:flex;position:fixed;left:50%;transform:translate(-50%)}.toast{pointer-events:auto;padding:var(--spacing-md)var(--spacing-lg);border-radius:var(--radius-md);background-color:var(--color-surface);color:var(--color-text-main);box-shadow:var(--shadow-lg);border-left:4px solid var(--color-primary);font-size:var(--font-size-sm);animation:toast-in var(--transition-base)}.toast--success{border-left-color:var(--color-success)}.toast--error{border-left-color:var(--color-accent)}.toast--info{border-left-color:var(--color-primary)}.toast--warning{border-left-color:var(--color-warning)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
