*{box-sizing:border-box}:root{color:#000;background:#fff;min-height:100%;font-family:Noto Sans Mono}body{min-height:100vh;margin:0}#root{min-height:100vh}button,input,select,textarea{font:inherit}b,strong,h1,h2,h3,h4,h5,h6,th{font-weight:400}button{cursor:pointer}button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;opacity:.45}code{overflow-wrap:anywhere}.shell{max-width:1400px;margin:0 auto;padding:16px}.site-header{justify-content:space-between;align-items:center;gap:16px;padding:10px 0 8px;display:flex}.site-title{color:#000;letter-spacing:0;background:0 0;border:0;padding:0;font-size:14px;text-decoration:none}.site-title:hover{color:#555}.site-nav{color:#999;white-space:nowrap;align-items:center;gap:4px;font-size:13px;line-height:1;display:flex}.nav-link{color:#999;background:0 0;border:0;padding:0;text-decoration:none}.nav-link:hover{color:#333}.nav-link.active{color:#000}.nav-sep{color:#ccc}.theme-icon-button{color:#999;background:0 0;border:0;justify-content:center;align-items:center;width:14px;height:14px;padding:0;display:inline-flex}.theme-icon-button:hover{color:#333}.theme-icon-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;width:13px;height:13px;display:block}.header-rule{border:0;border-top:1px solid #eee;margin:0 0 10px}.login-shell{color:#dedede;background:#1a1a1a;justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}.login-screen{width:min(426px,100vw - 32px);margin-top:-18px}.login-form{flex-direction:column;gap:14px;margin:0;display:flex}.login-form label{color:#dedede;font-size:14px;line-height:1.2;display:block}.login-form label span{margin-bottom:5px;display:block}.login-form input{color:#000;background:#fff;border:1px solid #d9d9d9;width:100%;height:32px;padding:5px 8px;display:block}.login-form button,.btn,.jobs-strip button{color:#000;touch-action:manipulation;white-space:nowrap;background:#fff;border:1px solid #ccc;min-height:28px;padding:5px 10px}.login-form button{align-self:flex-start;min-width:108px;margin-top:18px}.login-form button:hover:not(:disabled),.btn:hover,.jobs-strip button:hover:not(:disabled){background:#f5f5f5}.login-message{color:#a5a5a5;margin:16px 0 0;font-size:12px}.breadcrumb{color:#999;flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:10px;font-size:13px;line-height:1.8;display:flex}.breadcrumb button{color:#333;background:0 0;border:0;padding:0}.breadcrumb button:hover{text-decoration:underline}.breadcrumb-separator{color:#999}.search-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.search-box{color:#000;background:#fff;border:1px solid #ccc;flex:0 300px;width:300px;max-width:100%;padding:5px 10px;font-size:13px}.search-box:focus{border-color:#999;outline:0}.toolbar{flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:6px;display:flex}.sort-label{color:#999;white-space:nowrap;flex-shrink:0;margin-right:2px;font-size:12px}.sort-btn{min-width:78px;padding:3px 9px;font-size:12px}.sort-btn.active{color:#fff;background:#000;border-color:#000}.toolbar-sep{flex:0 0 42px;max-width:42px}.refresh-btn{margin-left:auto}.status-row{color:#999;flex-wrap:wrap;align-items:center;gap:6px;min-height:18px;margin-bottom:8px;font-size:12px;display:flex}.inline-link{color:#333;background:0 0;border:0;border-bottom:1px solid #ccc;padding:0}.inline-link:hover{color:#000;border-bottom-color:#555}.status-message{color:#bbb;margin-left:auto}.browser{min-height:280px}table{border-collapse:collapse;width:100%}tr{border-bottom:1px solid #f0f0f0}tbody tr:hover{background:#fafafa}th{color:#999;text-align:left;-webkit-user-select:none;user-select:none;white-space:nowrap;border-bottom:1px solid #eee;padding:6px 8px;font-size:12px}td{vertical-align:middle;padding:10px 8px;font-size:13px}.col-check{text-align:center;width:34px}.col-icon{width:40px}.col-name button{color:#000;overflow-wrap:anywhere;text-align:left;background:0 0;border:0;max-width:100%;padding:0}.col-name button:hover{text-decoration:underline}.col-size{color:#999;text-align:right;white-space:nowrap;width:110px;padding-left:8px;font-size:12px}.col-date{color:#999;white-space:nowrap;width:160px;padding-left:8px;font-size:12px}.col-actions{color:#999;text-align:right;width:40px}.folder-icon{vertical-align:middle;background:#000;width:19px;height:14px;display:inline-block;position:relative}.folder-icon:before{content:"";background:#000;width:10px;height:5px;position:absolute;top:-4px;left:0}.file-icon{color:#000;letter-spacing:0;vertical-align:middle;border:2px solid #000;justify-content:center;align-items:center;width:34px;height:28px;font-size:9px;line-height:1;display:inline-flex}.empty{color:#999;padding:20px 8px;font-size:13px}.error-state{color:#c00}.media-panel{border:1px solid #eee;margin-top:14px;padding:10px}.media-panel-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.media-panel h2{overflow-wrap:anywhere;margin:0;font-size:12px}.media-panel a{color:#333;border-bottom:1px solid #ccc;flex-shrink:0;text-decoration:none}.media-panel img,.media-panel video{object-fit:contain;background:#000;max-width:100%;max-height:60vh;display:block}.media-panel code{color:#777;margin-top:8px;font-size:12px;display:block}.admin-panel{border:1px solid #eee;margin-top:14px;padding:10px}.admin-panel-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;display:flex}.admin-panel h2{margin:0 0 4px;font-size:12px}.admin-panel p{color:#999;overflow-wrap:anywhere;margin:0;font-size:12px}.admin-panel-error{color:#c00;margin-bottom:8px}.access-table td strong,.access-table td span{display:block}.access-table td span{color:#999;margin-top:3px;font-size:12px}.access-actions{text-align:right;white-space:nowrap}.access-actions span{color:#999;font-size:12px;display:inline}.admin-tabs{flex-wrap:wrap;align-items:center;gap:4px;margin:12px 0;display:flex}.admin-tab{color:#333;border:1px solid #ccc;min-height:28px;padding:5px 10px;font-size:12px;text-decoration:none}.admin-tab:hover{background:#f5f5f5}.admin-tab.active{color:#fff;background:#000;border-color:#000}.admin-layout{grid-template-columns:minmax(0,1fr) minmax(300px,360px);align-items:start;gap:18px;display:grid}.admin-summary{border-top:1px solid #eee;border-bottom:1px solid #eee;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:0 0 14px;display:grid}.admin-summary div{border-right:1px solid #eee;min-width:0;padding:9px 10px}.admin-summary div:last-child{border-right:0}.admin-summary strong,.admin-summary span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.admin-summary strong{font-size:13px}.admin-summary span{color:#999;margin-top:3px;font-size:12px}.admin-dashboard{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:18px;display:grid}.admin-main,.admin-workspace,.admin-side{min-width:0}.admin-side .admin-panel:first-child{margin-top:0}.jobs-table td{font-size:12px}.maintenance-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.jobs-strip{color:#aaa;border-top:1px solid #eee;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-top:28px;padding:10px 0;font-size:12px;display:flex}.jobs-strip button{color:#777;min-height:24px;padding:3px 8px}.admin-console{--admin-page:#f3f3f3;--admin-shell:#e7e7e7;--admin-panel:#d9d9d9;--admin-panel-soft:#e1e1e1;--admin-line:#6f6f6f;--admin-frame-line:#eee;--admin-line-soft:#b9b9b9;--admin-text:#1c1c1c;--admin-muted:#666;--admin-heading:#111;--admin-control:#efefef;--admin-control-hover:#f7f7f7;--admin-good:#2f6d3d;--admin-warn:#8b641a;--admin-bad:#9b3434;--admin-map-grid:#00000014;--admin-dot-bg:#e8e8e8;color:var(--admin-text);background:0 0;border:0;grid-template-columns:170px minmax(0,1fr);min-height:calc(100vh - 96px);margin-top:0;display:grid}.admin-console[data-theme=dark]{--admin-page:#111;--admin-shell:#1a1a1a;--admin-panel:#242424;--admin-panel-soft:#2b2b2b;--admin-line:#858585;--admin-frame-line:#3a3a3a;--admin-line-soft:#4c4c4c;--admin-text:#dedede;--admin-muted:#a5a5a5;--admin-heading:#f2f2f2;--admin-control:#202020;--admin-control-hover:#2e2e2e;--admin-good:#8fbc8f;--admin-warn:#d0ac63;--admin-bad:#d88989;--admin-map-grid:#ffffff14;--admin-dot-bg:#181818}:root:has(.admin-console[data-theme=dark]){background:#1a1a1a}body:has(.admin-console[data-theme=dark]){background:#1a1a1a}#root:has(.admin-console[data-theme=dark]){background:#1a1a1a}.shell:has(.admin-console[data-theme=dark]) .site-title{color:#f2f2f2}.shell:has(.admin-console[data-theme=dark]) .nav-link.active{color:#f2f2f2}.shell:has(.admin-console[data-theme=dark]) .theme-icon-button{color:#bcbcbc}.shell:has(.admin-console[data-theme=dark]) .theme-icon-button:hover{color:#f2f2f2}.shell:has(.admin-console[data-theme=dark]) .header-rule{border-top-color:#3a3a3a}.shell:has(.admin-console) .header-rule{margin-bottom:0}.admin-console-sidebar{border-right:1px solid var(--admin-frame-line);padding:18px 22px 18px 0}.admin-console-nav{color:var(--admin-text);text-align:right;background:0 0;border:0;width:100%;padding:7px 2px 7px 8px;display:block}.admin-console-nav:hover,.admin-console-nav.active{color:var(--admin-heading);text-decoration:underline}.admin-console-workspace{min-width:0;padding:18px 0 28px 30px}.admin-console-title{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px;display:flex}.admin-console-title h1{color:var(--admin-heading);margin:0 0 4px;font-size:15px}.admin-console-title p,.admin-panel-note{color:var(--admin-muted);margin:0;font-size:12px}.admin-console-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.admin-console .btn{background:var(--admin-control);border-color:var(--admin-line-soft);color:var(--admin-text)}.admin-console .btn:hover:not(:disabled){background:var(--admin-control-hover)}.admin-console-kpis{border-bottom:2px solid var(--admin-line);border-top:2px solid var(--admin-line);grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:14px;display:grid}.admin-console-kpi{border-right:1px solid var(--admin-line-soft);min-width:0;padding:10px}.admin-console-kpi:last-child{border-right:0}.admin-console-kpi strong,.admin-console-kpi span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.admin-console-kpi strong{color:var(--admin-heading);font-size:16px}.admin-console-kpi span{color:var(--admin-muted);margin-top:5px;font-size:11px}.admin-console-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.admin-console-panel{background:var(--admin-panel);border:1px solid var(--admin-line-soft);min-width:0}.admin-console-panel-table,.admin-console-panel-log,.admin-console-panel-map{grid-column:1/-1}.admin-console-panel-header{background:var(--admin-panel-soft);border-bottom:1px solid var(--admin-line-soft);justify-content:space-between;align-items:center;gap:12px;min-height:28px;padding:5px 8px;display:flex}.admin-console-panel-header h2{color:var(--admin-heading);margin:0;font-size:12px}.admin-console-panel-header span{color:var(--admin-muted);white-space:nowrap;font-size:11px}.admin-console-panel-body{padding:10px;overflow-x:auto}.admin-control-table{border-collapse:collapse;color:var(--admin-text);width:100%;font-size:12px}.admin-control-table tr{border-bottom:1px solid var(--admin-line-soft)}.admin-control-table tbody tr:hover{background:0 0}.admin-control-table th,.admin-control-table td{border-right:1px solid var(--admin-line-soft);text-align:left;vertical-align:top;padding:6px 8px}.admin-control-table th:last-child,.admin-control-table td:last-child{border-right:0}.admin-control-table th{background:var(--admin-panel-soft);color:var(--admin-muted);font-size:11px}.admin-status{border:1px solid var(--admin-line-soft);text-align:center;min-width:64px;padding:1px 6px;display:inline-block}.admin-status.good{color:var(--admin-good)}.admin-status.warn{color:var(--admin-warn)}.admin-status.bad{color:var(--admin-bad)}.admin-bars{gap:8px;display:grid}.admin-bar-row{grid-template-columns:140px minmax(0,1fr) 70px;align-items:center;gap:8px;font-size:12px;display:grid}.admin-bar-track{background:var(--admin-panel-soft);border:1px solid var(--admin-line-soft);height:10px}.admin-bar-fill{background:var(--admin-heading);height:100%}.admin-log{background:var(--admin-panel-soft);border:1px solid var(--admin-line-soft);color:var(--admin-text);white-space:pre-wrap;min-height:150px;margin:0;padding:10px;font-size:12px;overflow:auto}.admin-map{background:linear-gradient(90deg, transparent 0 24%, var(--admin-map-grid) 24% 24.5%, transparent 24.5% 49%, var(--admin-map-grid) 49% 49.5%, transparent 49.5% 74%, var(--admin-map-grid) 74% 74.5%, transparent 74.5%), linear-gradient(0deg, transparent 0 24%, var(--admin-map-grid) 24% 24.5%, transparent 24.5% 49%, var(--admin-map-grid) 49% 49.5%, transparent 49.5% 74%, var(--admin-map-grid) 74% 74.5%, transparent 74.5%), var(--admin-panel-soft);border:1px solid var(--admin-line-soft);min-height:220px;position:relative;overflow:hidden}.admin-map:before{color:var(--admin-muted);content:"network activity map";font-size:11px;position:absolute;top:8px;left:10px}.admin-map-dot{background:var(--admin-dot-bg);border:2px solid var(--admin-heading);border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.admin-map-dot.warn{border-color:var(--admin-warn)}.admin-map-dot.bad{border-color:var(--admin-bad)}.admin-map-label{color:var(--admin-text);white-space:nowrap;font-size:10px;position:absolute;transform:translate(8px,-50%)}@media (width<=720px){.shell{padding:12px}.site-header{flex-direction:column;align-items:flex-start}.toolbar-sep,.status-message,.refresh-btn{margin-left:0}.admin-layout,.admin-summary,.admin-dashboard,.admin-console{grid-template-columns:1fr}.admin-console-sidebar{border-bottom:1px solid var(--admin-frame-line);border-right:0;gap:4px;padding:10px;display:flex;overflow-x:auto}.admin-console-nav{text-align:left;flex:none;width:auto;padding:6px 8px}.admin-console-workspace{padding:14px}.admin-console-title{flex-direction:column}.admin-console-actions{justify-content:flex-start}.admin-console-kpis,.admin-console-grid{grid-template-columns:1fr}.admin-console-panel-table,.admin-console-panel-log,.admin-console-panel-map{grid-column:1}.admin-bar-row{grid-template-columns:100px minmax(0,1fr) 56px}.col-size,.col-date,th.col-size,th.col-date{display:none}td{padding:12px 6px}}
