:root{--bg: #090909;--panel: #141a21;--panel-alt: #212a34;--border: #2b3744;--border-soft: #232e3a;--text: #ffffff;--text-dim: #c0fafb;--text-faint: #6b7888;--accent: hsl(36, 96%, 50%);--accent-strong: #ffb675;--accent-ink: #15110b;--danger: #ff0303;--success: #06d61a;--info: #3196e3;--radius-sm: 6px;--radius-md: 10px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}input,select,textarea{background:var(--panel-alt);border:1px solid var(--border);border-radius:var(--radius-sm);padding:9px 11px;color:var(--text);width:100%;outline:none;transition:border-color .12s ease}input:focus,select:focus,textarea:focus{border-color:var(--accent)}input::placeholder,textarea::placeholder{color:var(--text-faint)}label{display:block;font-size:12.5px;font-weight:600;color:var(--text-dim);margin-bottom:6px}.field{margin-bottom:14px}.field-required:after{content:" *";color:var(--accent)}button{cursor:pointer;border:none;border-radius:var(--radius-sm);padding:9px 16px;font-weight:600}.btn-primary{background:var(--accent);color:var(--accent-ink)}.btn-primary:hover{background:var(--accent-strong)}.btn-primary:disabled{opacity:.55;cursor:not-allowed}.btn-ghost{background:transparent;border:1px solid var(--border);color:var(--text)}.btn-ghost:hover{border-color:var(--text-dim)}.btn-danger-ghost{background:transparent;border:1px solid var(--border);color:var(--danger)}.btn-danger-ghost:hover{border-color:var(--danger);background:#e5595e14}.btn-sm{padding:6px 11px;font-size:12.5px}a{color:var(--accent)}::selection{background:var(--accent);color:var(--accent-ink)}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(1200px 600px at 15% -10%,rgba(242,169,59,.1),transparent 60%),var(--bg)}.login-card{width:100%;max-width:380px}.login-mark{display:flex;align-items:center;gap:10px;margin-bottom:28px}.login-mark-glyph{width:36px;height:36px;border-radius:8px;background:var(--accent);color:var(--accent-ink);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px;letter-spacing:-.02em}.login-mark-text{line-height:1.15}.login-mark-text strong{display:block;font-size:15px}.login-mark-text span{font-size:12px;color:var(--text-faint);letter-spacing:.02em}.login-panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);padding:26px 24px}.login-panel h1{font-size:19px;margin:0 0 4px}.login-panel p.sub{color:var(--text-dim);font-size:13.5px;margin:0 0 22px}.login-error{background:#e5595e1f;border:1px solid rgba(229,89,94,.4);color:#ffb3b6;border-radius:var(--radius-sm);padding:9px 12px;font-size:13px;margin-bottom:16px}.login-submit{width:100%;margin-top:4px;padding:10px}.shell{display:grid;grid-template-columns:216px 1fr;height:100vh}.sidebar{background:var(--panel);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:18px 12px}.sidebar-mark{display:flex;align-items:center;gap:9px;padding:4px 6px 20px;border-bottom:1px solid var(--border-soft);margin-bottom:14px}.sidebar-nav{display:flex;flex-direction:column;gap:2px;flex:1}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--radius-sm);color:var(--text-dim);background:transparent;text-align:left;font-weight:600;font-size:13.5px}.nav-item:hover{background:var(--panel-alt);color:var(--text)}.nav-item.active{background:var(--panel-alt);color:var(--accent)}.nav-item .nav-icon{font-size:15px;width:18px;text-align:center}.sidebar-foot{border-top:1px solid var(--border-soft);padding-top:12px;margin-top:8px}.user-chip{padding:6px;margin-bottom:8px}.user-chip strong{display:block;font-size:13px}.user-chip span{font-size:11.5px;color:var(--text-faint);text-transform:capitalize}.main{overflow-y:auto;padding:22px 28px 60px}.topbar{display:flex;align-items:center;justify-content:flex-start;margin-bottom:22px;gap:14px}.topbar>div{min-width:0}.topbar h1{font-size:20px;margin:0 0 3px}.topbar p{margin:0;color:var(--text-dim);font-size:13.5px}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:22px}.stat-card{background:var(--panel);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius-md);padding:16px}.stat-card.is-danger{border-left-color:var(--danger)}.stat-card.is-success{border-left-color:var(--success)}.stat-card.is-info{border-left-color:var(--info)}.type-card--machine{border-left:3px solid var(--info)}.type-card--employee{border-left:3px solid var(--accent)}.type-card--training{border-left:3px solid var(--success)}.type-card--global{border-left:3px solid #b482f0}.type-card--machine .type-card-count{color:var(--info)}.type-card--employee .type-card-count{color:var(--accent)}.type-card--training .type-card-count{color:var(--success)}.type-card--global .type-card-count{color:#c79ef0}.stat-value{font-size:28px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.stat-label{color:var(--text-dim);font-size:12.5px;margin-top:4px}.section-title{font-size:13px;font-weight:700;color:var(--text-dim);margin:26px 0 10px}.type-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.type-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px;text-align:left;display:flex;flex-direction:column;gap:8px}.type-card:hover{border-color:var(--text-dim)}.type-card-top{display:flex;align-items:center;justify-content:space-between}.type-card-icon{font-size:18px}.type-card-count{font-size:22px;font-weight:700;font-variant-numeric:tabular-nums}.type-card-name{font-weight:600;font-size:14px}.type-card-desc{color:var(--text-faint);font-size:12px;line-height:1.4}.dash-filter{margin-bottom:16px}.pill-count{opacity:.7;font-weight:500;margin-left:2px;font-variant-numeric:tabular-nums}.stat-sub{color:var(--text-faint);font-size:11.5px;margin-top:3px;line-height:1.35}.fill-machine{fill:var(--info)}.fill-employee{fill:var(--accent)}.fill-training{fill:var(--success)}.fill-global{fill:#b482f0}.stroke-machine{stroke:var(--info)}.stroke-employee{stroke:var(--accent)}.stroke-training{stroke:var(--success)}.stroke-global{stroke:#b482f0}.bg-machine{background:var(--info)}.bg-employee{background:var(--accent)}.bg-training{background:var(--success)}.bg-global{background:#b482f0}.chart-svg{width:100%;height:auto;display:block}.chart-grid{stroke:var(--border-soft);stroke-width:1}.chart-axis{fill:var(--text-faint);font-size:10.5px;font-variant-numeric:tabular-nums}.chart-value{fill:var(--text-dim);font-size:11px;font-weight:600;font-variant-numeric:tabular-nums}.chart-empty{text-align:center;color:var(--text-faint);font-size:13px;padding:36px 12px;border:1px dashed var(--border);border-radius:var(--radius-sm)}.chart-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:10px;font-size:12px;color:var(--text-dim)}.chart-legend-item{display:inline-flex;align-items:center;gap:6px}.chart-swatch{display:inline-block;width:10px;height:10px;border-radius:3px;flex:none}.donut-wrap{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.donut-svg{width:150px;height:150px;flex:none}.donut-track{fill:none;stroke:var(--panel-alt);stroke-width:18}.donut-seg{fill:none;stroke-width:18}.donut-total{fill:var(--text);font-size:24px;font-weight:700;font-variant-numeric:tabular-nums}.donut-legend{flex:1;min-width:150px;display:flex;flex-direction:column;gap:9px}.donut-legend-row{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text-dim)}.donut-legend-name{flex:1}.donut-legend-row b{color:var(--text);font-variant-numeric:tabular-nums}.donut-legend-count{color:var(--text-faint);min-width:24px;text-align:right;font-variant-numeric:tabular-nums}.line-area{fill:url(#dailyFill);stroke:none}.line-stroke{fill:none;stroke:var(--accent);stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round}.line-dot{fill:var(--panel);stroke:var(--accent);stroke-width:2}.bar-list{display:flex;flex-direction:column;gap:14px}.bar-item-head{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;color:var(--text-dim);margin-bottom:6px}.bar-item-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-item-figure{color:var(--text-faint);white-space:nowrap;font-variant-numeric:tabular-nums}.bar-item-figure b{color:var(--text)}.bar-item-open{color:#ff9498}.bar-track{height:8px;background:var(--panel-alt);border-radius:999px;overflow:hidden}.bar-fill{height:100%;border-radius:999px;min-width:2px;transition:width .4s ease}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);padding:20px}.type-switch{display:flex;gap:6px;margin-bottom:22px;flex-wrap:wrap}.type-switch button{background:var(--panel-alt);border:1px solid var(--border);color:var(--text-dim);font-size:13px;padding:8px 14px}.type-switch button.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:4px 16px}.form-grid .field-wide{grid-column:1 / -1}@media(max-width:720px){.form-grid{grid-template-columns:1fr}}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;padding-top:16px;border-top:1px solid var(--border-soft)}.banner{border-radius:var(--radius-sm);padding:10px 13px;font-size:13px;margin-bottom:16px}.banner.success{background:#3ecf8e1f;border:1px solid rgba(62,207,142,.4);color:#a7f0cf}.banner.error{background:#e5595e1f;border:1px solid rgba(229,89,94,.4);color:#ffb3b6}.field-error{color:var(--danger);font-size:11.5px;margin-top:4px}.list-toolbar{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap;align-items:center}.search-input{max-width:320px}.pill-group{display:flex;gap:6px;flex-wrap:wrap}.pill{background:var(--panel-alt);border:1px solid var(--border);color:var(--text-dim);font-size:12.5px;padding:6px 12px;border-radius:999px;font-weight:600}.pill.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.history-list{display:flex;flex-direction:column;gap:8px}.history-row{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);padding:13px 16px;display:grid;grid-template-columns:84px 1fr auto;gap:14px;align-items:center}@media(max-width:760px){.history-row{grid-template-columns:1fr}}.type-tag{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:4px 8px;border-radius:var(--radius-sm);text-align:center}.type-tag.machine{background:#5aa6e026;color:var(--info)}.type-tag.employee{background:#f2a93b26;color:var(--accent)}.type-tag.training{background:#3ecf8e26;color:var(--success)}.type-tag.global{background:#b482f026;color:#c79ef0}.history-main strong{font-size:14.5px}.history-meta{display:flex;flex-wrap:wrap;gap:4px 12px;color:var(--text-dim);font-size:12.5px;margin-top:4px}.history-desc{color:var(--text-faint);font-size:12.5px;margin-top:5px;line-height:1.4}.history-actions{display:flex;gap:6px;align-items:center}.status-tag{font-size:11px;font-weight:700;padding:4px 9px;border-radius:999px;text-transform:uppercase;letter-spacing:.03em}.status-tag.open{background:#e5595e26;color:#ff9498}.status-tag.resolved{background:#3ecf8e26;color:var(--success)}.history-row--clickable{width:100%;text-align:left;font-family:inherit}.history-row--clickable:hover{border-color:var(--text-dim)}.evidence-dropzone{border:1px dashed var(--border);border-radius:var(--radius-sm);padding:16px;text-align:center;color:var(--text-dim);font-size:13px;cursor:pointer;background:var(--panel-alt)}.evidence-dropzone:hover{border-color:var(--accent);color:var(--text)}.evidence-dropzone.is-uploading{cursor:wait;opacity:.7}.evidence-preview{display:flex;align-items:center;gap:12px;background:var(--panel-alt);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px}.evidence-thumb{width:84px;height:64px;object-fit:cover;border-radius:6px;background:#000}.evidence-preview-actions{display:flex;flex-direction:column;gap:6px}.history-evidence-link{display:block;margin-top:8px;width:fit-content}.history-evidence-thumb{width:120px;height:80px;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--border);background:#000}.user-row select{width:auto;padding:6px 8px;font-size:12.5px}.section-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:26px 0 8px}.page-hint{color:var(--text-faint);font-size:12.5px;line-height:1.5;margin:0 0 14px}.page-hint strong{color:var(--text-dim)}.muted-note{color:var(--text-faint);font-size:12.5px}.type-tag.idle{background:#6b78882e;color:var(--text-faint)}.role-chip{display:inline-block;margin-left:8px;padding:2px 7px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;border-radius:999px;background:var(--panel-alt);color:var(--text-dim);vertical-align:1px}.role-chip.is-me{background:#3196e329;color:var(--info)}.flag-tag{display:inline-block;margin-left:8px;padding:2px 8px;font-size:10.5px;font-weight:700;border-radius:999px;background:#f2a93b29;color:var(--accent);vertical-align:1px}.flag-tag.is-danger{background:#e5595e29;color:#ff9498}.online-tag{margin-left:8px;font-size:11px;font-weight:700;color:var(--success);vertical-align:1px}.history-row.is-blocked{opacity:.7;border-style:dashed}.empty-state{text-align:center;padding:50px 20px;color:var(--text-faint);border:1px dashed var(--border);border-radius:var(--radius-md)}.empty-state strong{display:block;color:var(--text-dim);margin-bottom:4px;font-size:14px}.loading-line{color:var(--text-faint);font-size:13px;padding:20px 0}.dash-stack{display:flex;flex-direction:column;gap:12px;margin-bottom:4px}.dash-grid{display:grid;gap:12px}.dash-grid--2{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}.dash-grid--3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.chart-card{min-width:0}.chart-card .section-title{margin:0 0 14px;display:flex;align-items:center}.chart-card .section-title:before{content:"";width:3px;height:13px;margin-right:9px;border-radius:2px;background:var(--accent)}.chart-scroll{overflow-x:auto}@media(max-width:720px){.chart-svg{min-width:560px}.dash-grid--2,.dash-grid--3{grid-template-columns:1fr}}.chart-empty-note{fill:var(--text-faint);font-size:15px}.dash-status{display:flex;align-items:center;gap:12px;padding:13px 16px;margin-bottom:14px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--panel);font-size:13.5px;color:var(--text-dim)}.dash-status-icon{font-size:18px}.dash-status.ok{border-color:#3ecf8e73;background:linear-gradient(90deg,rgba(62,207,142,.14),var(--panel) 70%);color:#b8f5d8}.dash-status.warn{border-color:#f2a93b8c;background:linear-gradient(90deg,rgba(242,169,59,.16),var(--panel) 70%);color:#ffdca0}.dash-status.info{border-color:#3196e373;background:linear-gradient(90deg,rgba(49,150,227,.14),var(--panel) 70%);color:#bfe0fa}.stat-card{position:relative;overflow:hidden}.stat-icon{position:absolute;top:14px;right:14px;width:38px;height:38px;display:grid;place-items:center;font-size:18px;border-radius:10px;background:#ffffff12}.stat-card.is-info{background:linear-gradient(135deg,rgba(49,150,227,.16),var(--panel) 62%)}.stat-card.is-danger{background:linear-gradient(135deg,rgba(255,3,3,.13),var(--panel) 62%)}.stat-card.is-success{background:linear-gradient(135deg,rgba(6,214,26,.13),var(--panel) 62%)}.stat-card.is-accent{background:linear-gradient(135deg,rgba(242,169,59,.16),var(--panel) 62%)}.stat-card.is-info .stat-value{color:#7cc0f5}.stat-card.is-danger .stat-value{color:#ff8a8a}.stat-card.is-success .stat-value{color:#62e873}.stat-card.is-accent .stat-value{color:var(--accent-strong)}.stat-meter{height:5px;margin-top:10px;border-radius:999px;background:#ffffff14;overflow:hidden}.stat-meter i{display:block;height:100%;border-radius:999px;background:var(--accent)}.user-row .history-actions{flex-wrap:wrap;justify-content:flex-end}.form-subtitle{margin:10px 0 4px;padding-top:14px;border-top:1px solid var(--border-soft);font-size:12.5px;font-weight:700;color:var(--accent)}.fact-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.fact-chip{font-size:11.5px;padding:3px 9px;border-radius:999px;background:var(--panel-alt);color:var(--text-dim)}.fact-chip.warn{background:#f2a93b29;color:var(--accent-strong)}.fact-chip.bad{background:#e5595e29;color:#ff9498}.item-table{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}.item-table th{text-align:right;font-size:11.5px;font-weight:700;color:var(--text-faint);padding:0 10px 8px;border-bottom:1px solid var(--border)}.item-table th:first-child,.item-table td:first-child{text-align:left;padding-left:0}.item-table td{text-align:right;padding:10px;border-bottom:1px solid var(--border-soft);color:var(--text-dim)}.item-table tr:last-child td{border-bottom:none}.item-name{color:var(--text);font-weight:600}.item-sub{color:var(--text-faint)}.item-flag{margin-left:6px;padding:1px 7px;border-radius:999px;font-size:10.5px;font-weight:700;background:#e5595e29;color:#ff9498}.item-rate{font-weight:700}.item-rate.good{color:var(--success)}.item-rate.warn{color:var(--accent)}.item-rate.bad{color:#ff8a8a}.item-note{margin-top:10px;font-size:11.5px;color:var(--text-faint)}.user-row .type-tag{font-size:10.5px;letter-spacing:.02em;padding-left:4px;padding-right:4px}.brand-logo{width:46px;height:46px;flex:none;display:block;box-sizing:border-box;padding:3px;object-fit:contain;background:#fff;border-radius:12px}.brand-logo--lg{width:64px;height:64px;padding:4px;border-radius:16px}.nav-toggle{display:none;flex:none;width:38px;height:38px;padding:0;align-items:center;justify-content:center;flex-direction:column;gap:4px;background:var(--panel-alt);border:1px solid var(--border);border-radius:var(--radius-sm)}.nav-toggle span{display:block;width:16px;height:2px;background:var(--text);border-radius:2px}.nav-backdrop{display:none;position:fixed;inset:0;background:#0000008c;border:none;padding:0;cursor:default;z-index:40}@media(max-width:880px){.shell{grid-template-columns:1fr;height:100vh;position:relative;overflow:hidden}.nav-toggle{display:flex}.sidebar{position:fixed;top:0;left:0;bottom:0;width:min(80vw,280px);transform:translate(-100%);transition:transform .22s ease;z-index:50;box-shadow:2px 0 24px #00000059}.shell.nav-open .sidebar{transform:translate(0)}.shell.nav-open .nav-backdrop{display:block}.main{padding:16px 16px 48px}.topbar h1{font-size:18px}.topbar p{font-size:12.5px}}.history-row.is-archived{opacity:.72;border-style:dashed}
