@import "https://fonts.googleapis.com/css2?family=Source+Sans+3:wght@400;500;600;700&display=swap";
:root{--gov-navy:#0c2d57;--gov-navy-dark:#071e3d;--gov-navy-mid:#134074;--gov-navy-light:#1a5080;--gov-gold:#c9a227;--gov-saffron:#e67e22;--gov-green:#138808;--primary:#134074;--primary-hover:#0c2d57;--primary-light:#e8eef6;--primary-muted:#b8cfe8;--sidebar-bg:#0c2d57;--sidebar-bg-alt:#134074;--sidebar-text:#b8cfe8;--sidebar-hover:#ffffff14;--bg:#eef2f7;--surface:#fff;--border:#c5d0dc;--border-light:#dce4ed;--text:#1a2b3c;--text-muted:#5a6b7d;--success:#059669;--success-bg:#ecfdf5;--danger:#dc2626;--danger-bg:#fef2f2;--warning:#d97706;--warning-bg:#fffbeb;--shadow-sm:0 1px 3px #0c2d5714;--shadow-md:0 4px 12px #0c2d571a;--shadow-lg:0 10px 25px #0c2d571f;--radius:4px;--radius-sm:4px;--font-xs:12px;--font-sm:13px;--font-md:14px;--font-lg:15px;--pad-xs:.25rem;--pad-sm:.35rem;--pad-md:.5rem;--pad-lg:.65rem;--header-h:42px;--sidebar-w:260px;--gov-stripe-h:4px}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);color:var(--text);min-height:100vh;font-family:"Source Sans 3",-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.45;font-size:var(--font-md)}html{font-size:16px}.gov-top-stripe{height:var(--gov-stripe-h);z-index:200;background:linear-gradient(90deg, var(--gov-saffron) 0%, var(--gov-saffron) 33.33%, #fff 33.33%, #fff 66.66%, var(--gov-green) 66.66%, var(--gov-green) 100%);position:fixed;top:0;left:0;right:0;box-shadow:0 1px 4px #00000026}.dashboard-layout{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-w);background:linear-gradient(180deg, var(--gov-navy-dark) 0%, var(--gov-navy) 45%, var(--gov-navy-mid) 100%);color:var(--sidebar-text);top:var(--gov-stripe-h);z-index:100;border-right:3px solid var(--gov-gold);flex-direction:column;display:flex;position:fixed;bottom:0;left:0;box-shadow:4px 0 20px #071e3d33}.sidebar-brand{background:#00000026;border-bottom:1px solid #ffffff1f;align-items:center;gap:.875rem;padding:.65rem .75rem .6rem;display:flex}.sidebar-brand-icon{background:linear-gradient(145deg, var(--gov-navy-light) 0%, var(--gov-navy-dark) 100%);border-radius:var(--radius);border:2px solid var(--gov-gold);width:38px;height:38px;color:var(--gov-gold);flex-shrink:0;justify-content:center;align-items:center;display:flex;box-shadow:inset 0 1px #ffffff1a}.sidebar-brand-icon svg{width:20px;height:20px}.sidebar-brand-text h1{color:#fff;letter-spacing:.02em;text-transform:uppercase;font-size:.92rem;font-weight:700;line-height:1.25}.sidebar-brand-text span{color:var(--gov-gold);letter-spacing:.04em;text-transform:uppercase;font-size:.68rem;font-weight:500}.sidebar-nav{flex-direction:column;flex:1;gap:.2rem;padding:.45rem .5rem;display:flex;overflow-y:auto}.sidebar-section{letter-spacing:.12em;text-transform:uppercase;color:var(--gov-gold);border-bottom:1px solid #c9a22740;margin-bottom:.25rem;padding:.5rem .875rem .35rem;font-size:.62rem;font-weight:700}.sidebar-link{border-radius:var(--radius-sm);color:var(--sidebar-text);cursor:pointer;background:0 0;border:1px solid #0000;border-left-width:3px;align-items:center;gap:.65rem;width:100%;padding:.45rem .6rem;font-family:inherit;font-size:14px;font-weight:600;text-decoration:none;transition:all .2s;display:flex}.sidebar-link-icon{border-radius:var(--radius-sm);background:#ffffff0f;border:1px solid #ffffff14;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;transition:background .2s;display:flex}.sidebar-link svg{width:18px;height:18px}.sidebar-link:hover{background:var(--sidebar-hover);color:#fff;border-left-color:#c9a22780}.sidebar-link:hover .sidebar-link-icon{background:#ffffff1f;border-color:#c9a2274d}.sidebar-link.active{color:#fff;border-left-color:var(--gov-gold);background:#ffffff1a;border-color:#ffffff1a;box-shadow:inset 0 0 0 1px #c9a22726}.sidebar-link.active .sidebar-link-icon{background:var(--gov-gold);border-color:var(--gov-gold);color:var(--gov-navy-dark);box-shadow:0 2px 6px #0003}.sidebar-link-logout{border-top:1px solid #ffffff14;margin-top:.25rem;padding-top:.85rem}.sidebar-link-logout:hover{color:#fecaca;background:#dc262626;border-left-color:#dc2626}.sidebar-footer{background:#0000001f;border-top:1px solid #ffffff1f;padding:.5rem}.sidebar-system-info{color:#b8cfe8b3;border-top:1px solid #ffffff0f;padding:.5rem .75rem .65rem;font-size:.68rem;line-height:1.5}.sidebar-system-info strong{color:var(--gov-gold);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.2rem;font-size:.62rem;display:block}.dashboard-main{margin-left:var(--sidebar-w);margin-top:var(--gov-stripe-h);min-height:calc(100vh - var(--gov-stripe-h));max-height:calc(100vh - var(--gov-stripe-h));flex-direction:column;flex:1;display:flex;overflow:hidden}.top-header{min-height:var(--header-h);border-bottom:2px solid var(--gov-navy);top:var(--gov-stripe-h);z-index:50;box-shadow:var(--shadow-sm);background:linear-gradient(#fff,#f8fafc);flex-shrink:0;justify-content:space-between;align-items:center;gap:.75rem;padding:.3rem .85rem;display:flex;position:sticky}.top-header-left{flex:1;min-width:0}.top-header-title-row{flex-wrap:wrap;align-items:center;gap:.15rem .65rem;display:flex}.breadcrumb{color:var(--text-muted);flex-shrink:0;align-items:center;gap:.3rem;margin-bottom:0;font-size:12px;display:flex}.breadcrumb svg{opacity:.5;width:12px;height:12px}.breadcrumb-current{color:var(--gov-navy);font-weight:700}.top-header-left h2{color:var(--gov-navy);letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;margin:0;font-size:15px;font-weight:700;line-height:1.2}.top-header-subtitle{color:var(--text-muted);text-transform:none;letter-spacing:normal;font-size:13px;font-weight:400;line-height:1.2}.top-header-subtitle:before{content:"·";color:var(--border);margin-right:.45rem}.top-header-right{flex-shrink:0}.user-badge{background:var(--primary-light);border:1px solid var(--border);border-left:3px solid var(--gov-gold);border-radius:var(--radius-sm);color:inherit;align-items:center;gap:.5rem;padding:.3rem .65rem .3rem .3rem;text-decoration:none;transition:box-shadow .15s,border-color .15s;display:flex}.user-badge:hover{box-shadow:var(--shadow-sm);border-left-color:var(--gov-navy)}.user-avatar{border-radius:var(--radius-sm);background:linear-gradient(145deg, var(--gov-navy-mid), var(--gov-navy-dark));width:28px;height:28px;color:var(--gov-gold);border:1px solid var(--gov-gold);justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:flex}.user-info{flex-direction:column;line-height:1.2;display:flex}.user-name{color:var(--text);font-size:13px;font-weight:600}.user-role{color:var(--text-muted);font-size:11px}.page-content{flex:1;width:100%;max-width:1400px;min-height:0;padding:.65rem .85rem;overflow-y:auto}.page-content.handsets-page-root{flex-direction:column;padding-bottom:.75rem;display:flex;overflow:hidden}.handsets-page{flex-direction:column;flex:1;gap:.75rem;min-height:0;display:flex;overflow:hidden}.handsets-forms-top{overscroll-behavior:contain;flex-direction:column;flex-shrink:0;gap:.5rem;max-height:none;display:flex;overflow:visible}.handsets-forms-top .panel{margin-bottom:0}.handsets-forms-top .panel-header{padding:.3rem .6rem}.handsets-forms-top .panel-header h3{font-size:13px}.handsets-forms-top .add-form{gap:.4rem;padding:.35rem .6rem}.handsets-forms-top .form-field label{margin-bottom:.15rem;font-size:12px}.handsets-forms-top .form-field input{padding:.35rem .55rem;font-size:13px}.handsets-forms-top .btn{padding:.35rem .6rem;font-size:13px}.handsets-forms-top .form-field{min-width:140px}.handsets-table-panel{flex-direction:column;flex:auto;min-height:180px;margin-bottom:0;display:flex;overflow:hidden}.handsets-table-panel .panel-header,.handsets-table-panel .actions{flex-shrink:0}.handsets-table-panel .table-container{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:auto;min-height:0;max-height:none;overflow:auto}.handsets-table-panel .table-container thead th{z-index:2;background:var(--gov-navy-mid);box-shadow:0 2px 0 var(--gov-gold);position:sticky;top:0}.dashboard-footer{background:var(--gov-navy-dark);border-top:3px solid var(--gov-gold);color:#ffffffbf;flex-shrink:0;justify-content:center;align-items:center;gap:.5rem;padding:.6rem 1.25rem;font-size:.78rem;display:flex}.footer-divider{opacity:.4}.stats-row{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.75rem;margin-bottom:1rem;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--gov-navy);border-radius:var(--radius);box-shadow:var(--shadow-sm);flex-direction:column;gap:.35rem;padding:.55rem .75rem;transition:box-shadow .2s;display:flex;position:relative;overflow:hidden}.stat-card:before{display:none}.stat-card:hover{box-shadow:var(--shadow-md);transform:none}.stat-card-success{border-top-color:var(--success)}.stat-card-danger{border-top-color:var(--danger)}.stat-card-primary{border-top-color:var(--gov-gold)}.stat-card-top{justify-content:space-between;align-items:flex-start;display:flex}.stat-icon-wrap{border-radius:var(--radius-sm);background:var(--primary-light);width:40px;height:40px;color:var(--gov-navy);border:1px solid var(--border);justify-content:center;align-items:center;display:flex}.stat-card-success .stat-icon-wrap{background:var(--success-bg);color:var(--success)}.stat-card-danger .stat-icon-wrap{background:var(--danger-bg);color:var(--danger)}.stat-card-primary .stat-icon-wrap{background:var(--primary-light);color:var(--primary)}.stat-icon-wrap svg{width:20px;height:20px}.stat-card .stat-label{font-size:var(--font-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-weight:600}.stat-card .stat-value{color:var(--text);letter-spacing:-.03em;font-size:1.35rem;font-weight:800;line-height:1.1}.stat-card .stat-value.success{color:var(--success)}.stat-card .stat-value.danger{color:var(--danger)}.stat-card .stat-value.primary{color:var(--primary)}.stat-card .stat-sub{color:var(--text-muted);font-size:.75rem}.stats-page-toolbar{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--gov-gold);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.85rem;padding:.55rem .85rem;display:flex}.stats-last-updated{color:var(--text-muted);font-size:.85rem;font-weight:500}.stats-two-col{grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:1rem;display:grid}.stat-breakdown-body{background:#fafbfc;flex-direction:column;gap:1rem;padding:.5rem .75rem;display:flex}.stat-breakdown-row{flex-direction:column;gap:.35rem;display:flex}.stat-breakdown-meta{color:var(--gov-navy);justify-content:space-between;font-size:.85rem;font-weight:600;display:flex}.stat-breakdown-meta em{color:var(--text-muted);font-size:.8rem;font-style:normal;font-weight:500}.stat-breakdown-track{background:var(--border-light);border:1px solid var(--border);border-radius:var(--radius);height:10px;overflow:hidden}.stat-breakdown-fill{border-radius:var(--radius);height:100%;transition:width .4s}.stat-breakdown-success{background:linear-gradient(90deg,#059669,#10b981)}.stat-breakdown-danger{background:linear-gradient(90deg,#dc2626,#ef4444)}.stat-breakdown-primary{background:linear-gradient(90deg, var(--gov-navy-mid), var(--gov-navy-light))}.stat-breakdown-summary{border-top:1px dashed var(--border);color:var(--text-muted);flex-wrap:wrap;gap:1rem 1.5rem;padding-top:.5rem;font-size:.85rem;display:flex}.stat-breakdown-summary strong{color:var(--gov-navy)}.stats-panel-link{align-self:flex-start;margin-top:.25rem;text-decoration:none}.stats-quick-links{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-bottom:1rem;display:grid}.quick-link-card{background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--gov-navy);border-radius:var(--radius);color:inherit;box-shadow:var(--shadow-sm);flex-direction:column;gap:.25rem;padding:.5rem .75rem;text-decoration:none;transition:box-shadow .2s,border-color .2s;display:flex}.quick-link-card:hover{border-top-color:var(--gov-gold);box-shadow:var(--shadow-md)}.quick-link-card strong{color:var(--gov-navy);text-transform:uppercase;letter-spacing:.03em;font-size:.95rem}.quick-link-card span{color:var(--text-muted);font-size:.8rem;line-height:1.45}@media (max-width:900px){.stats-two-col{grid-template-columns:1fr}}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-bottom:1rem;overflow:hidden}.panel-header{border-bottom:2px solid var(--gov-gold);background:linear-gradient(135deg, var(--gov-navy-dark) 0%, var(--gov-navy) 100%);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.4rem .75rem;display:flex}.panel-header h3{color:#fff;letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:.5rem;font-size:14px;font-weight:700;display:flex}.panel-header h3:before{content:"";background:var(--gov-gold);border-radius:var(--radius);width:4px;height:1rem}.panel-header .panel-count{color:#fff;border-radius:var(--radius-sm);letter-spacing:.02em;background:#ffffff1f;border:1px solid #fff3;padding:.3rem .75rem;font-size:12px;font-weight:600}.panel-header-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.actions{border-bottom:1px solid var(--border);background:#f4f7fb;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.45rem .75rem;display:flex}.btn-group{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.btn{border-radius:var(--radius);cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text);align-items:center;gap:.4rem;padding:.35rem .65rem;font-family:inherit;font-size:13px;font-weight:500;text-decoration:none;transition:all .15s;display:inline-flex}.btn:hover{background:var(--bg)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn svg{width:15px;height:15px}.btn-primary{background:linear-gradient(135deg, var(--gov-navy-mid) 0%, var(--gov-navy-dark) 100%);border-color:var(--gov-navy-dark);color:#fff;box-shadow:0 2px 6px #0c2d5740}.btn-primary:hover{background:linear-gradient(135deg, var(--gov-navy) 0%, var(--gov-navy-dark) 100%);transform:none;box-shadow:0 3px 8px #0c2d574d}.btn-secondary{background:var(--surface);color:var(--text)}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger:hover{color:#fff;background:#b91c1c;border-color:#b91c1c}.btn-sm{padding:.3rem .55rem;font-size:12px}.search-box{min-width:240px;position:relative}.search-box svg{color:var(--text-muted);width:16px;height:16px;position:absolute;top:50%;left:.75rem;transform:translateY(-50%)}.search-box input{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);width:100%;color:var(--text);outline:none;padding:.4rem .55rem .4rem 1.85rem;font-family:inherit;font-size:13px}.search-box input:focus{border-color:var(--primary);background:var(--surface);box-shadow:0 0 0 3px #2563eb1a}.table-container{background:#fafbfc;padding:0}.panel>.table-container{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;max-height:min(62vh,100vh - 300px);overflow:auto}.panel>.table-container table{margin-bottom:0}.panel>.table-container thead th{z-index:2;background:var(--gov-navy-mid);box-shadow:0 2px 0 var(--gov-gold);position:sticky;top:0}.modal-panel .table-container{-webkit-overflow-scrolling:touch;max-height:50vh;overflow:auto}.modal-panel .table-container thead th{z-index:2;background:var(--gov-navy-mid);position:sticky;top:0}.table-container-wide table{min-width:1400px}.table-id-thumb-link{line-height:0;display:inline-block}.table-id-thumb{object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--border);vertical-align:middle;width:36px;height:36px}.table-id-thumb-link:hover .table-id-thumb{border-color:var(--gov-navy-mid);box-shadow:var(--shadow-sm)}table{border-collapse:collapse;border:1px solid var(--border);background:var(--surface);width:100%}thead{background:linear-gradient(180deg, var(--gov-navy-mid) 0%, var(--gov-navy-dark) 100%)}th{background:var(--gov-navy-mid);color:#fff;text-transform:uppercase;letter-spacing:.07em;border:1px solid #ffffff26;border-bottom:2px solid var(--gov-gold);text-align:left;white-space:nowrap;padding:.4rem .6rem;font-size:13px;font-weight:700}td{border:1px solid var(--border-light);vertical-align:middle;color:var(--text);padding:.4rem .6rem;font-size:14px}tbody tr{transition:background .12s}tbody tr:nth-child(2n) td{background:#f4f7fb}tbody tr:hover td{background:#e8eef6}tbody tr.row-deleted td{color:var(--text-muted);background:#f3f4f6}tbody tr.row-deleted:hover td{background:#e5e7eb}tbody tr.row-deleted .ip-cell{color:#6b7280;text-decoration:line-through}.icon-btn.restore{color:#fff;background:#2563eb;border-color:#1d4ed8}.icon-btn.restore:hover{color:#fff;background:#1d4ed8;border-color:#1e40af}tbody tr:last-child td{border-bottom:1px solid var(--border)}.ip-cell{color:var(--gov-navy-mid);font-family:ui-monospace,Consolas,monospace;font-weight:600}.datetime-cell{color:var(--text-muted);white-space:nowrap;font-size:13px}.datetime-cell.cell-expired{color:var(--danger,#dc2626);font-weight:600}.version-cell{color:var(--text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13px}.license-extend-btn{margin-top:.5rem}.modal-section-divider{border:none;border-top:1px solid var(--border);margin:1.25rem 0}.modal-section-title{color:var(--gov-navy-mid,var(--text));margin:0 0 .75rem;font-size:1rem}.release-info-box{border-radius:var(--radius);background:var(--surface-elevated,#00000008);border:1px solid var(--border);margin-bottom:1rem;padding:.75rem 1rem;font-size:.9rem}.api-docs-body{padding:0 .25rem .5rem}.api-docs-base{margin:0 0 1rem}.api-docs-endpoint{border-bottom:1px solid var(--border);margin-bottom:1.25rem;padding-bottom:1rem}.api-docs-endpoint:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.api-docs-endpoint-head{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.35rem;display:flex}.api-docs-method{letter-spacing:.04em;border-radius:var(--radius);color:#fff;background:var(--gov-navy-mid,#1e3a5f);padding:.15rem .45rem;font-size:11px;font-weight:700}.api-docs-method-get{background:#0f766e}.api-docs-method-post{background:#1d4ed8}.api-docs-method-put{background:#a16207}.api-docs-method-delete{background:#b91c1c}.api-docs-path{word-break:break-all;font-size:.85rem}.api-docs-badge{border-radius:var(--radius);color:var(--text-muted);background:#0000000f;padding:.1rem .4rem;font-size:11px}.api-docs-code{border-radius:var(--radius);background:var(--surface-elevated,#00000008);border:1px solid var(--border);white-space:pre-wrap;word-break:break-word;margin:.4rem 0 0;padding:.75rem 1rem;font-size:.8rem;overflow:auto}.release-info-box p{margin:.25rem 0}.analyzer-release-form code{word-break:break-all;font-size:.8rem}.status-badge{border-radius:var(--radius);align-items:center;gap:.35rem;padding:.15rem .5rem;font-size:12px;font-weight:600;display:inline-flex}.status-active{color:#fff;background:#059669;border:1px solid #047857}.status-inactive{color:#fff;background:#dc2626;border:1px solid #b91c1c}.status-deleted{color:#fff;background:#6b7280;border:1px solid #4b5563}.status-active:before,.status-inactive:before,.status-deleted:before{content:"";background:#fff;border-radius:50%;width:6px;height:6px}.action-btns{flex-wrap:nowrap;align-items:center;gap:.35rem;display:flex}.actions-cell{white-space:nowrap;width:1%}.icon-btn{border:1px solid var(--border);background:var(--surface);width:26px;min-width:26px;height:26px;min-height:26px;color:var(--text-muted);cursor:pointer;border-radius:var(--radius);flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:0;line-height:0;text-decoration:none;transition:all .15s;display:inline-flex}.icon-btn svg{flex-shrink:0;width:14px;height:14px}.icon-btn-view{background:var(--gov-navy-mid);border-color:var(--gov-navy);color:#fff}.icon-btn-view:hover{background:var(--gov-navy-dark);border-color:var(--gov-navy-dark);color:#fff}.icon-btn.toggle-active{color:#fff;background:#059669;border-color:#047857}.icon-btn.toggle-active:hover{color:#fff;background:#047857;border-color:#065f46}.icon-btn.toggle-inactive{color:#fff;background:#d97706;border-color:#b45309}.icon-btn.toggle-inactive:hover{color:#fff;background:#b45309;border-color:#92400e}.icon-btn.delete{color:#fff;background:#dc2626;border-color:#b91c1c}.icon-btn.delete:hover{color:#fff;background:#b91c1c;border-color:#991b1b}.icon-btn.edit{background:var(--primary-light);border-color:var(--primary);color:var(--primary)}.icon-btn.edit:hover{background:var(--primary);border-color:var(--primary);color:#fff}.icon-btn:not(.toggle-active):not(.toggle-inactive):not(.delete):not(.edit):not(.icon-btn-view):not(.restore):hover{background:var(--bg);color:var(--text)}.pagination-footer{border-top:2px solid var(--border);background:#f4f7fb;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.45rem .75rem;display:flex}.page-info{color:var(--text-muted);font-size:13px;font-weight:500}.pagination-tools{align-items:center;gap:.5rem;display:flex}.page-num{color:var(--gov-navy);background:var(--surface);border-radius:var(--radius-sm);border:1px solid var(--border);padding:.35rem .75rem;font-size:13px;font-weight:600}.loading-row td{text-align:center;color:var(--text-muted);padding:1.25rem}.spinner{border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:28px;height:28px;margin:0 auto .75rem;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;color:var(--text-muted);padding:1.25rem}.empty-state svg{opacity:.4;width:40px;height:40px;margin-bottom:.75rem}.empty-state p{font-size:var(--font-sm)}input[type=checkbox]{width:15px;height:15px;accent-color:var(--primary);cursor:pointer}.toast{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--success);color:var(--text);border-radius:var(--radius);z-index:1000;font-size:var(--font-sm);min-width:200px;padding:.55rem .85rem;font-weight:500;transition:transform .35s;position:fixed;bottom:1rem;right:1rem;transform:translate(150%);box-shadow:0 4px 20px #0000001a}.toast.show{transform:translate(0)}.toast.error{border-left-color:var(--danger)}.login-page{min-height:100vh;padding:2rem;padding-top:calc(2rem + var(--gov-stripe-h));background:linear-gradient(135deg,#e8eef6 0%,#eef2f7 50%,#f4f7fb 100%);justify-content:center;align-items:center;display:flex}.login-container{width:100%;max-width:420px}.login-box{background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--gov-gold);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:1.5rem 1.25rem}.login-logo{background:var(--gov-navy-dark);border:2px solid var(--gov-gold);border-radius:var(--radius);width:48px;height:48px;color:var(--gov-gold);justify-content:center;align-items:center;margin:0 auto 1.25rem;display:flex}.login-logo svg{width:24px;height:24px}.login-box h2{text-align:center;color:var(--gov-navy);text-transform:uppercase;letter-spacing:.03em;margin-bottom:.35rem;font-size:1.2rem;font-weight:700}.login-box .subtitle{color:var(--text-muted);text-align:center;margin-bottom:1.75rem;font-size:.85rem}.input-group{margin-bottom:1rem}.input-group label{color:var(--text);margin-bottom:.35rem;font-size:.8rem;font-weight:500;display:block}.input-group input{border:1px solid var(--border);border-radius:var(--radius);width:100%;font-size:var(--font-sm);color:var(--text);background:var(--surface);outline:none;padding:.45rem .65rem;font-family:inherit}.input-group input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}.btn-login{justify-content:center;width:100%;margin-top:.5rem;padding:.7rem;font-size:.9rem}.login-error{background:var(--danger-bg);border-radius:var(--radius);color:var(--danger);text-align:center;border:1px solid #fecaca;margin-top:.75rem;padding:.65rem .875rem;font-size:.85rem}.login-footer{text-align:center;color:var(--text-muted);margin-top:1.25rem;font-size:.75rem}.add-form{border-top:1px solid var(--border-light);background:#fafbfc;flex-wrap:wrap;align-items:flex-end;gap:.5rem;padding:.5rem .75rem;display:flex}.form-field{flex:1;min-width:180px}.form-field label{color:var(--gov-navy);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.2rem;font-size:12px;font-weight:700;display:block}.form-field input{border:1px solid var(--border);border-radius:var(--radius);outline:none;width:100%;padding:.4rem .6rem;font-family:inherit;font-size:14px}.form-field input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}.form-field select.form-select,.form-select{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;color:var(--text);outline:none;padding:.4rem .6rem;font-family:inherit;font-size:14px}.form-field select.form-select:focus,.form-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}.profile-form{border-top:1px solid var(--border-light);background:#fafbfc;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.5rem;padding:.5rem .75rem;display:grid}.profile-form.profile-form-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.profile-form.profile-form-cols-3 .form-field-span-full{grid-column:1/-1}.photo-preview-wrap{flex-direction:column;align-items:flex-start;gap:.5rem;margin-top:.5rem;display:flex}.id-doc-preview{border-radius:var(--radius);border:1px solid var(--border);object-fit:cover;max-width:180px;max-height:120px}.profile-form .form-field{min-width:0}.profile-form-actions{flex-wrap:wrap;grid-column:1/-1;gap:.5rem;padding-top:.25rem;display:flex}.modal-form{max-height:70vh;overflow-y:auto}.modal-overlay{z-index:1000;background:#0f172a73;justify-content:center;align-items:center;padding:.65rem;display:flex;position:fixed;inset:0}.modal-panel{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-lg);flex-direction:column;width:min(900px,100%);max-height:90vh;display:flex;overflow:hidden}.modal-panel-sm{width:min(480px,100%)}.modal-panel-wide{width:min(1100px,100%)}.modal-panel .panel-header{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.modal-loading{text-align:center;color:var(--text-muted);flex-direction:column;align-items:center;gap:.75rem;padding:2rem 1rem;display:flex}.download-section{border-top:1px solid var(--border-light);background:#fafbfc;padding:.5rem .75rem}.download-section-desc{color:var(--text-muted);margin-bottom:.85rem;font-size:.85rem;line-height:1.5}.app-name-select{flex-direction:column;gap:.5rem;display:flex}.app-name-manual-input{border:1px solid var(--border);border-radius:var(--radius);outline:none;width:100%;padding:.55rem .75rem;font-family:inherit;font-size:.85rem}.app-name-manual-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}.settings-info-body{background:#fafbfc;flex-direction:column;gap:.75rem;padding:.5rem .75rem;display:flex}.settings-info-row{border-bottom:1px solid var(--border-light);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.65rem 0;font-size:.9rem;display:flex}.settings-info-row:last-child{border-bottom:none}.settings-info-row span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:600}.settings-info-row strong{color:var(--gov-navy)}.settings-muted{color:var(--text-muted);font-size:.9rem}.settings-form{background:#fafbfc;flex-direction:column;gap:1rem;max-width:480px;padding:.5rem .75rem;display:flex}.settings-form .form-field{min-width:100%}.settings-form .form-field input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:100%;color:var(--text);outline:none;padding:.55rem .75rem;font-family:inherit;font-size:.9rem}.settings-form .form-field input:focus{border-color:var(--gov-navy-mid);box-shadow:0 0 0 3px #1340741f}.settings-hint{color:var(--text-muted);margin-top:-.35rem;font-size:.8rem}.analyzer-gate-body,.analyzer-unlocked-body{padding:2rem 1.5rem}.analyzer-gate-body{text-align:center;max-width:520px;margin:0 auto}.analyzer-gate-icon{background:var(--primary-light);border-radius:var(--radius);width:64px;height:64px;color:var(--primary);justify-content:center;align-items:center;margin:0 auto 1rem;display:flex}.analyzer-gate-icon svg{width:32px;height:32px}.analyzer-gate-body h4{margin-bottom:.5rem;font-size:1.15rem;font-weight:700}.analyzer-gate-desc{color:var(--text-muted);margin-bottom:1.5rem;font-size:.85rem;line-height:1.6}.analyzer-verify-form{flex-direction:column;align-items:stretch;gap:.75rem;display:flex}.analyzer-search{min-width:100%}.analyzer-error{background:var(--danger-bg);border-radius:var(--radius);color:var(--danger);text-align:left;border:1px solid #fecaca;padding:.65rem .875rem;font-size:.85rem}.analyzer-hint{color:var(--text-muted);margin-top:1.25rem;font-size:.75rem}.analyzer-success-banner{background:var(--success-bg);border-radius:var(--radius-sm);color:var(--success);border:1px solid #a7f3d0;align-items:center;gap:.75rem;margin-bottom:1.5rem;padding:1rem 1.25rem;display:flex}.analyzer-success-banner svg{flex-shrink:0;width:24px;height:24px}.analyzer-tool-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);gap:1.25rem;margin-bottom:1.25rem;padding:1.5rem;display:flex}.analyzer-tool-icon{background:linear-gradient(135deg, var(--primary), #818cf8);border-radius:var(--radius);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;display:flex}.analyzer-tool-icon svg{width:28px;height:28px}.analyzer-tool-card h4{margin-bottom:.35rem;font-size:1rem;font-weight:700}.analyzer-tool-card p{color:var(--text-muted);margin-bottom:.75rem;font-size:.85rem}.analyzer-steps{text-align:left;color:var(--text);padding-left:1.25rem;font-size:.85rem;line-height:1.8}.analyzer-steps code{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);padding:.15rem .4rem;font-size:.8rem}.analyzer-desktop-hint code{background:var(--bg);border-radius:var(--radius);border:1px solid var(--border);padding:.15rem .4rem;font-size:.85rem}@media (max-width:768px){.sidebar{width:64px;top:var(--gov-stripe-h)}.sidebar-section,.sidebar-brand-text,.sidebar-link>span:last-child,.sidebar-system-info,.user-info,.breadcrumb{display:none}.sidebar-brand{justify-content:center;padding:1rem}.sidebar-link{justify-content:center;padding:.65rem}.dashboard-main{margin-left:64px;margin-top:var(--gov-stripe-h)}.top-header{padding:.35rem .75rem}.top-header-subtitle{display:none}.top-header-left h2{white-space:normal}.page-content{padding:.5rem}.actions{flex-direction:column;align-items:stretch}.search-box{min-width:100%}.stats-row{grid-template-columns:repeat(2,1fr)}.panel>.table-container{max-height:min(50vh,100vh - 240px)}.handsets-forms-top{max-height:none}.handsets-table-panel{min-height:140px}}.table-link{color:var(--gov-navy-mid);font-weight:600;text-decoration:none}.table-link:hover{color:var(--gov-gold-dark,#b8860b);text-decoration:underline}.handset-detail-page{flex-direction:column;gap:.75rem;display:flex}.detail-back-row{margin-bottom:.25rem}.detail-back-link{text-decoration:none}.detail-loading{color:var(--text-muted);justify-content:center;align-items:center;gap:.75rem;padding:2.5rem;display:flex}.handset-detail-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.handset-detail-title h3{color:var(--gov-navy-dark);margin:0 0 .25rem;font-size:1.25rem}.handset-detail-subtitle{color:var(--text-muted);margin:0;font-size:.85rem}.handset-detail-header-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.handset-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.handset-detail-section .panel-header{margin-bottom:.5rem}.detail-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem 1.25rem;padding:0 .25rem .5rem;display:grid}.detail-field{flex-direction:column;gap:.2rem;display:flex}.detail-field-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:.7rem;font-weight:700}.detail-field-value{color:var(--text);word-break:break-word;font-size:.9rem}.detail-id-doc{padding:.5rem .25rem .75rem}.detail-id-doc-link{color:var(--gov-navy-mid);flex-direction:column;align-items:flex-start;gap:.5rem;font-size:.85rem;font-weight:600;text-decoration:none;display:inline-flex}.detail-id-doc-img{object-fit:contain;border:1px solid var(--border);border-radius:var(--radius-sm);background:#f8f9fa;max-width:100%;max-height:320px}.detail-id-doc-link:hover .detail-id-doc-img{border-color:var(--gov-navy-mid);box-shadow:var(--shadow-sm)}.detail-empty-doc{color:var(--text-muted);margin:0;padding:.5rem .25rem .75rem;font-size:.9rem}@media (max-width:900px){.profile-form.profile-form-cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}.handset-detail-grid,.detail-fields{grid-template-columns:1fr}.handset-detail-header{flex-direction:column}}@media (max-width:600px){.profile-form.profile-form-cols-3{grid-template-columns:1fr}}.ip-resolver-info-body{background:#fafbfc;flex-direction:column;gap:.65rem;padding:.65rem .85rem;display:flex}.ip-resolver-desc{font-size:var(--font-sm);color:var(--text-muted);margin:0;line-height:1.5}.ip-resolver-api-row{font-size:var(--font-sm);flex-wrap:wrap;align-items:center;gap:.4rem .65rem;display:flex}.ip-resolver-api-label{color:var(--gov-navy);min-width:7rem;font-weight:700;font-size:var(--font-xs);text-transform:uppercase;letter-spacing:.04em}.ip-resolver-api-url,.ip-resolver-api-row code{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-xs);word-break:break-all;padding:.2rem .45rem}.ip-resolver-api-hint{color:var(--text-muted);font-size:var(--font-xs)}.ip-resolver-actions{padding-top:.25rem}.ip-resolver-test-form{border-top:1px solid var(--border-light);background:#fafbfc;flex-wrap:wrap;align-items:flex-end;gap:.5rem;padding:.65rem .85rem;display:flex}.ip-resolver-test-form .form-field{flex:1;min-width:200px}.ip-resolver-test-result{border-radius:var(--radius);border:1px solid var(--border);font-size:var(--font-sm);flex-direction:column;gap:.2rem;margin:0 .85rem .75rem;padding:.55rem .75rem;display:flex}.ip-resolver-test-result.ok{background:var(--success-bg);color:#166534;border-color:#86efac}.ip-resolver-test-result.fail{background:var(--danger-bg);color:#991b1b;border-color:#fecaca}.ip-resolver-test-result p{font-size:var(--font-xs);margin:0}.ip-resolver-version-form{background:#fafbfc;padding:.65rem .85rem .75rem}.ip-resolver-version-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem .75rem;display:grid}.ip-resolver-version-actions{align-items:center;gap:.65rem;margin-top:.55rem;display:flex}.ip-resolver-version-msg{font-size:var(--font-xs);color:var(--success-text,#166534)}.ip-resolver-register-form{border-top:1px solid var(--border-light);background:#fafbfc;padding:.65rem .85rem}@media (max-width:700px){.ip-resolver-version-grid{grid-template-columns:1fr}}
