*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg: #f1f5f9;--color-surface: #ffffff;--color-border: #e2e8f0;--color-text: #1e293b;--color-muted: #64748b;--color-primary: #3b82f6;--color-primary-dk: #2563eb;--color-success: #22c55e;--color-warning: #f59e0b;--color-danger: #ef4444;--color-info: #8b5cf6;--sidebar-w: 240px;--radius: 8px;--shadow: 0 1px 3px rgba(0,0,0,.1), 0 1px 2px rgba(0,0,0,.06);--shadow-md: 0 4px 6px rgba(0,0,0,.07), 0 2px 4px rgba(0,0,0,.06);font-family:Inter,system-ui,-apple-system,sans-serif;font-size:14px;color:var(--color-text)}body{background:var(--color-bg)}.app-layout{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-w);background:#0f172a;color:#cbd5e1;display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:20px 20px 24px;border-bottom:1px solid #1e293b}.brand-icon{font-size:22px}.brand-name{font-weight:700;font-size:16px;color:#f1f5f9;letter-spacing:.3px}.sidebar-nav{flex:1;padding:16px 12px;display:flex;flex-direction:column;gap:4px}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:6px;color:#94a3b8;text-decoration:none;font-weight:500;transition:background .15s,color .15s}.nav-item:hover{background:#1e293b;color:#e2e8f0}.nav-item--active{background:#1e40af;color:#fff!important}.nav-icon{font-size:16px}.sidebar-footer{padding:14px 16px;border-top:1px solid #1e293b;display:flex;align-items:center;justify-content:space-between;gap:8px}.sidebar-user{min-width:0}.sidebar-user-name{font-size:12px;font-weight:600;color:#e2e8f0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-role{font-size:11px;color:#475569;text-transform:capitalize}.sidebar-logout{font-size:11px;color:#475569;text-decoration:none;white-space:nowrap;flex-shrink:0}.sidebar-logout:hover{color:#94a3b8}.main-content{margin-left:var(--sidebar-w);flex:1;padding:28px 32px;min-height:100vh}.card{background:var(--color-surface);border-radius:var(--radius);border:1px solid var(--color-border);box-shadow:var(--shadow)}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius);font-size:13px;font-weight:600;cursor:pointer;border:none;transition:opacity .15s,transform .1s}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(0)}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-dk);opacity:1}.btn-danger{background:var(--color-danger);color:#fff}.btn-ghost{background:transparent;border:1px solid var(--color-border);color:var(--color-text)}.badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.badge-active{background:#dcfce7;color:#15803d}.badge-inactive{background:#f1f5f9;color:#475569}.badge-maintenance{background:#fef3c7;color:#b45309}.badge-retired{background:#fee2e2;color:#b91c1c}.type-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600}.type-laptop{background:#eff6ff;color:#1d4ed8}.type-android{background:#f0fdf4;color:#15803d}.type-apple{background:#faf5ff;color:#7e22ce}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.page-title{font-size:22px;font-weight:700;color:var(--color-text)}.page-subtitle{font-size:13px;color:var(--color-muted);margin-top:2px}input,select,textarea{font-family:inherit;font-size:14px;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:8px 12px;outline:none;transition:border-color .15s;width:100%}input:focus,select:focus,textarea:focus{border-color:var(--color-primary)}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.7px;color:var(--color-muted);padding:10px 16px;border-bottom:1px solid var(--color-border);white-space:nowrap}td{padding:12px 16px;border-bottom:1px solid var(--color-border);vertical-align:middle}tr:last-child td{border-bottom:none}tr:hover td{background:#f8fafc}.empty-state{text-align:center;padding:60px 20px;color:var(--color-muted)}.empty-state-icon{font-size:48px;margin-bottom:12px}.empty-state-text{font-size:15px;font-weight:500}.empty-state-sub{font-size:13px;margin-top:4px}.spinner{border:3px solid #e2e8f0;border-top-color:var(--color-primary);border-radius:50%;width:32px;height:32px;animation:spin .7s linear infinite;margin:40px auto}@keyframes spin{to{transform:rotate(360deg)}}.stats-grid[data-v-472a67df]{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px}.stat-card[data-v-472a67df]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:20px;display:flex;align-items:center;gap:16px;box-shadow:var(--shadow);border-left:4px solid transparent}.stat-card--total[data-v-472a67df]{border-left-color:#3b82f6}.stat-card--laptop[data-v-472a67df]{border-left-color:#6366f1}.stat-card--android[data-v-472a67df]{border-left-color:#22c55e}.stat-card--apple[data-v-472a67df]{border-left-color:#a855f7}.stat-icon[data-v-472a67df]{font-size:32px}.stat-value[data-v-472a67df]{font-size:28px;font-weight:800;line-height:1}.stat-label[data-v-472a67df]{font-size:12px;color:var(--color-muted);font-weight:500;margin-top:4px}.section-title[data-v-472a67df]{font-size:16px;font-weight:700;margin-bottom:12px;color:var(--color-text)}.status-grid[data-v-472a67df]{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:28px}.status-card[data-v-472a67df]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:16px;display:flex;align-items:center;gap:12px;box-shadow:var(--shadow)}.status-bar[data-v-472a67df]{width:4px;height:40px;border-radius:4px;flex-shrink:0}.status-info[data-v-472a67df]{flex:1}.status-count[data-v-472a67df]{font-size:22px;font-weight:800}.status-label[data-v-472a67df]{font-size:12px;color:var(--color-muted);font-weight:500}.status-pct[data-v-472a67df]{font-size:13px;font-weight:600;color:var(--color-muted)}.section-header[data-v-472a67df]{display:flex;align-items:center;justify-content:space-between;margin-bottom:0}.view-all[data-v-472a67df]{font-size:13px;color:var(--color-primary);text-decoration:none;font-weight:600}.view-all[data-v-472a67df]:hover{text-decoration:underline}.error-banner[data-v-472a67df]{background:#fee2e2;border:1px solid #fca5a5;border-radius:var(--radius);padding:16px 20px;color:#b91c1c;font-weight:500}@media(max-width:1100px){.stats-grid[data-v-472a67df],.status-grid[data-v-472a67df]{grid-template-columns:repeat(2,1fr)}}.user-picker[data-v-c0264722]{position:relative;width:100%}.picker-dropdown[data-v-c0264722]{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:500;max-height:220px;overflow-y:auto}.picker-option[data-v-c0264722]{padding:8px 12px;cursor:pointer;transition:background .1s}.picker-option[data-v-c0264722]:hover,.picker-option--active[data-v-c0264722]{background:#f1f5f9}.picker-name[data-v-c0264722]{font-size:13px;font-weight:600;color:var(--color-text)}.picker-email[data-v-c0264722]{font-size:11px;color:var(--color-muted);margin-top:1px}.picker-status[data-v-c0264722]{padding:10px 12px;font-size:13px;color:var(--color-muted)}.modal-overlay[data-v-a2b0edde]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal[data-v-a2b0edde]{background:var(--color-surface);border-radius:12px;width:100%;max-width:620px;box-shadow:0 20px 60px #0003;max-height:90vh;overflow-y:auto;animation:modal-in-a2b0edde .2s ease}@keyframes modal-in-a2b0edde{0%{opacity:0;transform:translateY(-16px)}}.modal-header[data-v-a2b0edde]{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 0}.modal-title[data-v-a2b0edde]{font-size:18px;font-weight:700}.close-btn[data-v-a2b0edde]{border:none;background:#f1f5f9;border-radius:50%;width:28px;height:28px;cursor:pointer;font-size:13px;color:var(--color-muted);display:flex;align-items:center;justify-content:center}.close-btn[data-v-a2b0edde]:hover{background:#e2e8f0}.modal-body[data-v-a2b0edde]{padding:20px 24px;display:flex;flex-direction:column;gap:14px}.form-row[data-v-a2b0edde]{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-group[data-v-a2b0edde]{display:flex;flex-direction:column;gap:5px}.form-group--wide[data-v-a2b0edde]{grid-column:span 1}label[data-v-a2b0edde]{font-size:12px;font-weight:600;color:var(--color-muted);text-transform:uppercase;letter-spacing:.5px}.required[data-v-a2b0edde]{color:var(--color-danger)}textarea[data-v-a2b0edde]{resize:vertical;min-height:72px}.form-error[data-v-a2b0edde]{background:#fee2e2;border:1px solid #fca5a5;border-radius:var(--radius);padding:10px 14px;color:#b91c1c;font-size:13px;font-weight:500}.modal-footer[data-v-a2b0edde]{display:flex;gap:10px;justify-content:flex-end;padding-top:4px}.btn[data-v-a2b0edde]:disabled{opacity:.6;cursor:not-allowed;transform:none}.key-input-wrap[data-v-a2b0edde]{display:flex;gap:6px}.key-input[data-v-a2b0edde]{flex:1;font-family:JetBrains Mono,Fira Code,monospace;font-size:12px;letter-spacing:.5px}.key-toggle[data-v-a2b0edde]{border:1px solid var(--color-border);background:#f8fafc;border-radius:var(--radius);padding:0 10px;cursor:pointer;font-size:15px;flex-shrink:0}.key-toggle[data-v-a2b0edde]:hover{background:#f1f5f9}.overlay[data-v-bf363182]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1100;padding:20px}.dialog[data-v-bf363182]{background:var(--color-surface);border-radius:12px;padding:32px;max-width:400px;width:100%;text-align:center;box-shadow:0 20px 60px #0003;animation:pop-in-bf363182 .18s ease}@keyframes pop-in-bf363182{0%{opacity:0;transform:scale(.95)}}.dialog-icon[data-v-bf363182]{font-size:40px;margin-bottom:12px}.dialog-title[data-v-bf363182]{font-size:17px;font-weight:700;margin-bottom:8px}.dialog-message[data-v-bf363182]{font-size:14px;color:var(--color-muted);line-height:1.5;margin-bottom:24px}.dialog-actions[data-v-bf363182]{display:flex;gap:10px;justify-content:center}.filters-bar[data-v-45eb0fd9]{display:flex;align-items:center;gap:12px;padding:14px 16px;margin-bottom:16px;flex-wrap:wrap}.search-input[data-v-45eb0fd9]{flex:1;min-width:220px}.type-tabs[data-v-45eb0fd9]{display:flex;gap:4px;background:#f1f5f9;padding:3px;border-radius:var(--radius)}.tab-btn[data-v-45eb0fd9]{padding:5px 12px;border-radius:5px;border:none;cursor:pointer;font-size:12px;font-weight:600;background:transparent;color:var(--color-muted);transition:background .15s,color .15s;white-space:nowrap}.tab-btn--active[data-v-45eb0fd9]{background:#fff;color:var(--color-text);box-shadow:var(--shadow)}.tab-btn[data-v-45eb0fd9]:hover:not(.tab-btn--active){color:var(--color-text)}.status-select[data-v-45eb0fd9]{width:160px;flex-shrink:0}.table-card[data-v-45eb0fd9]{overflow:hidden}.device-name[data-v-45eb0fd9]{font-weight:600}.muted[data-v-45eb0fd9]{color:var(--color-muted)}.serial[data-v-45eb0fd9]{font-family:JetBrains Mono,Fira Code,monospace;font-size:12px;background:#f1f5f9;padding:2px 6px;border-radius:4px}.actions[data-v-45eb0fd9]{display:flex;gap:6px;justify-content:flex-end}.action-btn[data-v-45eb0fd9]{border:none;background:transparent;cursor:pointer;padding:5px 7px;border-radius:6px;font-size:15px;transition:background .15s}.action-btn--edit[data-v-45eb0fd9]:hover{background:#eff6ff}.action-btn--delete[data-v-45eb0fd9]:hover{background:#fee2e2}.result-count[data-v-45eb0fd9]{margin-top:10px;font-size:12px;color:var(--color-muted);text-align:right}.key-copy-btn[data-v-45eb0fd9]{font-size:12px;padding:3px 8px;border:1px solid var(--color-border);border-radius:var(--radius);background:#f8fafc;cursor:pointer;white-space:nowrap;transition:background .15s}.key-copy-btn[data-v-45eb0fd9]:hover{background:#f1f5f9}.key-copy-btn--copied[data-v-45eb0fd9]{background:#dcfce7;border-color:#86efac;color:#166534}th.sortable[data-v-45eb0fd9]{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}th.sortable[data-v-45eb0fd9]:hover{color:var(--color-primary)}.sort-indicator[data-v-45eb0fd9]{font-size:11px;color:var(--color-muted);margin-left:3px}th.sortable:hover .sort-indicator[data-v-45eb0fd9]{color:var(--color-primary)}.login-page[data-v-362bf993]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-bg)}.login-card[data-v-362bf993]{width:100%;max-width:380px;padding:40px 36px;display:flex;flex-direction:column;align-items:center;gap:16px}.login-brand[data-v-362bf993]{display:flex;flex-direction:column;align-items:center;gap:8px}.login-icon[data-v-362bf993]{font-size:40px}.login-title[data-v-362bf993]{font-size:22px;font-weight:700;color:var(--color-text);margin:0}.login-sub[data-v-362bf993]{font-size:13px;color:var(--color-muted);text-align:center;margin:0}.login-error[data-v-362bf993]{width:100%;background:#fee2e2;color:#b91c1c;border-radius:var(--radius);padding:10px 14px;font-size:13px;text-align:center}.btn-ms[data-v-362bf993]{display:inline-flex;align-items:center;gap:10px;padding:10px 20px;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius);font-size:14px;font-weight:600;color:var(--color-text);text-decoration:none;cursor:pointer;transition:box-shadow .15s,border-color .15s;width:100%;justify-content:center;margin-top:8px}.btn-ms[data-v-362bf993]:hover{border-color:#94a3b8;box-shadow:var(--shadow-md)}.summary-row[data-v-f2f1318e]{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.summary-card[data-v-f2f1318e]{background:var(--color-surface);border-radius:var(--radius);border:1px solid var(--color-border);box-shadow:var(--shadow);padding:20px 24px;display:flex;flex-direction:column;gap:4px}.summary-num[data-v-f2f1318e]{font-size:32px;font-weight:700;line-height:1}.summary-label[data-v-f2f1318e]{font-size:13px;color:var(--color-muted)}.summary-card--danger .summary-num[data-v-f2f1318e]{color:var(--color-danger)}.summary-card--warning .summary-num[data-v-f2f1318e]{color:var(--color-warning)}.summary-card--success .summary-num[data-v-f2f1318e]{color:var(--color-success)}.summary-card--neutral .summary-num[data-v-f2f1318e]{color:var(--color-text)}.section[data-v-f2f1318e]{margin-bottom:24px}.section-header[data-v-f2f1318e]{font-size:13px;font-weight:700;padding:8px 0 10px;letter-spacing:.2px}.section-header--danger[data-v-f2f1318e]{color:var(--color-danger)}.section-header--warning[data-v-f2f1318e]{color:#b45309}.section-header--success[data-v-f2f1318e]{color:#15803d}.table-card[data-v-f2f1318e]{overflow:hidden}.device-name[data-v-f2f1318e]{font-weight:600}.muted[data-v-f2f1318e]{color:var(--color-muted)}.overdue-text[data-v-f2f1318e]{color:var(--color-danger);font-weight:600}.due-soon-text[data-v-f2f1318e]{color:#b45309;font-weight:600}.ok-text[data-v-f2f1318e]{color:#15803d}.btn-sm[data-v-f2f1318e]{padding:5px 12px;font-size:12px;white-space:nowrap}.toast[data-v-f2f1318e]{position:fixed;bottom:28px;left:50%;transform:translate(-50%);background:#0f172a;color:#fff;padding:10px 20px;border-radius:999px;font-size:13px;font-weight:600;box-shadow:var(--shadow-md);animation:fade-in-f2f1318e .2s ease;z-index:9999}@keyframes fade-in-f2f1318e{0%{opacity:0;transform:translate(-50%) translateY(8px)}}.add-form-title[data-v-d94f507d]{font-weight:600;margin-bottom:12px}.add-form-row[data-v-d94f507d]{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.form-error[data-v-d94f507d]{color:var(--color-danger);font-size:13px;margin-top:8px}
