:root{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif;color:#102033;background:#f3f6f9;--green:#14b866;--red:#ed4338;--blue:#174a83;--line:#e2e8ef}*{box-sizing:border-box}html,body{overscroll-behavior:none}body{margin:0;min-height:100vh;background:linear-gradient(#fafbfd,#eef3f7);-webkit-tap-highlight-color:transparent}.app-shell{max-width:540px;margin:0 auto;padding:calc(env(safe-area-inset-top) + 16px) 16px calc(env(safe-area-inset-bottom) + 28px);min-height:100vh}.app-head{display:flex;align-items:center;gap:11px;padding:6px 2px 18px}.head-copy{min-width:0}.app-head h1{font-size:23px;margin:0;font-weight:820;letter-spacing:-.02em}.app-head p{margin:2px 0 0;color:#727d8b;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:170px}.logo-mark{width:40px;height:40px;border-radius:13px;background:var(--blue);color:#fff;display:grid;place-items:center;font-size:21px;font-weight:900}.icon-btn{border:0;background:transparent;font-size:19px;letter-spacing:1px;color:#687584;padding:9px 4px 9px 8px;margin-left:0}.sync-pill{margin-left:auto;min-width:62px;text-align:center;border-radius:999px;padding:6px 8px;font-size:10px;font-weight:800;white-space:nowrap}.sync-pill.good{background:#e2f6e9;color:#1f7541}.sync-pill.pending{background:#fff1c7;color:#73580a}.sync-pill.offline{background:#fee9e7;color:#9c332c}.sync-pill.neutral{background:#eaf0f5;color:#637081}.card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:20px;box-shadow:0 8px 28px rgba(18,42,66,.055);margin-bottom:14px}.hidden{display:none!important}.state-badge{display:inline-flex;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:850;letter-spacing:.05em}.state-badge.neutral{background:#edf1f5;color:#52606f}.state-badge.green{background:#e1f5e8;color:#1f7541}.status-card{text-align:center;padding:28px 20px}.status-card h2{font-size:31px;margin:14px 0 4px;letter-spacing:-.03em}.project-name{font-size:17px;font-weight:750;margin:8px 0;color:#274158}.timer{font-size:45px;font-weight:820;font-variant-numeric:tabular-nums;letter-spacing:-.04em;margin:20px 0 4px}.muted{color:#748091;line-height:1.45}.centered{text-align:center}.offline{background:#fff1c9;color:#6d5611;border:1px solid #e7d37a;border-radius:13px;padding:10px 12px;margin-bottom:12px;font-size:13px;font-weight:700}.install-hint{display:flex;align-items:center;gap:10px;background:#eef5ff;border:1px solid #d4e2f3;border-radius:15px;padding:12px 12px;margin-bottom:12px}.install-hint div{display:grid;gap:2px;min-width:0}.install-hint strong{font-size:13px}.install-hint span{font-size:11px;color:#68798c;line-height:1.35}.tiny-btn{margin-left:auto;border:0;background:transparent;font-size:22px;color:#64758a;padding:3px 7px}.pair-card h2{font-size:27px;margin:14px 0 6px}.action-card{padding:18px 20px}label{display:grid;gap:8px;color:#536071;font-size:13px;font-weight:650}input,select{width:100%;border:1px solid #d6dde6;border-radius:14px;padding:15px 14px;font:inherit;background:#fff;color:#16283b;outline:none}input:focus,select:focus{border-color:#3b76b8;box-shadow:0 0 0 3px rgba(48,108,171,.12)}button{font:inherit;cursor:pointer;touch-action:manipulation}.primary,.danger,.secondary,.ghost{width:100%;border:0;border-radius:15px;padding:14px;font-weight:850}.primary{background:var(--green);color:white}.danger{background:var(--red);color:white}.secondary{background:#eaf0f6;color:#173955}.ghost{background:transparent}.big{margin-top:14px}.huge{font-size:18px;padding:20px;margin-top:16px;min-height:64px}.primary:disabled,.danger:disabled,.secondary:disabled{opacity:.55;cursor:default}.error{color:#b23530;min-height:20px;font-size:13px}.kv{display:flex;justify-content:space-between;gap:18px;padding:13px 0;border-bottom:1px solid #edf0f3}.kv span{color:#718092}.kv strong{text-align:right}.danger-text{color:#b23530;margin-top:8px}.text-action{width:100%;border:0;background:transparent;color:#315d89;font-weight:750;padding:13px}.section-head{display:grid;grid-template-columns:90px 1fr 90px;align-items:center;margin:4px 0 15px}.section-head h2{font-size:21px;text-align:center;margin:0}.back-link{border:0;background:transparent;color:#315d89;text-align:left;padding:8px 0;font-weight:700}.history-list{display:grid;gap:10px}.history-day{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 6px 20px rgba(18,42,66,.04)}.history-day-title{padding:11px 14px;background:#f7f9fb;font-size:12px;color:#667587;font-weight:800}.history-row{padding:13px 14px;border-top:1px solid #edf1f4;display:grid;grid-template-columns:1fr auto;gap:8px}.history-row:first-of-type{border-top:0}.history-project{font-weight:750}.history-time{font-size:12px;color:#6f7e8e;margin-top:3px}.history-duration{font-weight:850;font-variant-numeric:tabular-nums;align-self:center}.toast{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom) + 22px);transform:translateX(-50%);max-width:min(90vw,430px);background:#13283d;color:#fff;border-radius:14px;padding:11px 15px;font-size:13px;font-weight:700;box-shadow:0 12px 30px rgba(0,0,0,.2);z-index:20}.pulse{animation:pulse .25s ease}@keyframes pulse{50%{transform:scale(.985)}}@media (display-mode:standalone){.install-hint{display:none!important}}@media(max-width:360px){.app-shell{padding-left:11px;padding-right:11px}.timer{font-size:39px}.app-head p{max-width:125px}}
.action-note{font-size:11px;line-height:1.4;color:#8792a0;text-align:center;margin:10px 4px 0}.verification-hint{display:inline-flex;margin-top:13px;padding:6px 10px;border-radius:999px;font-size:11px;font-weight:800}.verification-hint.good{background:#e2f6e9;color:#1f7541}.verification-hint.info{background:#e8f1fb;color:#2b5c8e}.verification-hint.warn{background:#fff1c7;color:#73580a}.verification-hint.bad{background:#fee9e7;color:#9c332c}.checkpoint-card{position:relative;display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:10px;background:#eef5ff;border:1px solid #cadcf0;border-radius:17px;padding:12px 38px 12px 12px;margin-bottom:12px;box-shadow:0 5px 18px rgba(31,75,119,.06)}.checkpoint-icon{width:36px;height:36px;border-radius:12px;background:#174a83;color:#fff;display:grid;place-items:center;font-weight:900;font-size:22px}.checkpoint-copy{display:grid;gap:2px;min-width:0}.checkpoint-copy strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.checkpoint-copy span{font-size:11px;color:#65788c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.checkpoint-btn{border:0;border-radius:11px;background:#174a83;color:#fff;font-size:10px;font-weight:850;padding:9px 10px;white-space:nowrap}.checkpoint-btn:disabled{background:#aab5c1}.checkpoint-close{position:absolute;right:7px;top:5px;border:0;background:transparent;color:#708197;font-size:18px}.history-verify{display:inline-grid;place-items:center;width:17px;height:17px;border-radius:50%;font-size:10px;vertical-align:1px;margin-left:4px}.history-verify.good{background:#e2f6e9;color:#1f7541}.history-verify.warn{background:#fff1c7;color:#73580a}.history-verify.bad{background:#fee9e7;color:#9c332c}

/* v0.2.4 */
.pair-diagnostic{padding:12px 13px;border-radius:10px;background:#fff3cf;border:1px solid #ead183;color:#66500c;font-size:13px;line-height:1.4;margin:8px 0 14px}.pair-diagnostic.bad{background:#fdebea;border-color:#efc1bd;color:#8a312a}.muted-inline{font-weight:400;color:#8a94a3;font-size:11px}
/* v0.4.0 — KIOSK_PHONE + Inventory */
.kiosk-phone-card{border-color:#cfddec;background:#f8fbff}.kiosk-phone-card h2{margin:12px 0 4px}.asset-card{border-color:#d8e2e8}.asset-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.asset-card h2{margin:10px 0 4px;font-size:24px}.asset-destination{margin-top:16px}.asset-history{margin-top:16px;border-top:1px solid #edf0f3;padding-top:10px}.asset-history-row{padding:9px 0;border-bottom:1px solid #edf0f3;font-size:12px}.asset-history-row:last-child{border-bottom:0}.asset-history-row strong{display:block;font-size:13px;color:#263e55}.asset-qr-video{width:100%;max-height:360px;object-fit:cover;border-radius:16px;margin-top:14px;background:#111}

.location-detection-hint{margin:.6rem 0 1rem;padding:.7rem .8rem;border:1px solid #d9e2ec;border-radius:10px;background:#f8fafc;color:#52606d;font-size:.9rem;line-height:1.35}
.location-detection-hint.good{background:#f3faf6;border-color:#b9dfc8;color:#245b37}
.location-detection-hint.warn{background:#fffaf0;border-color:#ead8a6;color:#6f5722}
.location-detection-hint.bad{background:#fff7f7;border-color:#ebc5c5;color:#7a3434}

/* v0.5.4 ORR — UX Lab + kiosk authorization hardening */
.ux-lab-badge{border:1px solid #dbe3ec;background:#f7f9fb;color:#718092;border-radius:999px;padding:5px 7px;font-size:9px;font-weight:850;letter-spacing:.06em;white-space:nowrap}
.secondary-actions{display:grid;gap:0}.secondary-actions-toggle{display:none;width:100%;border:1px solid #dce4ec;background:#f7f9fb;color:#36536e;border-radius:14px;padding:12px;font-size:12px;font-weight:800;margin:2px 0 4px}.full-diagnostics{display:none}.full-diagnostics-title{font-size:12px;text-transform:uppercase;letter-spacing:.06em;font-weight:850;color:#6d7c8d;margin-bottom:3px}.ux-profile-nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:15px 0 4px;padding:10px 0;border-top:1px solid #edf0f3;border-bottom:1px solid #edf0f3;font-size:12px}.ux-profile-nav span{color:#7b8796;font-weight:700}.ux-profile-nav a{color:#315d89;text-decoration:none;font-weight:800;background:#eef4fa;border-radius:999px;padding:6px 9px}

body[data-ui-profile="basic"] .sync-pill{display:none}
body[data-ui-profile="basic"] .app-head{padding-bottom:12px}
body[data-ui-profile="basic"] .status-card{padding:22px 18px;margin-bottom:10px}
body[data-ui-profile="basic"] .status-card h2{font-size:27px;margin-top:11px}
body[data-ui-profile="basic"] .timer{font-size:39px;margin-top:14px}
body[data-ui-profile="basic"] .action-card{padding:16px 18px}
body[data-ui-profile="basic"] .action-note{display:none}
body[data-ui-profile="basic"] .location-detection-hint{font-size:12px;padding:8px 9px;margin:.5rem 0 .8rem}
body[data-ui-profile="basic"] .secondary-actions-toggle{display:block}
body[data-ui-profile="basic"] .secondary-actions{display:none;border:1px solid #e5eaf0;border-radius:15px;background:#fff;margin-top:8px;overflow:hidden}
body[data-ui-profile="basic"] .secondary-actions.open{display:grid}
body[data-ui-profile="basic"] .secondary-actions .text-action{border-top:1px solid #edf1f4}
body[data-ui-profile="basic"] .secondary-actions .text-action:first-child{border-top:0}
body[data-ui-profile="basic"] .install-hint{font-size:12px}

body[data-ui-profile="standard"] .secondary-actions{display:grid}
body[data-ui-profile="standard"] .ux-lab-badge{opacity:.82}

body[data-ui-profile="full"] .full-diagnostics{display:block}
body[data-ui-profile="full"] .secondary-actions{display:grid}
body[data-ui-profile="full"] .status-card{margin-bottom:10px}
body[data-ui-profile="full"] .action-note{display:block}
body[data-ui-profile="full"] .ux-lab-badge{background:#eef5ff;border-color:#cbdced;color:#315d89}

.nfc-status{margin-top:10px;padding:11px 12px;border-radius:13px;background:#eef5ff;border:1px solid #d4e2f3;color:#36536e;font-size:12px;line-height:1.4}.nfc-status.bad{background:#fee9e7;border-color:#f0cbc7;color:#8f332d}

/* v0.5.4 — kiosk authorization UX */
.kiosk-method-actions{display:grid;gap:10px;margin:14px 0}.kiosk-method-actions .big{margin-top:0}.kiosk-method-actions button.selected{box-shadow:0 0 0 3px rgba(23,74,131,.12)}.kiosk-mobile-box{margin-top:16px;padding:16px;border:1px solid #dce5ee;border-radius:17px;background:#f8fbfe}.kiosk-mobile-box h3{margin:10px 0 4px;font-size:19px}.personal-qr-box{text-align:center}.personal-qr-image{display:block;width:min(300px,78vw);height:auto;margin:16px auto 8px;padding:10px;background:#fff;border:1px solid #dce4ec;border-radius:14px}

/* v0.5.5 pre-live polish */
.settings-back{width:100%;border:1px solid #b9cee3;border-radius:15px;padding:14px;background:#dfeaf6;color:#174a83;font-weight:900;text-align:left}
body[data-ui-profile="basic"] #assetScanBtn{display:none!important}
body[data-ui-profile="basic"] #installHelpBtn{display:none!important}
body[data-ui-profile="basic"] .ux-profile-nav{margin-top:22px;margin-bottom:0;opacity:.82}

/* v0.6.0 — Team Leader mobile read-only view */
.team-today-list{display:grid;gap:10px;margin:14px 0}.team-today-row{display:flex;justify-content:space-between;gap:14px;align-items:center;background:#fff;border:1px solid #dfe6ee;border-radius:14px;padding:14px}.team-today-state{text-align:right;display:flex;flex-direction:column;gap:4px;min-width:95px}.team-today-state span{font-weight:800}.team-today-state small{color:#667085}.team-today-state.active span{color:#087443}.team-today-state.inactive span{color:#667085}
