:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#172033;background:#f4f7fa;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button{border:0;border-radius:.6rem;background:#17365d;color:#fff;padding:.75rem 1rem;font:inherit;font-weight:700;cursor:pointer}button:focus-visible{outline:3px solid #e1a100;outline-offset:3px}.app-shell{max-width:1100px;margin:0 auto;padding:1.25rem}.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:2rem}.eyebrow{color:#2e74b5;font-size:.75rem;font-weight:800;letter-spacing:.13em;margin:0 0 .35rem}h1,h2,h3{color:#17365d;margin-top:0}h1{font-size:clamp(1.8rem,4vw,2.7rem);margin-bottom:0}.connection,.status{display:inline-flex;align-items:center;gap:.5rem;font-weight:700}.connection{background:#fff;border:1px solid #d8e0e8;border-radius:999px;padding:.55rem .8rem}.status-dot{width:.7rem;height:.7rem;border-radius:50%;background:currentColor}.connection--online,.status--ok,.status--operational{color:#226c3a}.connection--offline,.status--fault,.status--unsafe,.status--out_of_service{color:#a12d2d}.sync-state{border:0;border-radius:.45rem;background:#e8eef5;color:#17365d;padding:.4rem .65rem;font-size:.85rem}.status--attention{color:#835f00}.summary{background:#17365d;color:#fff;border-radius:1rem;padding:1.25rem;margin-bottom:2rem}.summary h2{color:#fff}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.metrics article{background:#ffffff1a;border-radius:.75rem;padding:1rem;display:flex;flex-direction:column}.metrics strong{font-size:1.8rem}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem}.device-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}.device-card{background:#fff;border:1px solid #d8e0e8;border-radius:1rem;padding:1.25rem;box-shadow:0 8px 24px #17365d0f}.device-card h3{margin:1rem 0;font-size:1.25rem}dl{margin:0 0 1rem}dl div{display:flex;justify-content:space-between;gap:1rem;border-top:1px solid #e8edf2;padding:.7rem 0}dt{color:#5a6675}dd{margin:0;font-weight:700;text-align:right}.secondary{width:100%;background:#e8eef5;color:#17365d}.auth-card{max-width:430px;margin:3rem auto;background:#fff;border:1px solid #d8e0e8;border-radius:1rem;padding:1.5rem;box-shadow:0 12px 32px #17365d14}.auth-card form{display:grid;gap:.55rem;margin-top:1.25rem}.auth-card label{font-weight:700;color:#17365d}.auth-card input{width:100%;border:1px solid #aebbc8;border-radius:.55rem;padding:.75rem;font:inherit;margin-bottom:.55rem}.auth-card input:focus{outline:3px solid #b7d4ef;border-color:#2e74b5}.auth-card button{margin-top:.5rem}.auth-card button:disabled{cursor:wait;opacity:.65}.form-error{color:#a12d2d;font-weight:700;margin:.25rem 0}.welcome{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}.text-button{background:transparent;color:#17365d;padding:.4rem;text-decoration:underline}.owner-layout{display:grid;grid-template-columns:minmax(280px,.85fr) minmax(360px,1.4fr);gap:1rem;align-items:start}.panel{background:#fff;border:1px solid #d8e0e8;border-radius:1rem;padding:1.25rem;box-shadow:0 8px 24px #17365d0d}.panel>label{display:grid;gap:.4rem;font-weight:700;color:#17365d}.panel select,.asset-form input,.asset-form select{width:100%;border:1px solid #aebbc8;border-radius:.55rem;background:#fff;padding:.7rem;font:inherit}.asset-form{display:grid;gap:.8rem;margin-top:1rem}.asset-form label{display:grid;gap:.35rem;color:#17365d;font-weight:700}.hierarchy{display:grid;gap:1rem}.hierarchy>article{border-top:1px solid #d8e0e8;padding-top:1rem}.site-block{background:#f4f7fa;border-radius:.7rem;display:grid;gap:.25rem;margin-top:.65rem;padding:.8rem}.site-block>span{color:#5a6675;font-size:.9rem}.site-block ul{list-style:none;margin:.65rem 0 0;padding:0}.site-block li{display:flex;justify-content:space-between;align-items:center;gap:.75rem;border-top:1px solid #d8e0e8;padding:.65rem 0}@media(max-width:760px){.owner-layout{grid-template-columns:1fr}}@media(max-width:560px){.topbar,.section-heading{align-items:stretch;flex-direction:column}.metrics{grid-template-columns:1fr}.connection{align-self:flex-start}.site-block li{align-items:flex-start;flex-direction:column}}.qr-result{display:flex;gap:2rem;align-items:center;margin-top:1.5rem}.qr-label{width:360px;padding:1rem;border:2px solid var(--ink, #172025);border-radius:12px;text-align:center;background:#fff;color:#172025}.qr-label img{display:block;width:100%;height:auto}.qr-label strong{display:block;letter-spacing:.12em}.qr-details{display:grid;gap:.75rem;min-width:0}.qr-details a{overflow-wrap:anywhere}.qr-details div{display:flex;gap:.75rem;flex-wrap:wrap}.public-shell{max-width:720px;margin:0 auto;padding:1rem}.passport-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.passport-grid div{padding:.75rem;border-radius:8px;background:#f3f5f5}.passport-grid dt{color:#536166;font-size:.85rem}.passport-grid dd{margin:.25rem 0 0;font-weight:650}.public-actions{display:flex;gap:.75rem;margin-top:1rem}.privacy-note{color:#536166;font-size:.9rem}.content-panel{margin-top:1.5rem}.content-columns,.upload-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}.upload-columns{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #d8dfdf}.upload-columns form{display:grid;gap:.75rem;align-content:start}.upload-columns textarea{min-height:5rem;resize:vertical}.file-list{display:grid;gap:.5rem;padding:0;list-style:none}.file-list li{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem;border-radius:8px;background:#f3f5f5}.file-list span{display:grid;min-width:0}.file-list small{color:#536166;overflow-wrap:anywhere}.field-panel{display:grid;gap:1.5rem;margin-top:1.5rem}.field-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;align-items:end}.field-form h3{grid-column:1 / -1}.field-form textarea{min-height:5rem}.work-list{display:grid;gap:.75rem;padding:0;list-style:none}.work-list>li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:center;padding:1rem;border-radius:10px;background:#f3f5f5}.work-list>li>div{display:grid}.work-list form{display:grid;gap:.5rem;min-width:min(100%,320px)}@media(max-width:700px){.qr-result{flex-direction:column;align-items:stretch}.qr-label{width:auto}.content-columns,.upload-columns{grid-template-columns:1fr}}@media print{body *{visibility:hidden}.qr-label,.qr-label *{visibility:visible}.qr-label{position:absolute;left:0;top:0;width:50mm;border-radius:0}.qr-label .eyebrow{font-size:10pt}}
