@import"https://fonts.googleapis.com/css2?family=Asap:wght@400;500;600;700&display=swap";:root{--bg: #f4f6f8;--surface: #ffffff;--border: #dde1e6;--text: #322f3a;--muted: #666666;--accent: #38aae1;--accent-dark: #2494c8;--danger: #dc2626;--radius: 6px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Asap,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}.app-header{background:var(--surface);border-bottom:3px solid #38aae1;padding:0 24px;display:flex;align-items:center;gap:32px;height:56px;position:sticky;top:0;z-index:10}.app-logo-wrap{line-height:1;flex-shrink:0;display:flex;align-items:center}.app-logo-img-wrap{display:flex;align-items:center}.app-logo-img-wrap img{height:32px;width:auto;display:block}.app-logo-img-wrap .logo-blue,[data-theme=dark] .app-logo-img-wrap .logo-standard{display:none}[data-theme=dark] .app-logo-img-wrap .logo-blue{display:block}.app-header nav{display:flex;gap:2px;flex:1}.theme-toggle{width:32px;height:32px;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--muted);display:flex;align-items:center;justify-content:center;padding:0;flex-shrink:0;transition:color .2s,border-color .2s}.theme-toggle:hover{color:var(--text);border-color:var(--accent);background:var(--surface)}.hamburger-btn{display:none;flex-direction:column;justify-content:center;gap:5px;width:36px;height:36px;padding:6px;border:none;background:none;cursor:pointer;flex-shrink:0;margin-left:auto}.hamburger-btn span{display:block;height:2px;background:var(--text);border-radius:2px;transition:transform .2s,opacity .2s}.hamburger-btn.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.hamburger-btn.is-open span:nth-child(2){opacity:0}.hamburger-btn.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.app-header nav button{padding:6px 14px;border:none;border-bottom:2px solid transparent;background:none;cursor:pointer;border-radius:0;color:var(--muted);font-size:13px;font-weight:500;font-family:inherit;transition:color .15s,border-color .15s;height:56px;letter-spacing:.01em}.app-header nav button:hover{background:none;color:var(--text);border-bottom-color:var(--border)}.app-header nav button.active{background:none;color:var(--accent);border-bottom-color:var(--accent)}.app-main{padding:24px 32px;max-width:1600px;margin:0 auto;width:100%}.stat-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:16px;margin-bottom:28px}.stat-card{background:var(--surface);border:1px solid var(--border);border-top:3px solid transparent;border-radius:var(--radius);padding:16px 18px;display:flex;flex-direction:column;gap:4px;transition:border-top-color .2s,box-shadow .2s}.stat-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.stat-card:hover{border-top-color:var(--accent);box-shadow:0 2px 8px #38aae114}.stat-value{font-size:22px;font-weight:700}.stat-sub{font-size:11px;color:var(--muted)}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.dashboard-col{display:flex;flex-direction:column;gap:0}.dashboard section{margin-bottom:24px}.dashboard section h2{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:10px}.card-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.list-row{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border)}.list-row:last-child{border-bottom:none}.list-row:hover{background:var(--bg)}.row-right{display:flex;align-items:center;gap:12px}.cost-label{font-weight:600;color:var(--accent)}.badge{display:inline-block;padding:2px 8px;border-radius:3px;font-size:11px;font-weight:600;margin-left:6px;letter-spacing:.03em}.badge-urgent{background:#fde8e8;color:#c00000}.badge-soon{background:#fef3c7;color:#d97706}.badge-expired{background:#f1f5f9;color:var(--muted)}.badge-active{background:#e0f4ff;color:#2494c8}.badge-paused{background:#fef3c7;color:#92400e}.badge-cancelled{background:#f1f5f9;color:#64748b}.badge-starter-pending{background:#fef3c7;color:#d97706}.badge-starter-ordered{background:#e0f4ff;color:#2494c8}.badge-starter-complete{background:#dcfce7;color:#15803d}.chip{display:inline-block;padding:2px 8px;border-radius:3px;background:#e0f4ff;color:var(--accent);font-size:11px;font-weight:500;margin-left:8px}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.filters{display:flex;gap:8px}.filters select{padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font-size:13px;cursor:pointer;color:var(--text);font-family:inherit}button{cursor:pointer;font-size:13px;border-radius:var(--radius);border:1px solid var(--border);padding:6px 14px;background:var(--surface);color:var(--text);font-family:inherit;transition:background .15s,border-color .15s,color .15s}button:hover{background:var(--bg)}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover{background:var(--accent-dark);border-color:var(--accent-dark)}.btn-danger{color:var(--danger);border-color:transparent;background:transparent}.btn-danger:hover{background:#fde8e8;border-color:var(--danger)}.table-wrapper{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto;-webkit-overflow-scrolling:touch}.sub-table{width:100%;border-collapse:collapse}.sub-table th{padding:10px 12px;text-align:left;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:var(--bg);border-bottom:1px solid var(--border);white-space:nowrap}.sub-table td{padding:11px 12px;border-bottom:1px solid var(--border);vertical-align:middle}.sub-table tr:last-child td{border-bottom:none}.sub-table tr:hover td{background:#f0f7fd}.row-actions{display:flex;gap:4px}.muted{color:var(--muted)}.empty-state{text-align:center;padding:56px 24px;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:16px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#25242c80;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--surface);border-radius:var(--radius);border-top:3px solid var(--accent);padding:28px;width:560px;max-width:95vw;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #25242c33}.modal h2{font-size:15px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-bottom:20px;color:var(--text)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:20px}.form-grid .full-width{grid-column:1 / -1}label{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}label input,label select,label textarea{padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius);font-size:14px;color:var(--text);background:var(--surface);font-family:inherit;font-weight:400;text-transform:none;letter-spacing:normal}label input:focus,label select:focus,label textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #38aae11f}.form-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:4px}.user-avatar{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--accent);color:#fff;font-size:11px;font-weight:700;flex-shrink:0}.user-avatars{display:flex;gap:4px;flex-wrap:wrap}.users-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}.user-search{padding:7px 10px;border:1px solid var(--border);border-radius:var(--radius);font-size:13px;color:var(--text);background:var(--surface);font-family:inherit;width:200px}.user-search:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #38aae11f}.user-count{font-size:12px;color:var(--muted);margin-bottom:12px}.user-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}.user-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px;transition:border-color .15s,box-shadow .15s}.user-card:hover{border-color:var(--accent);box-shadow:0 1px 6px #38aae11a}.user-card.is-editing{border-color:var(--accent);box-shadow:0 0 0 3px #38aae11a;flex-direction:column;align-items:stretch}.user-card-info{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.user-card-text{display:flex;flex-direction:column;min-width:0}.user-card-name{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-card-email{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-card-actions{display:flex;gap:4px;flex-shrink:0}.user-card-edit{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.user-card-edit input{padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius);font-size:13px;color:var(--text);background:var(--surface);font-family:inherit;width:100%}.user-card-edit input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #38aae11f}.user-card-info{cursor:pointer;border-radius:var(--radius);padding:2px 4px;margin:-2px -4px}.user-card-info:hover .user-card-name{color:var(--accent)}.back-btn{background:none;border:none;color:var(--muted);font-size:13px;padding:0;margin-bottom:20px;display:inline-flex;align-items:center;gap:4px}.back-btn:hover{color:var(--accent);background:none}.user-detail-header{display:flex;align-items:center;gap:16px;margin-bottom:28px;padding:20px 24px;background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:var(--radius)}.user-detail-avatar .user-avatar{width:44px;height:44px;font-size:18px;flex-shrink:0}.user-detail-info{flex:1}.user-detail-name{font-size:17px;font-weight:700;margin-bottom:2px}.user-detail-email{font-size:13px;color:var(--muted)}.user-detail-section{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px}.user-detail-totals{display:flex;align-items:center;gap:10px;margin-top:12px;font-size:13px;color:var(--muted);justify-content:flex-end}.user-detail-totals strong{color:var(--text);font-size:14px}.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.team-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px 16px 14px;display:flex;flex-direction:column;align-items:center;gap:8px;transition:border-color .15s,box-shadow .15s;min-height:160px}.team-card:hover{border-color:var(--accent);box-shadow:0 2px 8px #38aae11a}.team-card.is-editing{border-color:var(--accent);box-shadow:0 0 0 3px #38aae11a;align-items:stretch;padding:16px}.team-card-body{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1;cursor:pointer;width:100%}.team-card-body:hover .team-card-name{color:var(--accent)}.team-card-name{font-size:13px;font-weight:600;color:var(--text);text-align:center}.team-card-meta{font-size:11px;color:var(--muted);text-align:center}.team-card-avatars{display:flex;justify-content:center;margin-top:4px}.team-card-actions{display:flex;gap:4px;justify-content:center;width:100%;border-top:1px solid var(--border);padding-top:10px;margin-top:2px}.team-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;background:#38aae1;color:#fff;font-size:14px;font-weight:700;flex-shrink:0}.team-name-input{padding:6px 10px;border:1px solid var(--accent);border-radius:var(--radius);font-size:16px;font-weight:600;color:var(--text);background:var(--surface);font-family:inherit;box-shadow:0 0 0 3px #38aae11f}.team-name-input:focus{outline:none}.admin-subnav{display:flex;gap:4px;margin-bottom:24px;border-bottom:1px solid var(--border);padding-bottom:0}.admin-subnav button{padding:8px 18px;border:none;background:none;color:var(--muted);font-size:13px;font-weight:600;border-radius:0;border-bottom:2px solid transparent;margin-bottom:-1px;letter-spacing:.01em}.admin-subnav button:hover{background:none;color:var(--accent);border-bottom-color:#38aae166}.admin-subnav button.active{color:var(--accent);border-bottom-color:var(--accent);background:none}.device-stats-row{display:flex;align-items:center;gap:8px;padding:14px 24px 16px;flex-wrap:wrap}.device-stat-group{display:flex;gap:8px;flex-wrap:wrap}.device-stats-divider{width:1px;height:48px;background:var(--border);margin:0 6px;flex-shrink:0}.device-stat-card{display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px 16px 8px;min-width:68px;gap:3px;transition:box-shadow .15s}.device-stat-card.device-stat-warn{border-color:#f59e0b;background:#fffdf5}.device-stat-card.device-stat-brand{border-color:var(--accent);background:#f0f9ff}.device-stat-value{font-size:24px;font-weight:700;line-height:1;color:var(--text)}.device-stat-value.device-stat-active{color:var(--accent)}.device-stat-warn .device-stat-value{color:#d97706}.device-stat-brand .device-stat-value{color:var(--accent-dark)}.device-stat-label{font-size:10px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.report-page{padding:20px 24px}.report-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:12px}.report-title{font-size:16px;font-weight:600;color:var(--text)}.report-table{width:100%;margin-bottom:0}.report-user-block{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin-bottom:12px}.report-user-header{display:flex;align-items:center;gap:10px;border-radius:4px;padding:2px 4px;margin:-2px -4px;-webkit-user-select:none;user-select:none}.report-user-header:hover{background:var(--bg)}.report-user-totals{margin-left:auto;display:flex;gap:8px;align-items:center;font-size:14px;font-weight:600}.report-cost-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.report-section-title{font-size:13px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px}.report-bar-wrap{display:flex;align-items:center;gap:8px;min-width:100px}.report-bar{height:6px;background:var(--accent);border-radius:3px;min-width:2px;max-width:80px;transition:width .3s}.report-total-row td{border-top:2px solid var(--border);padding-top:8px}.report-row-overdue td{background:#fef2f2}.report-row-soon td{background:#fffbeb}.report-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600}.report-badge-overdue{background:#fee2e2;color:#dc2626}.report-badge-soon{background:#fef3c7;color:#d97706}@media (max-width: 768px){.app-header{padding:10px 12px 6px;gap:8px;height:auto;flex-wrap:wrap}.app-header h1{font-size:13px}.hamburger-btn{display:flex}.app-header nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;background:var(--surface);border-bottom:3px solid #38aae1;padding:8px 12px 12px;gap:2px;z-index:50;box-shadow:0 4px 16px #25242c1f}.app-header nav.mobile-open{display:flex}.app-header nav button{padding:10px 14px;font-size:14px;text-align:left;width:100%;height:auto;border-bottom:none;border-left:3px solid transparent;border-radius:0}.app-header nav button:hover{border-left-color:var(--border);border-bottom:none;color:var(--text);background:none}.app-header nav button.active{border-left-color:var(--accent);border-bottom:none;background:#f0f7fd;color:var(--accent)}.app-header nav button[style]{margin-left:0!important}.app-main{padding:12px}.stat-cards{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}.dashboard-grid{grid-template-columns:1fr}.sub-detail-grid{grid-template-columns:1fr 1fr}.admin-subnav{overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;padding-bottom:0}.admin-subnav button{white-space:nowrap;flex-shrink:0;padding:8px 12px;font-size:13px}.toolbar{flex-wrap:wrap;gap:8px}.toolbar .filters{flex-wrap:wrap}.sub-table .col-vendor,.sub-table .col-cycle,.sub-table .col-category,.sub-table .col-team,.sub-table .col-users{display:none}.sub-table td,.sub-table th{padding:10px 8px}.user-detail{padding:0}.user-detail-header{flex-wrap:wrap;gap:8px}.modal{padding:16px;width:100%;max-width:100%;border-radius:6px 6px 0 0;align-self:flex-end}.modal-overlay{align-items:flex-end}.form-grid{grid-template-columns:1fr}.form-grid .full-width{grid-column:1}.user-grid{grid-template-columns:1fr}.team-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.team-member-grid{grid-template-columns:1fr}.users-toolbar{flex-wrap:wrap}.users-toolbar .user-search{flex:1;min-width:0}.back-btn{margin-bottom:12px}}.team-member-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px}.team-member-card{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:border-color .15s,background .15s;-webkit-user-select:none;user-select:none}.team-member-card:hover{border-color:#cbd5e1;background:var(--bg)}.team-member-card.is-member{border-color:var(--accent);background:#f0f7fd}.team-member-card .user-card-text{flex:1;min-width:0}.member-toggle{font-size:14px;font-weight:700;color:var(--muted);flex-shrink:0}.team-member-card.is-member .member-toggle{color:var(--accent)}.add-user-form{display:flex;gap:8px;margin-bottom:16px}.add-user-form input{flex:1;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius);font-size:14px;color:var(--text);background:var(--surface);font-family:inherit}.add-user-form input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #38aae11f}.field-label{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:8px}.tier-list{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.tier-row{display:flex;align-items:center;gap:8px;padding:7px 10px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius)}.tier-row-name{flex:1;font-size:13px;font-weight:500}.tier-row-cost{font-size:13px;color:var(--accent);font-weight:700}.tier-remove{padding:2px 7px;font-size:15px;line-height:1}.add-tier-row{display:flex;gap:8px}.add-tier-row input{padding:7px 10px;border:1px solid var(--border);border-radius:var(--radius);font-size:13px;color:var(--text);background:var(--surface);font-family:inherit}.add-tier-row input:first-child{flex:1}.add-tier-row input:nth-child(2){width:90px}.add-tier-row input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #38aae11f}.equip-add-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.equip-add-row select,.equip-add-row input{padding:7px 10px;border:1px solid var(--border);border-radius:var(--radius);font-size:13px;color:var(--text);background:var(--surface);font-family:inherit}.equip-add-row select{flex:1;min-width:90px;cursor:pointer}.equip-add-row select:disabled{opacity:.5;cursor:not-allowed}.equip-add-row select:focus,.equip-add-row input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #38aae11f}.starter-budget-summary{display:flex;flex-wrap:wrap;gap:8px 24px;padding:12px 14px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);font-size:13px;color:var(--muted)}.starter-budget-summary strong{color:var(--text)}.user-assign-grid{display:flex;flex-direction:column;gap:6px}.user-assign-row{display:flex;align-items:center;gap:10px;padding:7px 10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.user-assign-row.is-assigned{border-color:var(--accent);background:#f0f7fd}.user-assign-check{display:flex;align-items:center;gap:8px;flex:1;cursor:pointer;font-size:13px;font-weight:400;color:var(--text);flex-direction:row}.user-assign-check input[type=checkbox]{width:14px;height:14px;accent-color:var(--accent);cursor:pointer}.tier-select{padding:5px 8px;border:1px solid var(--border);border-radius:var(--radius);font-size:12px;color:var(--text);background:var(--surface);font-family:inherit;cursor:pointer}.avatar-stack-wrap{position:relative;display:inline-block}.avatar-stack{display:flex;align-items:center;cursor:default}.avatar-stack .user-avatar{margin-left:-7px;border:2px solid var(--surface);transition:transform .1s}.avatar-stack .user-avatar:first-child{margin-left:0}.avatar-stack-wrap:hover .user-avatar{transform:translateY(-1px)}.avatar-overflow{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--bg);border:2px solid var(--surface);color:var(--muted);font-size:10px;font-weight:600;margin-left:-7px;outline:1px solid var(--border)}.user-popover{position:absolute;top:calc(100% + 8px);right:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 24px #25242c24;padding:8px;min-width:190px;z-index:50;display:flex;flex-direction:column;gap:5px}.user-popover-row{display:flex;align-items:center;gap:8px;font-size:13px;white-space:nowrap;padding:2px 0}.user-popover-name{flex:1}.user-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-top:8px}.user-card-small{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.user-card-small-info{display:flex;flex-direction:column;flex:1;min-width:0}.user-card-small-name{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-card-small-email{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-card-small-tier{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0}.user-card-small-cost{font-size:12px;font-weight:600;color:var(--text)}.tier-badge{display:inline-block;padding:1px 6px;border-radius:3px;background:#f1f5f9;color:var(--muted);font-size:11px;font-weight:500}.catalog-list{display:flex;flex-direction:column;gap:8px}.catalog-brand{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.catalog-brand-header{display:flex;align-items:center;gap:10px;padding:10px 14px;font-weight:600}.catalog-expand-btn{background:none;border:none;cursor:pointer;font-size:13px;color:var(--muted);padding:0 2px;line-height:1}.catalog-brand-name{font-size:14px}.catalog-models{border-top:1px solid var(--border);padding:4px 0}.catalog-model-row{display:flex;align-items:center;gap:8px;padding:6px 14px 6px 36px}.catalog-model-row:hover{background:var(--bg)}.catalog-model-name{flex:1;font-size:13px}.catalog-add-model{display:flex;gap:8px;padding:8px 14px 8px 36px;border-top:1px solid var(--border)}.catalog-add-model input{flex:1}.breakdown-bar-bg{height:6px;background:var(--border);border-radius:99px;overflow:hidden}.breakdown-bar{height:100%;background:var(--accent);border-radius:99px;transition:width .3s ease}.breakdown-bar-mobile{background:#10b981}.breakdown-bar-server{background:#f59e0b}.device-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.device-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:8px;transition:border-color .15s,box-shadow .15s;cursor:pointer}.device-card:hover{border-color:var(--accent);box-shadow:0 2px 10px #38aae11a}.device-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.device-card-icon{width:36px;height:36px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}.device-card-icon-laptop{background:#e0f4ff}.device-card-icon-mobile{background:#d1fae5}.device-card-icon-server{background:#fef3c7}.device-card-name{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0;padding-top:8px}.device-card-model{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.device-card-footer{display:flex;align-items:center;justify-content:space-between;gap:4px;margin-top:auto}.device-card-user{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--muted);min-width:0;overflow:hidden}.device-card-user span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.device-card-actions{display:flex;gap:4px;flex-shrink:0;opacity:0;transition:opacity .15s}.device-card:hover .device-card-actions{opacity:1}.sub-name-link{cursor:pointer;color:var(--accent)}.sub-name-link:hover{text-decoration:underline}.sub-detail-icon{width:44px;height:44px;border-radius:8px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;flex-shrink:0}.sub-detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:20px 0}.sub-detail-card{background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--accent);border-radius:var(--radius);padding:16px 20px;display:flex;flex-direction:column;gap:4px}.sub-detail-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.sub-detail-value{font-size:22px;font-weight:700}.sub-detail-sub{font-size:12px;color:var(--muted)}.sub-detail-meta{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:4px 0;margin-bottom:24px}.sub-detail-row{display:flex;align-items:center;gap:16px;padding:10px 20px;border-bottom:1px solid var(--border)}.sub-detail-row:last-child{border-bottom:none}.sub-detail-row .sub-detail-label{min-width:80px}.form-section-divider{height:1px;background:var(--border);margin:2px 0}.per-seat-row{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}.per-seat-cost-wrap{display:flex;gap:12px;align-items:flex-end;flex-shrink:0}.toggle-label{display:flex;align-items:center;gap:10px;cursor:pointer;font-weight:400;text-transform:none;letter-spacing:normal;font-size:14px;color:var(--text)}.toggle-title{display:block;font-size:13px;font-weight:600;color:var(--text);line-height:1.3}.toggle-sub{display:block;font-size:11px;color:var(--muted);margin-top:1px}.toggle-switch{position:relative;flex-shrink:0}.toggle-switch input[type=checkbox]{position:absolute;opacity:0;width:0;height:0}.toggle-track{display:block;width:36px;height:20px;background:var(--border);border-radius:10px;cursor:pointer;transition:background .2s;position:relative}.toggle-switch input:checked+.toggle-track{background:var(--accent)}.toggle-thumb{position:absolute;top:3px;left:3px;width:14px;height:14px;background:#fff;border-radius:50%;transition:transform .2s;box-shadow:0 1px 3px #0003}.toggle-switch input:checked+.toggle-track .toggle-thumb{transform:translate(16px)}.toggle-label input[type=checkbox]{width:auto;margin:0;cursor:pointer}.tier-range-badge{display:inline-block;padding:1px 6px;border-radius:3px;background:#fef3c7;color:#d97706;font-size:11px;font-weight:600}.qty-badge{display:inline-block;padding:2px 8px;border-radius:3px;background:#e0f4ff;color:var(--accent);font-size:12px;font-weight:600}.device-status{display:inline-block;padding:2px 8px;border-radius:3px;font-size:12px;font-weight:600;letter-spacing:.03em}.status-active{background:#e0f4ff;color:#2494c8}.status-spare{background:#f1f5f9;color:#64748b}.status-repair{background:#fef9c3;color:#a16207}.status-retired{background:#fde8e8;color:#c00000}.system-badge{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:3px;background:#e0f4ff;color:#2494c8;font-size:10px;font-weight:700;vertical-align:middle;letter-spacing:.05em;text-transform:uppercase}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}.login-card{background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--accent);border-radius:var(--radius);padding:48px 40px;width:380px;max-width:95vw;display:flex;flex-direction:column;align-items:center;gap:16px;box-shadow:0 8px 32px #25242c1a}.login-logo{margin-bottom:8px}.login-logo img{height:44px;width:auto}.login-tagline{font-size:13px;color:var(--muted);text-align:center;margin-bottom:8px}.login-btn{display:flex;align-items:center;gap:10px;padding:10px 20px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius);font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;width:100%;justify-content:center;transition:background .15s}.login-btn:hover{background:var(--accent-dark)}.login-hint{font-size:11px;color:var(--muted);text-align:center}.logout-btn{display:flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--muted);font-size:12px;font-family:inherit;cursor:pointer;flex-shrink:0;white-space:nowrap;transition:color .15s,border-color .15s;max-width:180px}.logout-btn:hover{color:var(--danger);border-color:var(--danger);background:var(--surface)}.logout-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 768px){.logout-label{display:none}.logout-btn{padding:5px 8px}}[data-theme=dark]{--bg: #211e29;--surface: #322f3a;--border: #463f52;--text: #e8e8ee;--muted: #9590a0;--accent: #38aae1;--accent-dark: #2494c8;--danger: #f87171}[data-theme=dark] body{background:var(--bg)}[data-theme=dark] .app-header{border-bottom-color:#38aae1}[data-theme=dark] .sub-table th{background:#1b1a21}[data-theme=dark] .sub-table tr:hover td{background:#2f2e38}[data-theme=dark] .chip,[data-theme=dark] .tier-badge,[data-theme=dark] .system-badge{background:#1f3a4f;color:#38aae1}[data-theme=dark] .tier-range-badge{background:#78350f;color:#fcd34d}[data-theme=dark] .qty-badge{background:#1f3a4f;color:#38aae1}[data-theme=dark] .badge-active{background:#1a3d52;color:#38aae1}[data-theme=dark] .badge-paused{background:#78350f;color:#fcd34d}[data-theme=dark] .badge-cancelled{background:#3a3847;color:var(--muted)}[data-theme=dark] .badge-starter-pending{background:#78350f;color:#fcd34d}[data-theme=dark] .badge-starter-ordered{background:#1a3d52;color:#38aae1}[data-theme=dark] .badge-starter-complete{background:#14422a;color:#4ade80}[data-theme=dark] .badge-urgent{background:#4a1a1a;color:#f87171}[data-theme=dark] .badge-soon{background:#78350f;color:#fcd34d}[data-theme=dark] .badge-expired{background:#3a3847;color:var(--muted)}[data-theme=dark] .status-active{background:#1a3d52;color:#38aae1}[data-theme=dark] .status-spare{background:#3a3847;color:#8a8a9a}[data-theme=dark] .status-repair{background:#78350f;color:#fcd34d}[data-theme=dark] .status-retired{background:#4a1a1a;color:#f87171}[data-theme=dark] .user-popover{background:#2f2e38;border-color:var(--border);box-shadow:0 4px 16px #00000080}[data-theme=dark] .catalog-model-row:hover{background:#2f2e38}[data-theme=dark] .catalog-brand{background:var(--surface)}[data-theme=dark] .breakdown-bar-bg{background:#3a3847}[data-theme=dark] .modal-overlay{background:#000000b3}[data-theme=dark] .modal{border-top-color:var(--accent)}[data-theme=dark] .list-row:hover{background:#2f2e38}[data-theme=dark] .user-card:hover,[data-theme=dark] .team-card:hover{box-shadow:0 1px 6px #0006;border-color:var(--accent)}[data-theme=dark] .team-member-card:hover{background:#2f2e38}[data-theme=dark] .team-member-card.is-member,[data-theme=dark] .user-assign-row.is-assigned{background:#1a3d52}[data-theme=dark] .user-detail-header{border-left-color:var(--accent)}[data-theme=dark] .sub-detail-card{border-top-color:var(--accent)}[data-theme=dark] .stat-card:hover{border-top-color:var(--accent);box-shadow:0 2px 8px #38aae11a}[data-theme=dark] .device-card-icon-laptop{background:#1a3d52}[data-theme=dark] .app-header nav button.active{background:#38aae11a}[data-theme=dark] .per-seat-row{background:#1b1a21;border-color:var(--border)}[data-theme=dark] .form-section-divider{background:var(--border)}[data-theme=dark] .report-user-block{background:var(--surface);border-color:var(--border)}[data-theme=dark] .report-user-header:hover{background:#2f2e38}[data-theme=dark] .report-row-soon td{background:#3a2e1a}[data-theme=dark] .report-badge-overdue{background:#4a1a1a;color:#f87171}[data-theme=dark] .report-badge-soon{background:#78350f;color:#fcd34d}[data-theme=dark] .report-total-row td{border-top-color:var(--border)}[data-theme=dark] .report-bar{background:var(--accent)}[data-theme=dark] .device-stat-card{background:var(--surface);border-color:var(--border)}[data-theme=dark] .device-stat-card.device-stat-warn{background:#3a2e1a;border-color:#92400e}[data-theme=dark] .device-stat-card.device-stat-warn .device-stat-value{color:#fcd34d}[data-theme=dark] .device-stat-card.device-stat-brand{background:#1a3d52;border-color:#2494c8}[data-theme=dark] .device-stat-card.device-stat-brand .device-stat-value{color:#38aae1}[data-theme=dark] .device-stats-divider{background:var(--border)}.chart-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:28px 0 14px}.chart-toolbar-left{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.fy-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:7px 30px 7px 12px;font-size:13px;font-weight:600;cursor:pointer;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='3'><path d='M6 9l6 6 6-6'/></svg>");background-repeat:no-repeat;background-position:right 10px center}.fy-select:hover{border-color:var(--accent)}.fy-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #38aae133}.chart-toggle{display:inline-flex;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:3px;gap:2px}.chart-toggle button{padding:6px 14px;border:none;background:none;color:var(--muted);font-size:13px;font-weight:600;border-radius:6px;transition:background .15s,color .15s}.chart-toggle button:hover{color:var(--text)}.chart-toggle button.active{background:var(--surface);color:var(--accent);box-shadow:0 1px 3px #00000014}.spend-chart{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:18px 18px 12px;margin-bottom:24px;box-shadow:0 1px 3px #0000000a}.spend-chart svg{width:100%;height:auto;display:block;overflow:visible}.spend-chart .bar{transition:opacity .15s,filter .15s;cursor:default}.spend-chart .bar:hover{opacity:.82;filter:brightness(1.08)}.chart-legend{display:flex;gap:22px;justify-content:center;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.chart-legend.wrap{gap:14px 18px}.chart-legend span{display:inline-flex;align-items:center}.chart-legend .swatch{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:7px;flex-shrink:0}.chart-legend .swatch.line{height:3px;border-radius:2px}
