:root{--brand: #0B8A5F;--brand-600: #087A53;--brand-700: #066544;--brand-50: #E7F6EF;--brand-100: #C9EBDB;--accent: #F59E0B;--accent-50: #FEF5E1;--info: #2563EB;--info-50: #E8EFFE;--danger: #DC2626;--danger-50: #FDECEC;--warn: #D97706;--warn-50: #FDF3E3;--ok: #16A34A;--ok-50: #E9F7EE;--purple: #7C3AED;--purple-50: #F1EBFE;--nav-bg: #14212B;--nav-bg-2: #1B2B37;--nav-text: #B8C4CE;--nav-text-active: #FFFFFF;--nav-active: #0B8A5F;--bg: #F3F5F8;--surface: #FFFFFF;--surface-2: #F8FAFB;--border: #E3E8EE;--border-strong: #CBD3DC;--text: #17212B;--text-2: #4A5866;--muted: #7A8794;--radius: 10px;--radius-sm: 7px;--radius-lg: 14px;--shadow-sm: 0 1px 2px rgba(16,24,40,.06);--shadow: 0 4px 14px rgba(16,24,40,.08);--shadow-lg: 0 14px 40px rgba(16,24,40,.16);--font: "Inter","Hind Siliguri",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;--mono: "JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;--h-input: 38px;--h-btn: 38px;--focus: 0 0 0 3px rgba(11,138,95,.22);--focus-danger: 0 0 0 3px rgba(220,38,38,.2);--hover: rgba(16,24,40,.04);--overlay: rgba(14,22,30,.48);--sidebar-w: 248px;--sidebar-w-mini: 68px;--topbar-h: 58px;--ease: cubic-bezier(.2,.7,.2,1);--t-fast: .12s;--t: .18s;color-scheme:light}[data-theme=dark]{--bg: #0F1720;--surface: #16212B;--surface-2: #1A2631;--border: #26333F;--border-strong: #34434F;--text: #E6EDF3;--text-2: #B3C0CC;--muted: #8B98A5;--brand-50: rgba(11,138,95,.16);--brand-100: rgba(11,138,95,.3);--accent-50: rgba(245,158,11,.14);--info-50: rgba(37,99,235,.18);--danger-50: rgba(220,38,38,.16);--warn-50: rgba(217,119,6,.16);--ok-50: rgba(22,163,74,.16);--purple-50: rgba(124,58,237,.18);--nav-bg: #0B131A;--nav-bg-2: #121D26;--shadow-sm: 0 1px 2px rgba(0,0,0,.3);--shadow: 0 4px 14px rgba(0,0,0,.35);--shadow-lg: 0 14px 40px rgba(0,0,0,.5);--hover: rgba(255,255,255,.04);--overlay: rgba(0,0,0,.6);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body{height:100%}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv11","ss01"}h1,h2,h3,h4,h5,h6{margin:0;font-weight:650;letter-spacing:-.01em;line-height:1.25}p{margin:0}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}img,svg{vertical-align:middle}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}hr{border:0;border-top:1px solid var(--border);margin:16px 0}code,kbd,pre,samp{font-family:var(--mono);font-size:.92em}pre{margin:0}::selection{background:var(--brand-100)}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}[hidden]{display:none!important}table,.num,.kpi-value,.tabular{font-variant-numeric:tabular-nums}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:10px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background-color:var(--muted)}::-webkit-scrollbar-track{background:transparent}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.page{padding:20px 24px 32px;max-width:none}.page-narrow{padding:20px 24px 32px;max-width:960px;margin:0 auto}.stack{display:flex;flex-direction:column;gap:16px}.stack-sm{display:flex;flex-direction:column;gap:8px}.stack-lg{display:flex;flex-direction:column;gap:24px}.row{display:flex;gap:12px;align-items:center}.row-sm{display:flex;gap:6px;align-items:center}.row-between{display:flex;gap:12px;align-items:center;justify-content:space-between}.row-top{align-items:flex-start}.spacer{flex:1}.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}.nowrap{white-space:nowrap}.grid{display:grid;gap:16px}.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.span-2{grid-column:span 2}.span-3{grid-column:span 3}.span-all{grid-column:1 / -1}.split{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}.split>.side{position:sticky;top:calc(var(--topbar-h) + 16px);display:flex;flex-direction:column;gap:16px}@media (max-width: 1200px){.cols-6{grid-template-columns:repeat(3,minmax(0,1fr))}.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 1100px){.split{grid-template-columns:minmax(0,1fr)}.split>.side{position:static}}@media (max-width: 900px){.cols-2,.cols-3,.cols-4,.cols-6{grid-template-columns:minmax(0,1fr)}.span-2,.span-3{grid-column:auto}.page,.page-narrow{padding:16px}}.h1{font-size:22px;font-weight:700;letter-spacing:-.02em}.h2{font-size:18px;font-weight:650;letter-spacing:-.015em}.h3{font-size:15px;font-weight:650}.kpi-value{font-size:26px;font-weight:700;letter-spacing:-.02em;line-height:1.15}.muted{color:var(--muted)}.text-2{color:var(--text-2)}.small{font-size:12.5px}.tiny{font-size:11.5px}.strong{font-weight:650}.mono{font-family:var(--mono);font-size:.92em}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.text-ok{color:var(--ok)}.text-danger{color:var(--danger)}.text-warn{color:var(--warn)}.text-brand{color:var(--brand)}.text-info{color:var(--info)}.text-right{text-align:right}.text-center{text-align:center}.bn{font-family:"Hind Siliguri",var(--font)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);min-width:0}.card-flat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:none}.card-head{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--border);min-height:54px}.card-head .spacer{flex:1}.card-title{font-size:15px;font-weight:650;letter-spacing:-.005em;display:flex;align-items:center;gap:8px}.card-sub{font-size:12.5px;color:var(--muted);font-weight:400}.card-body{padding:18px}.card-body.tight{padding:0}.card-foot{display:flex;align-items:center;gap:10px;padding:12px 18px;border-top:1px solid var(--border);background:var(--surface-2);border-radius:0 0 var(--radius) var(--radius)}.card>.table-wrap:last-child,.card>app-table:last-child .table-wrap{border-radius:0 0 var(--radius) var(--radius)}.card-link{cursor:pointer;transition:border-color var(--t-fast),box-shadow var(--t-fast)}.card-link:hover{border-color:var(--border-strong);box-shadow:var(--shadow)}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>.hint,.hint{font-size:12px;color:var(--muted);line-height:1.4}.field>.err,.err{font-size:12px;color:var(--danger)}.label{font-size:12.5px;font-weight:600;color:var(--text-2);display:flex;align-items:center;gap:6px}.req:after,.label.req:after{content:" *";color:var(--danger);font-weight:700}.input,.select,.textarea{width:100%;height:var(--h-input);padding:0 12px;background:var(--surface);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:14px;outline:none;transition:border-color var(--t-fast),box-shadow var(--t-fast),background var(--t-fast)}.input::placeholder,.textarea::placeholder{color:var(--muted);opacity:.85}.input:hover,.select:hover,.textarea:hover{border-color:var(--muted)}.input:focus,.select:focus,.textarea:focus{border-color:var(--brand);box-shadow:var(--focus)}.input:disabled,.select:disabled,.textarea:disabled,.input[readonly]{background:var(--surface-2);color:var(--text-2);cursor:not-allowed}.input[readonly]{cursor:default}.input.invalid,.select.invalid,.textarea.invalid,.ng-touched.ng-invalid.input{border-color:var(--danger)}.input.invalid:focus{box-shadow:var(--focus-danger)}.input.num,input.input[type=number]{text-align:right;font-variant-numeric:tabular-nums}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield;appearance:textfield}.input.num,input.input[type=number]{min-width:104px;padding-left:9px;padding-right:9px}.input-sm.num,input.input-sm[type=number]{min-width:92px;padding-left:8px;padding-right:8px}.input-lg.num,input.input-lg[type=number]{min-width:128px}input.input[type=date]{min-width:138px}input.input[type=time]{min-width:104px}input.input[type=datetime-local]{min-width:190px}.select{appearance:none;-webkit-appearance:none;padding-right:34px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%237A8794' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.textarea{height:auto;min-height:84px;padding:9px 12px;line-height:1.5;resize:vertical}.input-sm,.select.input-sm{height:32px;font-size:13px;padding:0 10px}.select.input-sm{padding-right:30px}.input-lg{height:46px;font-size:16px;padding:0 14px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}.form-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid>.span-all,.form-grid>.full{grid-column:1 / -1}@media (max-width: 760px){.form-grid,.form-grid.cols-3{grid-template-columns:minmax(0,1fr)}}.form-section{display:grid;grid-template-columns:240px minmax(0,1fr);gap:24px;padding:20px 0;border-top:1px solid var(--border)}.form-section:first-child{border-top:0;padding-top:0}.form-section>.form-section-info .h3{margin-bottom:4px}@media (max-width: 900px){.form-section{grid-template-columns:minmax(0,1fr);gap:12px}}.check{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:14px;color:var(--text);line-height:1.3}.check input[type=checkbox],.check input[type=radio]{width:16px;height:16px;margin:0;accent-color:var(--brand);cursor:pointer;flex:none}.check.disabled{opacity:.55;cursor:not-allowed}input[type=checkbox],input[type=radio]{accent-color:var(--brand)}.switch{position:relative;display:inline-flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:14px}.switch input{position:absolute;opacity:0;width:1px;height:1px}.switch .track{width:36px;height:20px;background:var(--border-strong);border-radius:20px;position:relative;transition:background var(--t);flex:none}.switch .track:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;background:#fff;border-radius:50%;box-shadow:0 1px 3px #00000040;transition:transform var(--t) var(--ease)}.switch input:checked+.track{background:var(--brand)}.switch input:checked+.track:after{transform:translate(16px)}.switch input:focus-visible+.track{box-shadow:var(--focus)}.switch input:disabled+.track{opacity:.5}.input-group{display:flex;align-items:stretch;width:100%}.input-group>.input,.input-group>.select{border-radius:0;flex:1;min-width:0}.input-group>.input.num,.input-group>input.input[type=number]{min-width:72px}.input-group>:first-child{border-top-left-radius:var(--radius-sm);border-bottom-left-radius:var(--radius-sm)}.input-group>:last-child{border-top-right-radius:var(--radius-sm);border-bottom-right-radius:var(--radius-sm)}.input-group>*+*{margin-left:-1px}.input-group>.input:focus,.input-group>.select:focus{position:relative;z-index:1}.input-group>.btn{border-radius:0;height:auto}.input-group>.btn:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0}.addon{display:inline-flex;align-items:center;padding:0 11px;background:var(--surface-2);border:1px solid var(--border-strong);color:var(--muted);font-size:13px;white-space:nowrap}.input-icon{position:relative;display:flex;align-items:center}.input-icon>ic{position:absolute;left:11px;color:var(--muted);pointer-events:none}.input-icon>.input{padding-left:36px}.btn{--b-bg: var(--surface);--b-fg: var(--text);--b-bd: var(--border-strong);--b-hover: var(--surface-2);display:inline-flex;align-items:center;justify-content:center;gap:7px;height:var(--h-btn);padding:0 15px;border-radius:var(--radius-sm);background:var(--b-bg);color:var(--b-fg);border:1px solid var(--b-bd);font-weight:600;font-size:13.5px;white-space:nowrap;line-height:1;text-decoration:none!important;-webkit-user-select:none;user-select:none;position:relative;transition:background var(--t-fast),border-color var(--t-fast),box-shadow var(--t-fast),transform 60ms}.btn:hover:not(:disabled){background:var(--b-hover)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:focus-visible{outline:none;box-shadow:var(--focus)}.btn:disabled,.btn.disabled{opacity:.5;cursor:not-allowed}.btn-primary{--b-bg: var(--brand);--b-fg: #fff;--b-bd: var(--brand);--b-hover: var(--brand-600);box-shadow:0 1px 2px #06654440}.btn-accent{--b-bg: var(--accent);--b-fg: #1D1405;--b-bd: var(--accent);--b-hover: #E89207;box-shadow:0 2px 10px #f59e0b59}.btn-success{--b-bg: var(--ok);--b-fg: #fff;--b-bd: var(--ok);--b-hover: #12873C}.btn-danger{--b-bg: var(--danger);--b-fg: #fff;--b-bd: var(--danger);--b-hover: #B91C1C}.btn-ghost{--b-bg: transparent;--b-fg: var(--text-2);--b-bd: transparent;--b-hover: var(--hover)}.btn-ghost:hover:not(:disabled){color:var(--text)}.btn-outline{--b-bg: transparent;--b-fg: var(--brand);--b-bd: var(--brand);--b-hover: var(--brand-50)}.btn-outline.danger,.btn-ghost.danger{--b-fg: var(--danger);--b-bd: currentColor;--b-hover: var(--danger-50)}.btn-ghost.danger{--b-bd: transparent}.btn-link{--b-bg: transparent;--b-fg: var(--brand);--b-bd: transparent;--b-hover: transparent;padding:0 4px;height:auto}.btn-link:hover:not(:disabled){text-decoration:underline!important}.btn-sm{height:30px;padding:0 11px;font-size:12.5px;gap:5px}.btn-lg{height:46px;padding:0 20px;font-size:15px}.btn-xl{height:60px;padding:0 26px;font-size:18px;border-radius:var(--radius)}.btn-icon{width:var(--h-btn);padding:0}.btn-icon.btn-sm{width:30px}.btn-icon.btn-lg{width:46px}.btn-block{display:flex;width:100%}.btn-group{display:inline-flex}.btn-group>.btn{border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.btn-group>.btn:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0}.btn-group>.btn.active{--b-bg: var(--brand-50);--b-fg: var(--brand-700);--b-bd: var(--brand);z-index:1}[data-theme=dark] .btn-group>.btn.active{--b-fg: #7FE0B7}.btn.loading{color:transparent!important;pointer-events:none}.btn.loading>*{visibility:hidden}.btn.loading:after{content:"";position:absolute;width:16px;height:16px;left:50%;top:50%;margin:-8px 0 0 -8px;border:2px solid var(--b-fg);border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite}.btn .kbd{margin-left:4px}@keyframes spin{to{transform:rotate(360deg)}}.spinner{display:inline-block;width:18px;height:18px;border:2px solid var(--border-strong);border-top-color:var(--brand);border-radius:50%;animation:spin .7s linear infinite}.table-wrap{width:100%;overflow:auto;-webkit-overflow-scrolling:touch}.table{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px}.table th{position:sticky;top:0;z-index:2;background:var(--surface-2);color:var(--text-2);font-size:12px;font-weight:600;text-align:left;white-space:nowrap;padding:10px 12px;border-bottom:1px solid var(--border)}.table td{padding:11px 12px;border-bottom:1px solid var(--border);vertical-align:middle}.table tbody tr{transition:background var(--t-fast)}.table tbody tr:hover td{background:var(--hover)}.table tbody tr.clickable{cursor:pointer}.table tbody tr:last-child td{border-bottom:0}.table tr.selected td{background:var(--brand-50)!important}.table tr.muted td{color:var(--muted)}.table tr.danger td{background:var(--danger-50)}.table td.total,.table tfoot td{font-weight:700;background:var(--surface-2);border-top:2px solid var(--border-strong);border-bottom:0}.table tfoot td{position:sticky;bottom:0}.table .num,.table th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.table .center,.table th.center{text-align:center}.table th:first-child,.table td:first-child{padding-left:18px}.table th:last-child,.table td:last-child{padding-right:18px}.table-compact td{padding:7px 10px}.table-compact th{padding:8px 10px}.table .w-check{width:40px}.table td:has(>.input),.table td:has(>.select),.table td:has(>.input-group){padding-left:4px;padding-right:4px}.table td:first-child:has(>.input),.table td:first-child:has(>.select){padding-left:12px}.table td:last-child:has(>.input),.table td:last-child:has(>.select){padding-right:12px}.table td>.input,.table td>.input-group{min-width:92px}.table td>.input:not(.num):not([type=number]):not([type=date]):not([type=checkbox]){min-width:110px}.table td>.select{min-width:118px}.table td>.input-group>.input{min-width:72px}.table:has(td>.input) th:not([style*=width]):not(.num):not(.center):not(.w-check){min-width:200px}.table:has(td>.input) td{white-space:normal}.table .group-row td{background:var(--surface-2);font-weight:650;color:var(--text-2)}.num{text-align:right;font-variant-numeric:tabular-nums}.center{text-align:center}.badge{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 9px;border-radius:22px;font-size:11.5px;font-weight:600;white-space:nowrap;line-height:1;background:var(--surface-2);color:var(--text-2);border:1px solid transparent}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.85}.badge.plain:before{display:none}.b-green{background:var(--ok-50);color:#12773a}.b-amber{background:var(--accent-50);color:#a15c04}.b-blue{background:var(--info-50);color:#1d4ed8}.b-red{background:var(--danger-50);color:#b42318}.b-gray{background:#eef1f4;color:var(--text-2)}.b-purple{background:var(--purple-50);color:#6d28d9}[data-theme=dark] .b-green{color:#6ee7a0}[data-theme=dark] .b-amber{color:#fcd34d}[data-theme=dark] .b-blue{color:#93b4fd}[data-theme=dark] .b-red{color:#fca5a5}[data-theme=dark] .b-gray{background:var(--surface-2);color:var(--text-2)}[data-theme=dark] .b-purple{color:#c4b5fd}.chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border-radius:30px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text-2);font-size:13px;font-weight:550;cursor:pointer;white-space:nowrap;transition:background var(--t-fast),border-color var(--t-fast),color var(--t-fast)}.chip:hover{border-color:var(--muted);color:var(--text)}.chip.active{background:var(--brand);border-color:var(--brand);color:#fff}.chip .count{font-size:11px;opacity:.8;font-variant-numeric:tabular-nums}.pill{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:20px;background:var(--brand);color:#fff;font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}.pill.gray{background:var(--border-strong);color:var(--text)}.pill.accent{background:var(--accent);color:#1d1405}.pill.danger{background:var(--danger)}.tag{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 7px;border-radius:5px;background:var(--surface-2);border:1px solid var(--border);font-size:12px;color:var(--text-2);font-family:var(--mono)}.divider{height:1px;background:var(--border);margin:12px 0;border:0}.divider-v{width:1px;align-self:stretch;background:var(--border)}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 18px;border-bottom:1px solid var(--border)}.toolbar .search{width:280px;max-width:100%}@media (max-width: 760px){.toolbar .search{width:100%}}.filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.kbd{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;font-family:var(--mono);font-size:11px;font-weight:500;color:var(--text-2);background:var(--surface);border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:4px;line-height:1}.avatar{display:inline-grid;place-items:center;width:32px;height:32px;flex:none;border-radius:50%;background:var(--brand-50);color:var(--brand-700);font-weight:700;font-size:12.5px;text-transform:uppercase;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.avatar.lg{width:56px;height:56px;font-size:19px}.avatar.sm{width:26px;height:26px;font-size:11px}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--muted);flex:none}.dot.ok{background:var(--ok)}.dot.danger{background:var(--danger)}.dot.warn{background:var(--accent)}.dot.info{background:var(--info)}.dot.pulse{box-shadow:0 0 0 0 currentColor;animation:pulse 2s infinite;color:#16a34a80}@keyframes pulse{0%{box-shadow:0 0 0 0 currentColor}70%{box-shadow:0 0 0 6px transparent}to{box-shadow:0 0 0 0 transparent}}.skeleton{display:block;border-radius:6px;min-height:12px;background:linear-gradient(90deg,var(--surface-2) 0%,var(--border) 50%,var(--surface-2) 100%);background-size:200% 100%;animation:shimmer 1.3s ease-in-out infinite}.skeleton.line{height:12px;margin:6px 0}.skeleton.block{height:80px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.scroll-y{overflow-y:auto;min-height:0}.sticky-bottom{position:sticky;bottom:0;z-index:20;display:flex;align-items:center;gap:10px;padding:12px 24px;margin:16px -24px -32px;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(8px);border-top:1px solid var(--border);box-shadow:0 -4px 14px #1018280d}@media (max-width: 900px){.sticky-bottom{margin:16px -16px -16px;padding:12px 16px}}.alert{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:var(--radius-sm);border:1px solid var(--brand-100);background:var(--brand-50);color:var(--text);font-size:13.5px;line-height:1.45}.alert>ic{flex:none;margin-top:1px;color:var(--brand)}.alert-info{border-color:#2563eb38;background:var(--info-50)}.alert-info>ic{color:var(--info)}.alert-warn{border-color:#d9770647;background:var(--warn-50)}.alert-warn>ic{color:var(--warn)}.alert-danger{border-color:#dc262640;background:var(--danger-50)}.alert-danger>ic{color:var(--danger)}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:8px;padding:48px 20px;color:var(--muted)}.link{color:var(--brand);cursor:pointer;font-weight:550}.link:hover{text-decoration:underline}.clickable{cursor:pointer}.list-plain{list-style:none;margin:0;padding:0}.list-plain>li{padding:10px 0;border-bottom:1px solid var(--border)}.list-plain>li:last-child{border-bottom:0}.kv{display:grid;grid-template-columns:minmax(110px,40%) 1fr;gap:8px 12px;font-size:13.5px}.kv>dt{color:var(--muted)}.kv>dd{margin:0;font-weight:550;text-align:right;overflow-wrap:anywhere}.kv.left>dd{text-align:left}.meter{height:8px;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;overflow:hidden}.meter>span{display:block;height:100%;background:var(--brand);border-radius:8px;transition:width .4s var(--ease)}.meter.warn>span{background:var(--accent)}.meter.danger>span{background:var(--danger)}.code-block{font-family:var(--mono);font-size:12px;line-height:1.55;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px;overflow:auto;white-space:pre-wrap;word-break:break-word;max-height:420px}.fade-in{animation:fadeIn var(--t) var(--ease)}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.menu{position:absolute;z-index:60;min-width:200px;padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);animation:menuIn var(--t-fast) var(--ease)}@keyframes menuIn{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}.menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border-radius:6px;border:0;background:transparent;color:var(--text);font-size:13.5px;text-align:left;cursor:pointer;text-decoration:none!important}.menu-item:hover,.menu-item.active{background:var(--hover)}.menu-item.danger{color:var(--danger)}.menu-item>ic{color:var(--muted)}.menu-item .kbd{margin-left:auto}.menu-sep{height:1px;background:var(--border);margin:6px 4px}.menu-label{padding:6px 10px 4px;font-size:11.5px;color:var(--muted);font-weight:600}.diff{width:100%;border-collapse:collapse;font-size:12.5px}.diff th,.diff td{padding:6px 10px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}.diff td{font-family:var(--mono);word-break:break-word}.diff tr.changed td.old{background:var(--danger-50);text-decoration:line-through;text-decoration-color:#dc262666}.diff tr.changed td.new{background:var(--ok-50)}.diff tr.same td{color:var(--muted)}.mt-0{margin-top:0}.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.mt-6{margin-top:24px}.mb-1{margin-bottom:4px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.p-0{padding:0!important}.w-full{width:100%}@media print{@page{margin:12mm}html,body{background:#fff!important;color:#000!important}.no-print,app-shell aside,app-shell header,.sticky-bottom,toast-host,dialog-host,.toolbar .btn{display:none!important}.page,.page-narrow{padding:0!important}.card{box-shadow:none!important;border-color:#ccc!important;break-inside:avoid}.table th{position:static;background:#f2f2f2!important;color:#000;-webkit-print-color-adjust:exact;print-color-adjust:exact}.table td,.table th{border-color:#ccc!important}.table-wrap{overflow:visible!important}a{color:#000;text-decoration:none}}.print-only{display:none}@media print{.print-only{display:block}}
