:root{--bg: #f4f6f8;--panel: #ffffff;--ink: #1c2b36;--muted: #6b7a87;--brand: #0b3d59;--brand-2: #1471a8;--accent: #0a7d4f;--danger: #b3261e;--border: #dbe1e6;--radius: 8px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:Segoe UI,system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--bg);font-size:15px}.mono{font-family:ui-monospace,Cascadia Code,Consolas,monospace}.muted{color:var(--muted)}.ok,.success{color:var(--accent)}.bad{color:var(--danger)}button{font:inherit;cursor:pointer}.btn{border:1px solid var(--border);background:var(--panel);color:var(--ink);padding:8px 14px;border-radius:var(--radius);text-decoration:none;display:inline-flex;align-items:center;gap:6px}.btn:hover{background:#eef2f5}.btn.primary{background:var(--brand-2);border-color:var(--brand-2);color:#fff}.btn.primary:hover{background:var(--brand)}.btn.small{padding:4px 10px;font-size:.85em}.btn.danger{color:var(--danger);border-color:#e7b6b3}.btn:disabled{opacity:.55;cursor:not-allowed}input,select,textarea{font:inherit;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius);background:#fff;color:var(--ink);width:100%}textarea{min-height:180px;resize:vertical;font-family:ui-monospace,Consolas,monospace}textarea.tall{min-height:360px}label{display:flex;flex-direction:column;gap:4px;font-size:.9em}.checkbox{flex-direction:row;align-items:center;gap:8px}.checkbox input{width:auto}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin:12px 0}.card.readonly pre,.scroll{max-height:300px;overflow:auto}pre{background:#f7f9fb;padding:12px;border-radius:var(--radius);overflow:auto}.error{background:#fdecea;color:var(--danger);border:1px solid #f5c6c2;padding:10px 12px;border-radius:var(--radius);margin:10px 0}.success{margin:10px 0}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row.between{justify-content:space-between}.spinner{display:inline-block;border-style:solid;border-color:currentColor;border-top-color:transparent;border-radius:50%;animation:spinner-rotate .6s linear infinite;vertical-align:-.15em}.btn .spinner{margin-right:6px}.spinner-center{display:flex;align-items:center;justify-content:center;gap:8px;padding:16px;color:var(--muted)}@keyframes spinner-rotate{to{transform:rotate(360deg)}}.pager{margin-top:12px}.pager .page-size{flex-direction:row;align-items:center;gap:6px}.pager .page-size select{width:auto}.pager-controls{gap:8px}.app-shell{display:flex;flex-direction:column;height:100%}.topbar{display:flex;align-items:center;gap:14px;background:var(--brand);color:#fff;padding:10px 16px}.topbar .brand{font-weight:600}.topbar .spacer{flex:1}.topbar .user{font-size:.9em;opacity:.9}.topbar .btn{background:transparent;color:#fff;border-color:#fff6}.hamburger{display:none;background:transparent;border:none;color:#fff;font-size:1.4em}.hub-selector{flex-direction:row;align-items:center;gap:6px;color:#fff}.hub-selector .label{font-size:.85em;opacity:.85}.hub-selector select{width:auto;min-width:160px}.body{display:flex;flex:1;min-height:0}.sidenav{width:220px;background:var(--panel);border-right:1px solid var(--border);padding:12px;display:flex;flex-direction:column;gap:4px}.navitem{padding:9px 12px;border-radius:var(--radius);color:var(--ink);text-decoration:none}.navitem:hover{background:#eef2f5}.navitem.active{background:#e3eef5;color:var(--brand);font-weight:600}.navsection{margin-top:14px;font-size:.75em;text-transform:uppercase;color:var(--muted);padding:0 12px}.content{flex:1;overflow:auto;padding:20px}.page h2{margin-top:0}.grid{width:100%;border-collapse:collapse;margin-top:12px;background:var(--panel)}.grid th,.grid td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--border);vertical-align:top}.grid th{background:#eef2f5;font-size:.85em}.tags-cell{font-size:.85em;color:var(--muted)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid .wide{grid-column:1 / -1}.editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.search-bar .row label{flex:1}.qr-panel{margin:12px 0;text-align:center}.small{font-size:.85em}.signin{height:100%;display:grid;place-items:center;background:var(--brand)}.signin-card{background:#fff;padding:36px;border-radius:12px;text-align:center;max-width:360px}.field-app{max-width:560px;margin:0 auto;padding:0 0 32px;min-height:100%}.field-header{position:sticky;top:0;z-index:5;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:12px 16px}.field-header select{width:auto}.field-scan{padding:16px;text-align:center}.qr-reader{width:100%;max-width:320px;margin:0 auto;border-radius:var(--radius);overflow:hidden}.manual{display:flex;gap:8px;margin-top:16px}.match-list{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.match-item{width:100%;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;text-align:left}.match-item:hover{border-color:var(--accent, #4a9)}.field-device{padding:16px}.field-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin-bottom:12px}.field-card h3{margin:0 0 8px}.photo-preview{width:100%;border-radius:var(--radius);margin-top:10px}.field-actions{display:flex;gap:10px}.field-actions .btn{flex:1;justify-content:center;padding:14px;font-size:1.05em}@media (max-width: 768px){.hamburger{display:inline-block}.hub-selector .label{display:none}.sidenav{position:fixed;top:52px;bottom:0;left:-240px;z-index:20;transition:left .2s ease;box-shadow:2px 0 8px #00000026}body.nav-open .sidenav{left:0}.form-grid,.editor-grid{grid-template-columns:1fr}.topbar .user{display:none}}
