:root{--bg:#f4f6f8;--panel:#fff;--text:#162033;--muted:#667085;--line:#dfe4ea;--primary:#292f63;--primary2:#20254f;--accent:#5289ca;--danger:#b42318;--soft:#eef4fb;--shadow:0 10px 24px rgba(16,24,40,.08)}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}
.topbar{height:68px;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 22px;position:sticky;top:0;z-index:5}
.brand{display:inline-flex;align-items:center;gap:10px;color:#fff;text-decoration:none}.brand:hover{text-decoration:none}.brand-logo{width:220px;height:auto;display:block}.brand-app-pill{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#eef4fb;color:var(--primary);padding:4px 9px;font-size:12px;font-weight:850;line-height:1;white-space:nowrap;text-transform:lowercase}.main-nav{display:flex;align-items:center;gap:16px;margin-left:auto}.main-nav a{color:#eef4fb}.main-nav a.nav-icon-link{display:inline-flex;align-items:center;justify-content:center;color:#eef4fb;text-decoration:none}.main-nav a.nav-icon-link:hover{text-decoration:none}.main-nav a.nav-icon-link svg{display:block;width:25px;height:25px;fill:currentColor}.topbar-logout{color:#eef4fb}.topbar-user{position:relative;margin-left:14px}.topbar-user-button{display:inline-flex;align-items:center;gap:5px;min-height:42px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(255,255,255,.08);color:#fff;padding:3px 7px 3px 3px;cursor:pointer}.topbar-user-button:hover,.topbar-user.open .topbar-user-button{background:rgba(255,255,255,.16)}.topbar-user-button svg{width:20px;height:20px;fill:currentColor}.topbar-user-avatar{display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;overflow:hidden;border-radius:999px;background:#eef4fb;color:var(--primary);font-size:12px;font-weight:850}.topbar-user-avatar img{width:100%;height:100%;object-fit:cover}.topbar-user-menu{display:none;position:absolute;right:0;top:calc(100% + 9px);z-index:35;width:240px;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow)}.topbar-user.open .topbar-user-menu{display:block}.topbar-user-info{padding:12px 13px;border-bottom:1px solid var(--line)}.topbar-user-info strong,.topbar-user-info span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-user-info strong{color:var(--text);font-size:14px}.topbar-user-info span{margin-top:2px;color:var(--muted);font-size:12px}.topbar-user-menu a{display:block;padding:11px 13px;color:var(--danger);font-weight:800}.topbar-user-menu a:hover{background:#fef3f2;text-decoration:none}.menu-toggle{display:none;width:42px;height:42px;border:0;background:transparent;padding:0;cursor:pointer;margin-left:8px;color:#fff;font-size:34px;line-height:1;align-items:center;justify-content:center}.menu-toggle span{display:block;color:#fff}
.shell{width:min(100% - 48px,1500px);margin:0 auto;padding:26px 0}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:18px}.page-head h1{margin:0;font-size:30px}.page-head p{margin:6px 0 0;color:var(--muted)}.back-button{margin-bottom:14px}
.panel{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px;padding:18px}
.toast-stack{position:fixed;left:50%;top:86px;transform:translateX(-50%);z-index:40;display:grid;gap:10px;width:min(420px,calc(100vw - 28px))}.toast{width:100%;border:1px solid transparent;border-radius:8px;box-shadow:var(--shadow);padding:13px 15px;text-align:left;font:inherit;font-weight:700;cursor:pointer;animation:toastIn .18s ease-out}.toast-success{background:#ecfdf3;border-color:#abefc6;color:#067647}.toast-warning{background:#fffaeb;border-color:#fedf89;color:#93370d}.toast-error{background:#fef3f2;border-color:#fecdca;color:#b42318}.toast-hide{opacity:0;transform:translateY(-6px);transition:opacity .18s ease,transform .18s ease}.operation-overlay{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:transparent;z-index:100;transition:background .18s ease,backdrop-filter .18s ease}.operation-overlay.blocking{display:flex}.operation-overlay.visible{background:rgba(15,23,42,.86);backdrop-filter:blur(2px)}.operation-overlay img{width:96px;height:96px;object-fit:contain;opacity:0}.operation-overlay.visible img{animation:operationPulse 1.15s ease-in-out infinite}@keyframes toastIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes operationPulse{0%,100%{transform:scale(.92) rotate(0deg);opacity:.72}50%{transform:scale(1.08) rotate(8deg);opacity:1}}
.toolbar{display:flex;gap:12px;align-items:center;margin-bottom:16px}.toolbar input{max-width:420px}.device-toolbar{align-items:flex-start;justify-content:space-between}.panel-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.device-search{position:relative;flex:1 1 520px;min-width:280px;max-width:720px}.search-bar{display:grid;grid-template-columns:24px minmax(0,1fr) 38px;align-items:center;gap:10px;width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;padding:0 10px;min-height:44px}.search-bar:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(82,137,202,.14)}.search-bar input{max-width:none;border:0;background:transparent;border-radius:0;padding:0;font-size:16px;min-height:42px}.search-bar input:focus{outline:0}.search-icon{width:22px;height:22px;fill:#3f4652}.search-filter-toggle{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:0;border-radius:8px;background:transparent;color:#3f4652;cursor:pointer}.search-filter-toggle:hover,.search-filter-toggle[aria-expanded=true]{background:var(--soft);color:var(--primary)}.search-filter-toggle svg{width:24px;height:24px;fill:currentColor}.search-filters{display:none;position:absolute;left:0;top:calc(100% + 8px);width:100%;padding:14px;border:1px solid var(--line);border-radius:8px;background:#fbfcfd;box-shadow:var(--shadow);z-index:20}.search-filters.open{display:block}.search-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}
input,textarea,select{width:100%;border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:#fff;color:var(--text);font:inherit}input,select,.btn{min-height:44px}select{appearance:none;-webkit-appearance:none;padding-right:44px;background-image:linear-gradient(45deg,transparent 50%,var(--text) 50%),linear-gradient(135deg,var(--text) 50%,transparent 50%);background-position:calc(100% - 23px) 50%,calc(100% - 16px) 50%;background-size:7px 7px,7px 7px;background-repeat:no-repeat}
label{display:block;font-weight:650;margin:12px 0 6px}.password-control{position:relative}.password-control input{padding-right:82px}.password-info,.password-toggle{position:absolute;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:0;border-radius:8px;background:transparent;color:#475467}.password-info{right:8px;font-size:13px;font-weight:800;cursor:help}.password-info::after{content:attr(data-tooltip);position:absolute;right:0;top:calc(100% + 8px);width:max-content;max-width:280px;background:#162033;color:#fff;border-radius:8px;padding:8px 10px;font-size:12px;font-weight:650;line-height:1.35;opacity:0;pointer-events:none;box-shadow:var(--shadow);z-index:100}.password-info:hover::after,.password-info:focus::after{opacity:1}.password-toggle{right:42px;padding:0;cursor:pointer}.password-toggle:hover{background:var(--soft);color:var(--primary)}.password-toggle svg{width:20px;height:20px;fill:currentColor}.form-grid>div{position:relative;min-width:0}.form-grid>div>label{position:absolute;left:11px;top:0;z-index:1;max-width:calc(100% - 22px);margin:0;padding:0 5px;background:#fff;color:#9c9c9c;font-size:11px;font-weight:400;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;transform:translateY(-50%)}.form-grid>div>label.label-line{pointer-events:auto}.form-grid>div>input,.form-grid>div>select,.form-grid>div>textarea{display:block}.form-grid>div>.info-dot{position:absolute;right:12px;top:50%;transform:translateY(-50%);z-index:2}.form-grid>div:has(>.info-dot)>input,.form-grid>div:has(>.info-dot)>select{padding-right:42px}.form-grid>div:focus-within>label{color:var(--primary)}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text);padding:10px 13px;font-family:inherit;font-size:14px;font-weight:700;line-height:1.2;cursor:pointer}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.primary:hover{background:var(--primary2);text-decoration:none}.btn.danger{background:#fff;border-color:#fecdca;color:var(--danger)}.btn.danger:hover{background:#fef3f2;text-decoration:none}.btn.ghost{background:transparent}.icon-btn{width:44px;padding:0}.icon-btn svg{width:19px;height:19px;fill:currentColor;stroke:none}.icon-btn[disabled]{pointer-events:none;opacity:.45}.bulk-action{display:none}.bulk-action.active{display:inline-flex}.strong-link{font-weight:800}.strong-link:hover{text-decoration:underline}
.diag-list{display:grid;gap:12px}.diag-card{background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 4px 14px rgba(16,24,40,.05);overflow:hidden}.diag-summary{display:grid;grid-template-columns:minmax(220px,1.3fr) minmax(170px,.9fr) minmax(180px,1fr) minmax(100px,auto) minmax(280px,1.4fr) auto;gap:18px;align-items:center;padding:16px}.metric{min-width:0}.metric strong{display:block;font-size:16px;line-height:1.35;overflow-wrap:anywhere}.metric-serie strong{font-size:20px}.metric-zip strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.diag-actions{display:flex;gap:8px;justify-content:flex-end;align-items:center;white-space:nowrap}.device-state{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.device-state select{min-width:220px}.zip-panel{border-top:1px solid var(--line);background:#fbfcfd;padding:10px 16px 16px;animation:zipFade .16s ease-out}.zip-row{display:grid;grid-template-columns:minmax(280px,1.6fr) minmax(170px,.8fr) minmax(110px,.4fr) auto;gap:14px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.zip-row:last-child{border-bottom:0}.zip-name{font-weight:750;min-width:0;overflow-wrap:anywhere}.muted{display:block;color:var(--muted);font-size:13px;margin-top:3px}.pill{display:inline-flex;border-radius:999px;background:var(--soft);color:var(--primary2);padding:4px 9px;font-size:12px;font-weight:750}@keyframes zipFade{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
.empty,.loader{padding:22px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:8px;background:#fff}.end-message{margin-top:18px;padding:18px;text-align:center;color:var(--muted);background:transparent;border:1px dashed rgba(102,112,133,.28);border-radius:8px}.infinite-status{padding:14px 4px;text-align:center}.label-preview{display:flex;align-items:center;justify-content:center;width:100%;max-width:100%;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}.label-preview img{display:block;width:min(360px,100%);height:auto;background:#fff;box-shadow:0 3px 10px rgba(16,24,40,.08);image-rendering:auto}.user-avatar{display:inline-flex;width:38px;height:38px;align-items:center;justify-content:center;border-radius:999px;object-fit:cover;background:#eef4fb;color:var(--primary);font-size:13px;font-weight:850}.user-avatar-fallback{border:1px solid rgba(82,137,202,.3)}.table-avatar-head,.table-avatar-cell{width:54px;text-align:center}.user-form-layout{display:grid;grid-template-columns:172px minmax(0,1fr);gap:16px;align-items:stretch}.user-form-grid{grid-template-columns:repeat(2,minmax(190px,1fr));grid-auto-rows:minmax(58px,auto)}.user-field-name{grid-column:1;grid-row:1}.user-field-email{grid-column:2;grid-row:1}.user-field-role{grid-column:1;grid-row:2}.user-field-password{grid-column:2;grid-row:2}.image-field{position:relative;display:flex;align-items:center;gap:14px;min-height:132px;padding:18px 12px 12px;border:1px solid var(--line);border-radius:8px;background:#fbfcfd}.image-field:focus,.image-field:focus-within{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px rgba(82,137,202,.14)}.image-field-label{position:absolute;left:11px;top:0;z-index:1;max-width:calc(100% - 22px);margin:0;padding:0 5px;background:#fbfcfd;color:#9c9c9c;font-size:11px;font-weight:400;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;transform:translateY(-50%)}.image-field:focus .image-field-label,.image-field:focus-within .image-field-label{color:var(--primary)}.image-field-preview{flex:0 0 auto;display:flex;width:104px;height:104px;align-items:center;justify-content:center;overflow:hidden;border:1px solid rgba(82,137,202,.3);border-radius:999px;background:#eef4fb;color:var(--primary);font-size:30px;font-weight:850}.image-field-preview img{width:100%;height:100%;object-fit:cover}.image-field-controls{min-width:0;flex:1}.image-field-remove{width:auto;gap:8px;margin-top:10px;justify-content:flex-start}.image-field-remove strong{font-size:14px;font-weight:750;color:var(--muted)}.alert{padding:12px 14px;border-radius:8px;margin:12px 0;border:1px solid #fedf89;background:#fffaeb;color:#93370d}.alert.danger{border-color:#fecdca;background:#fef3f2;color:var(--danger)}.badge{display:inline-flex;align-items:center;padding:3px 7px;border-radius:6px;font-size:12px;font-weight:800}.badge.danger{border:1px solid #fecdca;background:#fef3f2;color:var(--danger)}.badge.success{border:1px solid #abefc6;background:#ecfdf3;color:#067647}.table-bit,.table-date,.table-number{text-align:center}.table-number{font-variant-numeric:tabular-nums}.table-date{white-space:nowrap;font-variant-numeric:tabular-nums}.status-icon{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:999px;vertical-align:middle}.status-icon svg{width:24px;height:24px;fill:currentColor}.status-icon-neutral{color:inherit;background:transparent}.status-empty{display:inline-block;width:26px;height:26px;vertical-align:middle}.status-icon-success{color:#079455;background:#ecfdf3}.status-icon-danger{color:#d92d20;background:#fef3f2}.notice{padding:12px 14px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--text)}.notice.success{border-color:#abefc6;background:#ecfdf3;color:#067647}.notice-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.notice-close{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:0;border-radius:999px;background:transparent;color:currentColor;font-size:22px;line-height:1;cursor:pointer}.notice-close:hover{background:rgba(6,118,71,.1)}.stock-metrics{display:grid;grid-template-columns:repeat(2,minmax(150px,1fr));gap:12px;margin-bottom:12px}.stock-metric{position:relative;display:flex;min-height:86px;flex-direction:column;align-items:flex-start;justify-content:center;gap:8px;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#fff;padding:16px 18px;text-align:left;box-shadow:0 4px 12px rgba(16,24,40,.05)}.stock-metric::before{content:'';position:absolute;left:0;top:0;width:100%;height:3px;background:var(--primary)}.stock-metric:nth-child(2)::before{background:var(--accent)}.stock-metric-label{color:var(--muted);font-size:13px;font-weight:750;text-transform:none}.stock-metric-value{font-size:32px;font-weight:850;letter-spacing:0;line-height:1;color:var(--text);font-variant-numeric:tabular-nums}.serial-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.serial-list code{display:inline-flex;padding:5px 8px;border-radius:6px;background:#fff;border:1px solid rgba(6,118,71,.22);color:var(--text);font-size:13px}
.image-field{justify-content:center}.image-field-surface{position:relative;display:flex;width:104px;height:104px;align-items:center;justify-content:center;border:0;border-radius:999px;background:transparent;padding:0;cursor:pointer}.image-field-surface:focus-visible{outline:3px solid rgba(82,137,202,.32);outline-offset:4px}.image-field-preview{pointer-events:none}.image-field-pdf-preview{display:block;width:100%;height:100%;border:0;background:#fff}.image-field-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.image-field-action{position:absolute;z-index:2;display:inline-flex;width:26px;height:26px;align-items:center;justify-content:center;border:2px solid #fff;border-radius:999px;background:#fff;color:#162033;box-shadow:0 3px 10px rgba(16,24,40,.18);padding:0;cursor:pointer}.image-field-action svg{width:17px;height:17px;fill:currentColor}.image-field-action:hover{color:var(--primary);box-shadow:0 5px 14px rgba(16,24,40,.22)}.image-field-action:focus-visible{outline:3px solid rgba(82,137,202,.32);outline-offset:2px}.image-field-action[disabled]{opacity:.45;cursor:not-allowed}.image-field-action-viewer{right:34px;bottom:20px}.image-field-action-delete{left:34px;bottom:20px}.image-field-dragover{border-color:var(--accent);background:#eef4fb;box-shadow:0 0 0 3px rgba(82,137,202,.14)}.image-field-empty .image-field-preview{opacity:.75}.tree{background:#fff;border:1px solid var(--line);border-radius:8px;padding:14px}.tree ul{list-style:none;margin:0 0 0 18px;padding:0}.tree li{margin:5px 0}.tree button,.link-btn{border:0;background:transparent;color:var(--primary);padding:0;font:inherit;font-weight:650;cursor:pointer}.tree .file-meta{color:var(--muted);font-size:12px}
.confirm-modal{position:fixed;inset:0;background:rgba(15,23,42,.62);display:none;align-items:center;justify-content:center;padding:18px;z-index:50}.confirm-modal.open{display:flex}.confirm-card{width:min(520px,100%);background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:22px}.confirm-card h2{margin:0 0 8px;font-size:22px}.confirm-card p{margin:0;color:var(--muted);line-height:1.5}.confirm-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}
.modal{position:fixed;inset:0;background:rgba(15,23,42,.62);display:none;align-items:center;justify-content:center;padding:18px;z-index:30}.modal.open{display:flex}.modal-card{width:min(80vw,calc(100vw - 36px));height:min(80vh,calc(100vh - 36px));max-width:calc(100vw - 36px);max-height:calc(100vh - 36px);background:#fff;border-radius:8px;box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:hidden}.modal-head{display:flex;justify-content:space-between;gap:12px;align-items:center;background:var(--bg);border-bottom:1px solid var(--line);padding:12px 16px;flex:0 0 auto}.modal-head h2{min-width:0;margin:0;font-size:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-body{padding:16px;overflow:auto;flex:1 1 auto;display:flex;flex-direction:column}.modal-body>form{min-height:100%;display:flex;flex-direction:column}.modal-body>form>.modal-actions{margin-top:auto}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;padding-top:14px}.modal-actions-sticky{position:sticky;bottom:0;background:#fff}.modal-section{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.modal-fill-table-section{display:flex;min-height:0;flex:1 1 auto;flex-direction:column}.modal-fill-table-section>.table-wrap{flex:1 1 auto;min-height:0;max-height:none!important}.modal-tabs{display:flex;gap:4px;margin:-2px 0 16px;border-bottom:1px solid var(--line);flex:0 0 auto}.modal-tab{appearance:none;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--muted);padding:10px 14px 9px;font:inherit;font-weight:800;cursor:pointer}.modal-tab:hover{color:var(--primary);background:var(--soft)}.modal-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.modal-tab-panel{display:none}.modal-tab-panel.active{display:flex;flex:1 1 auto;min-height:0;flex-direction:column}.modal-tab-panel>form{min-height:100%;display:flex;flex-direction:column}.modal-tab-panel>form>.modal-actions{margin-top:auto}.modal pre{white-space:pre-wrap;background:#111827;color:#f9fafb;border-radius:8px;padding:14px;overflow:auto;min-height:100%}.label-line{display:flex;align-items:center;gap:7px}.info-dot{position:relative}.password-info,.info-dot{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:1px solid currentColor;border-radius:999px;background:transparent;color:#475467;font-size:12px;font-weight:800;line-height:1;cursor:help}.password-info{right:14px}.password-info::after,.info-dot::after{content:attr(data-tooltip);position:absolute;right:0;top:calc(100% + 8px);width:max-content;max-width:280px;background:#162033;color:#fff;border-radius:8px;padding:8px 10px;font-size:12px;font-weight:650;line-height:1.35;opacity:0;pointer-events:none;box-shadow:var(--shadow);z-index:100}.password-info:hover::after,.password-info:focus::after,.info-dot:hover::after,.info-dot:focus::after{opacity:1}
.login-screen{min-height:100vh;display:grid;place-items:center;padding:18px;background:linear-gradient(180deg,#f7f9fc 0%,#edf2f8 100%)}.login-wrap{width:min(440px,94vw)}.login-card{background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:30px}.login-logo{width:min(340px,100%);height:auto;display:block;margin:0 auto 22px}.login-card h1{margin:0;font-size:24px}.login-card p{color:var(--muted);margin-top:6px}.login-card .btn{width:100%;margin-top:14px}
.sqlite-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:16px;width:100%}.sqlite-embed{width:100%;height:100%;margin:0;padding:12px;overflow:auto}.sqlite-embed .sqlite-layout{grid-template-columns:220px minmax(0,1fr);gap:12px;align-items:start}.sqlite-embed .panel,.sqlite-embed .sidebar{box-shadow:none}.sqlite-embed .panel{padding:14px}.sidebar{background:#fff;border:1px solid var(--line);border-radius:8px;padding:14px;min-width:0}.sidebar ul{list-style:none;margin:0;padding:0}.sidebar a{display:flex;justify-content:space-between;gap:8px;padding:8px;border-radius:8px;min-width:0}.sidebar a span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar a.active{background:var(--soft);font-weight:750}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:8px;background:#fff;max-width:100%}.table-wrap table{margin-bottom:-1px}.panel>.table-wrap,.panel>form>.table-wrap{height:clamp(260px,calc(100vh - 320px),680px)}table{border-collapse:collapse;width:100%;table-layout:fixed;font-size:14px}th,td{border-bottom:1px solid var(--line);padding:9px 10px;text-align:left;vertical-align:middle}th{background:#f9fafb;position:sticky;top:0;z-index:3}.sort-link{display:inline-flex;color:inherit;text-decoration:none;font-weight:800;white-space:nowrap}.sort-link:hover{text-decoration:none;color:var(--primary)}.sort-link.active{color:var(--primary)}.clickable-row{cursor:pointer;transition:background .12s ease,box-shadow .12s ease}.clickable-row:hover{background:#fff;box-shadow:inset 0 0 0 9999px rgba(82,137,202,.05),0 6px 14px rgba(16,24,40,.08)}.stock-lote-action-row{transition:background .12s ease,box-shadow .12s ease}.stock-lote-action-row:hover{background:#fff;box-shadow:inset 0 0 0 9999px rgba(82,137,202,.05),0 6px 14px rgba(16,24,40,.08)}.select-cell{width:46px;text-align:center;user-select:none}.quick-actions-head,.quick-actions-cell{width:0;min-width:0;max-width:0;padding:0;border-left:0}.quick-actions-cell{position:sticky;right:0;overflow:visible;background:transparent;z-index:2}.quick-actions-layer{position:fixed;inset:0;z-index:1000;pointer-events:none}.row-quick-actions{position:absolute;right:8px;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:6px;padding:5px 7px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:opacity .12s ease}.row-quick-actions.quick-actions-ready,.row-quick-actions:focus-within{opacity:1;pointer-events:auto}.row-quick-actions form{margin:0}.row-action-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:0;border-radius:8px;background:transparent;color:#3f4652;cursor:pointer}.row-action-btn:hover{background:var(--soft);color:var(--primary)}.row-action-btn.danger:hover{background:#fef3f2;color:var(--danger)}.row-action-btn svg{width:21px;height:21px;fill:currentColor}.check-control{display:inline-flex;align-items:center;justify-content:center;margin:0;width:28px;height:28px;cursor:pointer;user-select:none}.check-control input{position:absolute;opacity:0;pointer-events:none}.check-control span{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border:2px solid #98a2b3;border-radius:4px;background:#fff;transition:background .12s ease,border-color .12s ease}.check-control span::after{content:'';width:10px;height:5px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) translate(1px,-1px);opacity:0}.check-control input:checked + span,.check-control input:indeterminate + span{background:var(--primary);border-color:var(--primary)}.check-control input:checked + span::after{opacity:1}.check-control input:indeterminate + span::after{width:10px;height:0;border-left:0;border-bottom:2px solid #fff;transform:none;opacity:1}.check-control input:focus-visible + span{outline:3px solid rgba(82,137,202,.28);outline-offset:2px}.switch-control{display:inline-flex;align-items:center;width:52px;height:32px;margin:0;cursor:pointer;user-select:none}.switch-control input{position:absolute;opacity:0;pointer-events:none}.switch-control span{position:relative;display:block;width:46px;height:26px;border-radius:999px;background:#cfd6e2;transition:background .16s ease,box-shadow .16s ease}.switch-control span::after{content:'';position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(16,24,40,.28);transition:transform .16s ease}.switch-control input:checked + span{background:var(--primary)}.switch-control input:checked + span::after{transform:translateX(20px)}.switch-control input:focus-visible + span{box-shadow:0 0 0 4px rgba(82,137,202,.22)}.form-footer-setting{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:14px;padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:#fbfcfd;font-weight:800}.form-footer-setting>span{color:var(--text);font-weight:800}.form-footer-setting-muted,.form-footer-setting-muted>span,.form-footer-setting-muted>strong{color:#9c9c9c;font-weight:400}.form-footer-setting:has(.switch-control input[type=checkbox]:not(:checked))>span{color:#9c9c9c;font-weight:400}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:14px}.detail-item{padding:12px;border:1px solid var(--line);border-radius:8px;background:#fbfcfd}.detail-item strong{display:block;margin-top:4px;line-height:1.35;overflow-wrap:anywhere}.detail-item-full{grid-column:1/-1}.row-selected{background:#f5f8ff}.inline-form,.row-actions{display:flex;gap:8px;align-items:center}.inline-form select{min-width:190px}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:16px 12px;align-items:end}.article-form-grid{grid-template-columns:repeat(4,minmax(160px,1fr))}.article-switch-grid{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:12px;margin-top:14px}.article-switch-grid .form-footer-setting{min-width:0;margin-top:0}.form-span-all{grid-column:1/-1}.purchase-header-grid{grid-template-columns:repeat(4,minmax(170px,1fr));gap:14px 12px}.purchase-header-actions{margin-top:12px}.form-span-2{grid-column:span 2}.form-row-start{grid-column:1 / span 2}.purchase-header-grid .form-span-2{grid-column:span 2}.pagination{display:flex;justify-content:flex-end;gap:10px;align-items:center;margin-top:14px}
.form-footer-setting{min-height:44px;padding-top:0;padding-bottom:0}.article-technical-grid{margin-top:4px}.article-technical-switch{margin-top:0}
.stock-lote-quick-actions{position:absolute;right:8px;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:6px;padding:5px 7px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:opacity .12s ease}.stock-lote-quick-actions.quick-actions-ready,.stock-lote-quick-actions:focus-within{opacity:1;pointer-events:auto}.stock-lote-quick-actions form{margin:0}
.quick-actions-layer .row-quick-actions.quick-actions-floating,.quick-actions-layer .stock-lote-quick-actions.quick-actions-floating{position:absolute;right:auto;transform:none;z-index:1000}
.row-quick-actions:not(.quick-actions-ready):not(:focus-within),.stock-lote-quick-actions:not(.quick-actions-ready):not(:focus-within){opacity:0!important;pointer-events:none!important}
@media(max-width:760px){.topbar{height:auto;min-height:64px;padding:11px 14px;flex-wrap:wrap;gap:10px}.brand{min-width:0;gap:7px}.brand-logo{width:min(160px,calc(100vw - 204px))}.brand-app-pill{padding:3px 7px;font-size:11px}.topbar-user{margin-left:auto}.topbar-user-menu{right:0;width:min(260px,calc(100vw - 28px))}.menu-toggle{display:inline-flex}.main-nav{display:none;flex:0 0 100%;width:100%;align-items:stretch;border-top:1px solid rgba(255,255,255,.18);padding-top:10px;gap:0;flex-direction:column;order:4}.main-nav a{display:block;padding:12px 2px;color:#fff}.main-nav a.nav-icon-link{display:block;width:auto;height:auto;border-radius:0}.menu-open .main-nav{display:flex}.toast-stack{top:76px;width:calc(100vw - 24px)}.page-head,.toolbar{display:block}.device-search{max-width:none}.search-bar{grid-template-columns:24px minmax(0,1fr) 38px}.panel-actions{margin-top:12px}.panel-actions .btn{width:100%}.modal{padding:10px}.modal-card{width:calc(100vw - 20px);height:calc(100vh - 20px);max-width:calc(100vw - 20px);max-height:calc(100vh - 20px)}.diag-summary,.zip-row,.form-grid,.article-switch-grid,.user-form-layout,.user-form-grid{grid-template-columns:1fr}.user-field-name,.user-field-email,.user-field-role,.user-field-password{grid-column:1;grid-row:auto}.image-field{align-items:flex-start;min-height:0}.form-span-2,.purchase-header-grid .form-span-2{grid-column:1/-1}.inline-form,.row-actions{align-items:stretch;flex-direction:column}.diag-actions{justify-content:stretch;flex-direction:column;white-space:normal}.diag-actions .btn,.zip-row .btn,.inline-form .btn,.row-actions .btn{width:100%}.sqlite-layout{grid-template-columns:1fr}.shell{width:calc(100% - 24px);padding:18px 0}}
.image-field-surface[disabled]{cursor:not-allowed}
.panel-spaced {
    margin-bottom: 16px;
}

.section-spaced {
    margin-bottom: 24px;
}

.section-title {
    margin: 0 0 12px;
}

.section-title-tight {
    margin: 0 0 8px;
}

.section-title-flat {
    margin: 0;
}

.app-version-footer {
    margin-top: 26px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 650;
    text-align: center;
}

.label-section-head {
    margin: 0 0 12px;
}

.label-path {
    margin-top: 8px;
}

.audit-meta {
    display: grid;
    gap: 10px;
    color: var(--muted);
    font-size: 15px;
    line-height: 1.45;
}

.audit-meta-label {
    color: var(--text);
}

.infinite-sentinel {
    height: 1px;
}

.sqlite-tabs {
    margin-bottom: 12px;
}

.load-more-button {
    display: none;
    width: 100%;
    margin-top: 14px;
}

.image-viewer-modal {
    z-index: 70;
}

.image-viewer-card {
    width: min(1200px, calc(100vw - 36px));
    height: min(92vh, calc(100vh - 36px));
}

.image-viewer-body {
    align-items: center;
    justify-content: center;
    min-height: 0;
    padding: 0;
    background: #111827;
}

.image-viewer-image,
.image-viewer-object {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
    background: #111827;
}

.image-viewer-image {
    object-fit: contain;
}

.diagnostico-text-modal-body {
    min-height: 0;
    padding: 16px;
}

.diagnostico-text-preview {
    flex: 1 1 auto;
    box-sizing: border-box;
    width: 100%;
    min-height: 0;
    height: 100%;
    margin: 0;
}

.diagnostico-device-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.diagnostico-device-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}

.diagnostico-device-card h2 {
    margin: 0;
    font-size: 18px;
}

.diagnostico-device-card strong {
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
}

.diagnostico-device-card p {
    margin: 0;
    color: var(--muted);
}

.diagnostico-device-card .btn {
    align-self: flex-end;
    margin-top: auto;
}

.diagnostico-device-state select {
    min-width: min(100%, 260px);
}

@media (max-width: 900px) {
    .diagnostico-device-grid {
        grid-template-columns: 1fr;
    }
}
