@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--wic-red: #c0392b;--wic-red-dark: #9b2c20;--wic-red-light: #fdf0ef;--wic-black: #111110;--wic-gray: #f4f3f0;--wic-border: #e2e0db;--wic-muted: #78756e;--wic-text: #1a1917;--wic-green: #2d7a3a;--wic-green-bg: #eaf3de;--wic-amber: #854f0b;--wic-amber-bg: #faeeda;--font: "DM Sans", system-ui, sans-serif}html,body,#root{height:100%;font-family:var(--font);font-size:15px;color:var(--wic-text);background:var(--wic-gray)}.app-shell{display:grid;grid-template-columns:220px 1fr;height:100vh;overflow:hidden}.app-main{display:flex;flex-direction:column;overflow:hidden;background:var(--wic-gray)}.sidebar{background:var(--wic-black);display:flex;flex-direction:column;overflow-y:auto;flex-shrink:0}.sidebar-logo{display:flex;align-items:center;justify-content:center;padding:0 18px;height:52px;background:var(--wic-red);border-bottom:none;flex-shrink:0;text-decoration:none}.logo-img{height:30px;width:auto;display:block}.logo-box{width:32px;height:32px;background:#fff3;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;letter-spacing:.04em;flex-shrink:0}.logo-text{font-size:12px;font-weight:700;color:#fff;letter-spacing:.08em;text-transform:uppercase;line-height:1.2}.logo-sub{font-size:9px;color:#fff9;text-transform:uppercase;letter-spacing:.08em}.sidebar-nav{padding:12px 0;flex:1}.nav-section-label{font-size:10px;color:#4a4845;text-transform:uppercase;letter-spacing:.12em;padding:8px 18px 4px;font-weight:500}.nav-item{display:flex;align-items:center;gap:9px;padding:9px 18px;font-size:13px;color:#8a8780;cursor:pointer;border-left:2px solid transparent;text-decoration:none;transition:color .12s,background .12s}.nav-item:hover{color:#ccc9c4;background:#ffffff0a}.nav-item.active{color:#fff;border-left-color:var(--wic-red);background:#ffffff0f}.source-item{cursor:default;font-size:12px}.source-item:hover{background:transparent;color:#8a8780}.source-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.source-dot[data-active=true]{background:var(--wic-green)}.source-dot[data-active=false]{background:#3a3835}.source-item.disabled{opacity:.5}.pending-tag{margin-left:auto;font-size:9px;padding:1px 5px;background:#252320;color:#5a5854;border-radius:3px}.sidebar-footer{padding:14px 18px;border-top:.5px solid #252320;flex-shrink:0}.user-row{display:flex;align-items:center;gap:8px}.user-name{font-size:12px;color:#8a8780;flex:1}.signout-btn{background:transparent;border:none;color:#5a5854;cursor:pointer;padding:2px;display:flex;align-items:center;transition:color .12s}.signout-btn:hover{color:#8a8780}.topbar{display:flex;align-items:center;padding:0 24px;height:52px;background:var(--wic-red);border-bottom:none;flex-shrink:0}.topbar-title{font-size:16px;font-weight:500;color:#fff}.topbar-title--app{font-weight:700}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:10px}.sync-indicator{display:flex;align-items:center;gap:6px}.sync-dot{width:6px;height:6px;border-radius:50%;background:#ffffffb3;flex-shrink:0}.sync-label{font-size:12px;color:#ffffffbf}.page-content{flex:1;overflow-y:auto;padding:24px}.page-section{display:flex;flex-direction:column;gap:20px}.kpi-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.kpi-row-3{grid-template-columns:repeat(3,minmax(0,1fr))}.kpi{background:#fff;border:.5px solid var(--wic-border);padding:18px 20px}.kpi-warn .kpi-val{color:var(--wic-red)}.kpi-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--wic-muted);margin-bottom:8px}.kpi-val{font-size:34px;font-weight:700;color:var(--wic-black);line-height:1;margin-bottom:4px}.kpi-sub{font-size:12px;color:var(--wic-muted)}.skeleton-kpi{min-height:92px;background:var(--wic-gray);animation:pulse 1.4s ease-in-out infinite}.panel{background:#fff;border:.5px solid var(--wic-border)}.panel-head{display:flex;align-items:center;padding:12px 16px;border-bottom:.5px solid var(--wic-border)}.panel-title{font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--wic-text)}.panel-action{margin-left:auto;font-size:12px;color:var(--wic-red);text-decoration:none;font-weight:500;cursor:pointer}.panel-action:hover{text-decoration:underline}.panel-count{margin-left:auto;font-size:12px;color:var(--wic-muted)}.dashboard-page{display:flex;flex-direction:column;gap:20px}.dashboard-grid{display:grid;grid-template-columns:1fr 280px;gap:16px}.dashboard-side{display:flex;flex-direction:column;gap:16px}.os-bars{padding:14px 16px;display:flex;flex-direction:column;gap:10px}.os-row{display:flex;align-items:center;gap:10px}.os-name{width:64px;font-size:12px;color:var(--wic-muted);flex-shrink:0}.os-track{flex:1;height:5px;background:var(--wic-gray)}.os-fill{height:5px;background:var(--wic-red)}.os-pct{width:32px;text-align:right;font-size:12px;font-weight:500;color:var(--wic-text)}.alert-item{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:.5px solid var(--wic-border);text-decoration:none;transition:background .1s}.alert-item:hover{background:var(--wic-gray)}.alert-item:last-child{border-bottom:none}.alert-days{font-size:14px;font-weight:700;min-width:32px}.alert-info{flex:1;min-width:0}.alert-device{font-size:13px;font-weight:500;color:var(--wic-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.alert-user{font-size:11px;color:var(--wic-muted)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;table-layout:fixed}thead th{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--wic-muted);font-weight:500;padding:9px 14px;text-align:left;background:var(--wic-gray);border-bottom:.5px solid var(--wic-border);white-space:nowrap}tbody tr{border-bottom:.5px solid var(--wic-border);transition:background .1s;cursor:pointer}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:var(--wic-gray)}tbody td{padding:11px 14px;font-size:13px;color:var(--wic-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.td-muted{color:var(--wic-muted)}.td-mono{font-family:monospace;font-size:12px;color:var(--wic-muted)}.td-small{font-size:12px}.td-center{text-align:center}.td-days{font-weight:700;font-size:13px}.link-cell{color:var(--wic-text);text-decoration:none;font-weight:500}.link-cell:hover{color:var(--wic-red);text-decoration:underline}.row-action{color:var(--wic-red);text-decoration:none;font-size:12px;font-weight:500}.row-action:hover{text-decoration:underline}.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.search-input{flex:1;min-width:200px;padding:7px 12px;border:.5px solid var(--wic-border);background:#fff;font-family:var(--font);font-size:14px;color:var(--wic-text);outline:none}.search-input:focus{border-color:#999}.filter-select{padding:7px 10px;border:.5px solid var(--wic-border);background:#fff;font-family:var(--font);font-size:14px;color:var(--wic-text);outline:none;cursor:pointer}.btn-export{padding:7px 14px;background:var(--wic-black);color:#fff;border:none;font-family:var(--font);font-size:12px;font-weight:500;letter-spacing:.04em;cursor:pointer;white-space:nowrap;transition:background .12s}.btn-export:hover{background:#2a2826}.btn-export:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{padding:7px 14px;background:transparent;color:var(--wic-text);border:.5px solid var(--wic-border);font-family:var(--font);font-size:12px;cursor:pointer;transition:background .12s;text-decoration:none;display:inline-block}.btn-secondary:hover{background:var(--wic-gray)}.back-link{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:500;color:var(--wic-red);text-decoration:none;margin-bottom:4px}.back-link:hover{text-decoration:underline}.detail-grid{display:grid;grid-template-columns:1fr 280px;gap:16px;align-items:start}.detail-side{display:flex;flex-direction:column;gap:14px}.detail-header{padding:20px 20px 16px;border-bottom:.5px solid var(--wic-border)}.detail-hostname{font-size:20px;font-weight:700;color:var(--wic-black);margin-bottom:3px}.detail-model{font-size:14px;color:var(--wic-muted);margin-bottom:10px}.detail-badges{display:flex;gap:6px}.prop-section{padding:14px 20px 8px}.prop-section+.prop-section{border-top:.5px solid var(--wic-border)}.prop-section-label{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--wic-muted);font-weight:500;margin-bottom:10px}.prop-row{display:flex;align-items:baseline;padding:5px 0;border-bottom:.5px solid var(--wic-border);gap:8px}.prop-row:last-child{border-bottom:none}.prop-key{width:150px;flex-shrink:0;font-size:13px;color:var(--wic-muted)}.prop-val{font-size:13px;color:var(--wic-text);flex:1}.prop-val.mono{font-family:monospace;font-size:12px}.prop-divider{border-top:.5px solid var(--wic-border);margin:12px 0}.side-card-body{padding:14px 16px}.user-row-sm{display:flex;align-items:center;gap:10px;margin-bottom:12px}.user-dept{font-size:11px;color:var(--wic-muted);margin-top:1px}.warranty-section{margin-bottom:14px}.warranty-dates{display:flex;justify-content:space-between;font-size:10px;color:var(--wic-muted);margin-bottom:5px}.warranty-track{height:6px;background:var(--wic-gray)}.warranty-fill{height:6px;transition:width .3s}.warranty-remaining{font-size:11px;font-weight:500;margin-top:4px}.sync-history{padding:8px 16px 12px;display:flex;flex-direction:column}.sync-row{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:.5px solid var(--wic-border)}.sync-row:last-child{border-bottom:none}.sync-dot-sm{width:7px;height:7px;border-radius:50%;flex-shrink:0}.dot-success{background:var(--wic-green)}.dot-failure{background:var(--wic-red)}.dot-cached{background:var(--wic-amber)}.sync-source{font-size:12px;font-weight:500;color:var(--wic-text);min-width:60px}.sync-ts{font-size:11px;color:var(--wic-muted)}.user-detail-grid{display:grid;grid-template-columns:280px 1fr;gap:16px;align-items:start}.user-profile-header{display:flex;align-items:flex-start;gap:14px;padding:20px;border-bottom:.5px solid var(--wic-border)}.user-name-lg{font-size:17px;font-weight:700;color:var(--wic-black);margin-bottom:2px}.user-title-sm{font-size:13px;color:var(--wic-muted)}.user-dept-sm{font-size:12px;color:var(--wic-muted);margin-top:2px}.user-action-row{padding:14px 20px 20px}.user-cell{display:flex;align-items:center;gap:8px}.avatar{border-radius:50%;background:var(--wic-red);display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;flex-shrink:0}.badge{display:inline-block;font-size:11px;font-weight:500;letter-spacing:.04em;padding:3px 9px;white-space:nowrap}.badge-ok{background:var(--wic-green-bg);color:var(--wic-green)}.badge-warn{background:var(--wic-amber-bg);color:var(--wic-amber)}.badge-err{background:#fcebeb;color:#791f1f}.badge-muted,.badge-src{background:var(--wic-gray);color:var(--wic-muted)}.pagination{display:flex;align-items:center;gap:12px;padding:12px 16px;border-top:.5px solid var(--wic-border)}.btn-page{padding:5px 12px;border:.5px solid var(--wic-border);background:#fff;font-family:var(--font);font-size:12px;color:var(--wic-text);cursor:pointer;transition:background .1s}.btn-page:hover:not(:disabled){background:var(--wic-gray)}.btn-page:disabled{opacity:.4;cursor:not-allowed}.page-info{font-size:12px;color:var(--wic-muted)}.skeleton-wrap{padding:12px 16px;display:flex;flex-direction:column;gap:10px}.skeleton-row{height:16px;background:var(--wic-gray);border-radius:3px;animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;gap:12px;text-align:center}.error-icon{width:36px;height:36px;border-radius:50%;background:#fcebeb;color:#791f1f;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700}.error-msg{font-size:14px;color:var(--wic-muted)}.empty-state{padding:40px 24px;text-align:center;font-size:13px;color:var(--wic-muted)}.topbar-search-wrap{position:relative;margin-left:24px;margin-right:auto}.topbar-search{display:flex;align-items:center;position:relative}.topbar-search-icon{position:absolute;left:10px;color:#fff9;pointer-events:none}.topbar-search-input{width:300px;padding:7px 32px;border:.5px solid rgba(255,255,255,.3);background:#00000026;font-family:var(--font);font-size:13px;color:#fff;outline:none;transition:border-color .12s,background .12s,width .2s;border-radius:2px}.topbar-search-input::placeholder{color:#ffffff8c}.topbar-search-input:focus{border-color:#fff9;background:#0003;width:360px}.topbar-search-spinner{position:absolute;right:10px;width:12px;height:12px;border:1.5px solid rgba(255,255,255,.3);border-top-color:#fffc;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.topbar-search-clear{position:absolute;right:8px;background:transparent;border:none;font-size:10px;color:#fff9;cursor:pointer;padding:2px 4px;line-height:1;transition:color .12s}.topbar-search-clear:hover{color:#fff}.search-dropdown{position:absolute;top:calc(100% + 6px);left:0;width:420px;background:#fff;border:.5px solid var(--wic-border);box-shadow:0 4px 16px #0000001f;z-index:100}.search-empty{padding:16px;font-size:13px;color:var(--wic-muted);text-align:center}.search-group{padding:6px 0}.search-group+.search-group{border-top:.5px solid var(--wic-border)}.search-group-label{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--wic-muted);font-weight:500;padding:6px 14px 4px}.search-result-row{display:flex;align-items:center;gap:10px;width:100%;padding:8px 14px;background:transparent;border:none;cursor:pointer;text-align:left;transition:background .1s;font-family:var(--font)}.search-result-row:hover{background:var(--wic-gray)}.sr-icon{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sr-icon-device{background:#e6f1fb;color:#185fa5}.sr-icon-user{background:var(--wic-green-bg);color:var(--wic-green)}.sr-body{flex:1;min-width:0}.sr-primary{font-size:13px;font-weight:500;color:var(--wic-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sr-secondary{font-size:11px;color:var(--wic-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sr-device-count{font-size:11px;color:var(--wic-muted);white-space:nowrap;flex-shrink:0}
