:root{--font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--bg: #f3f5f9;--surface: #ffffff;--surface-2: #f7f8fb;--border: #e3e7ef;--border-strong: #cfd6e3;--text: #1b2333;--text-2: #4a5568;--text-3: #8391a7;--primary: #2f6fed;--primary-hover: #245bd0;--primary-soft: rgba(47, 111, 237, .1);--success: #16a34a;--success-soft: rgba(22, 163, 74, .12);--warning: #d97706;--warning-soft: rgba(217, 119, 6, .12);--danger: #dc2626;--danger-soft: rgba(220, 38, 38, .1);--info: #0891b2;--info-soft: rgba(8, 145, 178, .12);--sidebar-bg: #111a2e;--sidebar-bg-2: #0c1424;--sidebar-text: #a8b3c7;--sidebar-text-strong: #ffffff;--sidebar-active: rgba(47, 111, 237, .18);--shadow-sm: 0 1px 2px rgba(16, 24, 40, .06);--shadow: 0 1px 3px rgba(16, 24, 40, .08), 0 4px 12px rgba(16, 24, 40, .04);--shadow-lg: 0 20px 40px -12px rgba(16, 24, 40, .25);--r-sm: 6px;--r: 10px;--r-lg: 14px;--r-full: 999px;color-scheme:light}:root[data-theme=dark]{--bg: #0d1320;--surface: #151d2e;--surface-2: #1b2539;--border: #253149;--border-strong: #33415e;--text: #e8edf6;--text-2: #b3bfd3;--text-3: #7e8ba3;--primary: #4b83f5;--primary-hover: #6795f7;--primary-soft: rgba(75, 131, 245, .16);--success: #22c55e;--success-soft: rgba(34, 197, 94, .14);--warning: #f59e0b;--warning-soft: rgba(245, 158, 11, .14);--danger: #f05252;--danger-soft: rgba(240, 82, 82, .14);--info: #22b8d6;--info-soft: rgba(34, 184, 214, .14);--sidebar-bg: #0a101c;--sidebar-bg-2: #070c16;--shadow-sm: none;--shadow: 0 1px 2px rgba(0, 0, 0, .3);--shadow-lg: 0 24px 48px -12px rgba(0, 0, 0, .6);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,p{margin:0}a{color:var(--primary)}.num{font-variant-numeric:tabular-nums}.muted{color:var(--text-3)}.page{display:flex;flex-direction:column;gap:20px;padding:24px 28px 40px;max-width:1400px;margin:0 auto;width:100%}.page-head{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:12px}.page-head h1{font-size:21px;font-weight:700;letter-spacing:-.01em}.page-head p{margin-top:3px;color:var(--text-3);font-size:13px}.page-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 18px;border-bottom:1px solid var(--border)}.card-head h2{font-size:14.5px;font-weight:700}.card-body{padding:16px 18px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 14px;border:1px solid transparent;border-radius:var(--r-sm);background:var(--surface);color:var(--text);font:inherit;font-size:13px;font-weight:600;white-space:nowrap;text-decoration:none;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,opacity .15s ease}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{background:var(--primary);color:#fff}.btn--primary:hover:not(:disabled){background:var(--primary-hover)}.btn--outline{border-color:var(--border-strong)}.btn--outline:hover:not(:disabled){background:var(--surface-2)}.btn--success{background:var(--success);color:#fff}.btn--success:hover:not(:disabled){filter:brightness(1.07)}.btn--danger{background:var(--danger);color:#fff}.btn--danger:hover:not(:disabled){filter:brightness(1.07)}.btn--ghost{background:transparent;color:var(--text-2)}.btn--ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn--sm{height:30px;padding:0 10px;font-size:12px}.btn--block{width:100%}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text-2);cursor:pointer}.icon-btn:hover:not(:disabled){color:var(--text);border-color:var(--border-strong)}.icon-btn--danger:hover:not(:disabled){color:var(--danger);border-color:var(--danger)}.icon-btn:disabled{opacity:.5;cursor:not-allowed}.link-btn{padding:0;border:none;background:none;color:var(--primary);font:inherit;font-size:13px;font-weight:600;cursor:pointer}.link-btn:disabled{opacity:.6;cursor:default}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:12.5px;font-weight:600;color:var(--text-2)}.field .hint{font-size:11.5px;color:var(--text-3)}.input,.select,.textarea{width:100%;height:38px;padding:0 12px;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--text);font:inherit;font-size:13.5px;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.input:focus,.select:focus,.textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.input:disabled,.select:disabled,.textarea:disabled{background:var(--surface-2);color:var(--text-3)}.textarea{height:auto;min-height:80px;padding:10px 12px;resize:vertical}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid .span-2{grid-column:1/-1}.search-box{position:relative;display:flex;align-items:center}.search-box app-icon{position:absolute;left:11px;color:var(--text-3);pointer-events:none}.search-box .input{width:260px;padding-left:34px}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:13px}.table th,.table td{padding:11px 16px;text-align:left;white-space:nowrap;border-bottom:1px solid var(--border)}.table th{background:var(--surface-2);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3)}.table td{color:var(--text-2)}.table tbody tr:hover td{background:var(--surface-2)}.table tbody tr:last-child td{border-bottom:none}.table .strong{color:var(--text);font-weight:600}.table .actions{display:flex;justify-content:flex-end;gap:6px}.table .right{text-align:right}.cell-user{display:flex;flex-direction:column;line-height:1.35}.cell-user span:first-child{color:var(--text);font-weight:600}.cell-user span:last-child{font-size:12px;color:var(--text-3)}.empty{padding:40px 16px;text-align:center;color:var(--text-3);font-size:13px}.pager{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;border-top:1px solid var(--border);font-size:12.5px;color:var(--text-3)}.pager div{display:flex;gap:6px}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:var(--r-full);background:var(--surface-2);color:var(--text-2);font-size:11.5px;font-weight:600}.badge--success{background:var(--success-soft);color:var(--success)}.badge--warning{background:var(--warning-soft);color:var(--warning)}.badge--danger{background:var(--danger-soft);color:var(--danger)}.badge--info{background:var(--info-soft);color:var(--info)}.badge--primary{background:var(--primary-soft);color:var(--primary)}.tabs{display:inline-flex;gap:4px;padding:4px;border-radius:var(--r);background:var(--surface);border:1px solid var(--border)}.tabs button{height:30px;padding:0 14px;border:none;border-radius:var(--r-sm);background:transparent;color:var(--text-2);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}.tabs button.active{background:var(--primary);color:#fff}.tabs button:not(.active):hover{background:var(--surface-2)}.alert{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:var(--r-sm);font-size:13px}.alert--danger{background:var(--danger-soft);color:var(--danger)}.alert--success{background:var(--success-soft);color:var(--success)}.alert--warning{background:var(--warning-soft);color:var(--warning)}.modal-backdrop{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:20px;background:#080c168c;animation:fade-in .15s ease}.modal{display:flex;flex-direction:column;width:100%;max-width:520px;max-height:calc(100vh - 40px);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);animation:pop-in .18s ease}.modal--lg{max-width:820px}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-head h3{font-size:16px;font-weight:700}.modal-body{display:flex;flex-direction:column;gap:14px;padding:18px 20px;overflow-y:auto}.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid var(--border)}.lightbox{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;padding:24px;background:#05080fd9;cursor:zoom-out}.lightbox img{max-width:100%;max-height:100%;border-radius:var(--r);cursor:default}.thumb{width:44px;height:44px;border-radius:var(--r-sm);border:1px solid var(--border);object-fit:cover;background:var(--surface-2);cursor:zoom-in}.detail-list{display:grid;grid-template-columns:140px minmax(0,1fr);gap:8px 14px;font-size:13px}.detail-list dt{color:var(--text-3)}.detail-list dd{margin:0;color:var(--text);font-weight:500;word-break:break-word}@keyframes fade-in{0%{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:translateY(8px) scale(.98)}}@media(max-width:720px){.page{padding:16px 14px 32px}.form-grid{grid-template-columns:minmax(0,1fr)}.search-box .input{width:100%}.detail-list{grid-template-columns:minmax(0,1fr);gap:2px}.detail-list dd{margin-bottom:8px}}.formula{padding:10px 12px;border-radius:var(--r-sm);background:var(--primary-soft);color:var(--text-2);font-size:12.5px}
