:root{--bg:#f5f7fb;--panel:#fff;--panel2:#f8fafc;--text:#17202b;--muted:#718096;--line:#e4e9f0;--accent:#315fd9;--accent2:#edf3ff;--danger:#d84747;--warn:#b86d1e;--ok:#2b7d57;--info:#4477b8;--shadow:0 10px 30px rgba(25,40,65,.07);--radius:18px}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;background:var(--bg);color:var(--text)}body.dark{--bg:#0f141b;--panel:#171e27;--panel2:#111820;--text:#eef3f8;--muted:#98a6b5;--line:#293341;--accent:#83a5ff;--accent2:#222d44;--danger:#ff7373;--warn:#efa458;--ok:#66ca99;--info:#8eb8ef;--shadow:none}
button,input,textarea,select{font:inherit}.app-shell{max-width:600px;margin:0 auto;min-height:100vh;padding-bottom:92px;background:var(--bg)}.topbar{position:sticky;top:0;z-index:30;display:flex;justify-content:space-between;align-items:center;padding:16px 16px 10px;background:color-mix(in srgb,var(--bg) 91%,transparent);backdrop-filter:blur(18px)}.eyebrow{font-size:11px;color:var(--muted);margin-bottom:3px}.topbar h1{font-size:21px;margin:0}.icon-btn{width:40px;height:40px;border:1px solid var(--line);border-radius:14px;background:var(--panel);color:var(--text);box-shadow:var(--shadow)}main{padding:0 14px 22px}
.hero,.card{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow)}.hero{border-radius:24px;padding:17px;margin-bottom:13px;background:linear-gradient(145deg,var(--panel),var(--accent2))}.hero-row,.row-between{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.hero strong{font-size:18px}.hero p,.muted{color:var(--muted)}.hero p{font-size:12px;line-height:1.6;margin:5px 0 0}.pill,.badge{border-radius:999px;white-space:nowrap}.pill{font-size:11px;padding:6px 9px;background:var(--accent2);color:var(--accent)}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}.stat{border:1px solid var(--line);border-radius:14px;background:var(--panel);padding:9px;text-align:center}.stat b{display:block;font-size:20px}.stat small{font-size:10px;color:var(--muted)}
.actions{display:grid;grid-template-columns:1.08fr .92fr;gap:10px;margin:13px 0}.big-action{border:0;border-radius:20px;min-height:96px;padding:18px 14px;text-align:left;color:#fff;box-shadow:var(--shadow)}.big-action b{display:block;font-size:19px;margin-bottom:5px}.big-action span{font-size:11px;line-height:1.5;opacity:.88}.danger-action{background:linear-gradient(145deg,#d94444,#ba3434)}.note-action{background:linear-gradient(145deg,#3869e3,#2b54bd)}.mini-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}.mini-actions button,.secondary-btn{border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:14px;padding:12px 8px}.section-head{display:flex;justify-content:space-between;align-items:center;margin:17px 2px 8px}.section-head h2{font-size:15px;margin:0}.section-head button{border:0;background:none;color:var(--accent);font-size:12px}.list{display:grid;gap:9px}.card{border-radius:17px;padding:13px}.card.clickable{width:100%;text-align:left;color:inherit}.card-title{font-weight:700;font-size:14px}.meta{font-size:11px;color:var(--muted);margin-top:4px;line-height:1.45}.next{font-size:12px;color:var(--accent);margin-top:8px}.badge{font-size:10px;padding:5px 8px}.badge.red{background:color-mix(in srgb,var(--danger) 13%,transparent);color:var(--danger)}.badge.orange{background:color-mix(in srgb,var(--warn) 13%,transparent);color:var(--warn)}.badge.green{background:color-mix(in srgb,var(--ok) 13%,transparent);color:var(--ok)}.badge.blue{background:color-mix(in srgb,var(--info) 13%,transparent);color:var(--info)}
.tabbar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(600px,100%);display:grid;grid-template-columns:repeat(5,1fr);padding:7px 8px calc(8px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--panel) 94%,transparent);border-top:1px solid var(--line);backdrop-filter:blur(18px);z-index:40}.tab{border:0;background:none;color:var(--muted);display:grid;gap:2px;justify-items:center;padding:5px}.tab span{font-size:19px}.tab small{font-size:10px}.tab.active{color:var(--accent)}
.toolbar{display:flex;gap:7px;overflow:auto;padding:2px 0 9px}.chip{border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:999px;padding:8px 11px;white-space:nowrap;font-size:12px}.chip.active{background:var(--accent2);border-color:transparent;color:var(--accent);font-weight:700}.segment{display:flex;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:4px;margin:9px 0 12px}.segment button{flex:1;border:0;background:none;color:var(--muted);padding:9px 6px;border-radius:10px;font-size:12px}.segment button.active{background:var(--accent2);color:var(--accent);font-weight:700}.compact-select{display:grid;grid-template-columns:1.15fr .85fr;gap:8px}.selectish{width:100%;border:1px solid var(--line);border-radius:13px;background:var(--panel);color:var(--text);padding:10px}
.floor-map-wrap{position:relative;height:430px;border:1px solid var(--line);border-radius:20px;background:var(--panel);overflow:hidden;touch-action:none}.floor-map{position:absolute;left:0;top:0;width:1100px;height:455px;transform-origin:0 0}.corridor{position:absolute;left:58px;right:58px;top:180px;height:92px;border-radius:13px;background:color-mix(in srgb,var(--muted) 10%,transparent);border:1px solid color-mix(in srgb,var(--muted) 10%,transparent)}.room,.public-space{position:absolute;border-radius:11px;padding:6px 7px;text-align:left;color:var(--text);overflow:hidden}.room{width:43px;height:78px;border:1px solid var(--line);background:var(--panel);box-shadow:0 2px 8px rgba(0,0,0,.04)}.room b{font-size:11px}.room small{display:block;font-size:8px;color:var(--muted);margin-top:4px;white-space:nowrap}.room.pass{outline:2px solid var(--ok);background:color-mix(in srgb,var(--ok) 7%,var(--panel))}.room.issue{outline:2px solid var(--danger);background:color-mix(in srgb,var(--danger) 7%,var(--panel))}.room.function{background:color-mix(in srgb,var(--info) 8%,var(--panel));border-style:dashed}.room.male:after,.room.female:after{content:"";position:absolute;right:5px;bottom:5px;width:6px;height:6px;border-radius:50%}.room.male:after{background:#5c8bd7}.room.female:after{background:#d879a3}.public-space{border:1px dashed var(--warn);background:color-mix(in srgb,var(--warn) 7%,var(--panel));font-size:8px;line-height:1.2;display:flex;align-items:center;justify-content:center;text-align:center}.public-space.pass{outline:2px solid var(--ok)}.public-space.issue{outline:2px solid var(--danger)}.barrier{position:absolute;top:172px;height:110px;width:4px;background:#39414d;border-radius:4px;z-index:5;box-shadow:0 0 0 2px color-mix(in srgb,#39414d 13%,transparent)}.barrier:after{content:"隔断";position:absolute;top:37px;left:6px;font-size:8px;writing-mode:vertical-rl;color:var(--muted)}.map-controls{position:absolute;right:9px;bottom:9px;display:grid;gap:5px;z-index:8}.map-controls button{width:38px;height:38px;border:1px solid var(--line);border-radius:11px;background:var(--panel);color:var(--text);box-shadow:var(--shadow)}.map-hint{font-size:10px;color:var(--muted);margin:7px 2px 0}.map-legend{display:flex;gap:10px;flex-wrap:wrap;font-size:9px;color:var(--muted);margin:7px 1px}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;vertical-align:middle;margin-right:3px}.dot.male{background:#5c8bd7}.dot.female{background:#d879a3}
.room-list{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.room-item{border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:14px;padding:10px;text-align:left}.room-item.pass{border-color:var(--ok)}.room-item.issue{border-color:var(--danger)}.room-item b{display:block}.room-item small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.public-list{width:100%;text-align:left;color:inherit}.bottom-cta{position:sticky;bottom:77px;display:flex;gap:8px;margin-top:12px;padding-top:22px;background:linear-gradient(transparent,var(--bg) 27%);z-index:15}.bottom-cta button{flex:1;border:0;border-radius:14px;padding:12px}.primary{background:var(--accent);color:white}.success{background:var(--ok);color:#fff}.danger-btn{background:var(--danger);color:#fff}
.modal{border:0;border-radius:24px;padding:0;width:min(540px,calc(100% - 22px));max-height:90vh;background:var(--panel);color:var(--text);box-shadow:0 30px 90px rgba(0,0,0,.32)}.modal::backdrop{background:rgba(0,0,0,.46);backdrop-filter:blur(4px)}.modal-inner{padding:17px}.modal h2{margin:0 0 5px;font-size:19px}.modal p{font-size:12px;color:var(--muted);line-height:1.55}.form-grid{display:grid;gap:10px;margin:13px 0}.field label{display:block;font-size:11px;color:var(--muted);margin-bottom:5px}.field input,.field textarea,.field select{width:100%;border:1px solid var(--line);border-radius:12px;background:var(--panel2);color:var(--text);padding:11px}.field textarea{min-height:85px;resize:vertical}.type-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.type-grid button{border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--text);padding:11px;text-align:left}.type-grid button.active{border-color:var(--accent);background:var(--accent2);color:var(--accent)}.modal-actions{display:flex;gap:8px;margin-top:12px}.modal-actions button{flex:1;border:0;border-radius:12px;padding:12px}.timeline{border-left:2px solid var(--line);margin:12px 0 0 7px;padding-left:15px;display:grid;gap:12px}.timeline-item{position:relative;font-size:12px}.timeline-item:before{content:"";position:absolute;left:-21px;top:4px;width:10px;height:10px;border-radius:50%;background:var(--accent)}.timeline-item small{display:block;color:var(--muted);margin-top:2px}.sop{background:var(--accent2);border-radius:14px;padding:11px;margin-top:10px}.sop ol{padding-left:18px;margin:7px 0 0}.sop li{font-size:12px;margin:5px 0}.call-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin-top:9px}.call-grid button{border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:11px;padding:9px;text-align:left;font-size:11px}.upload-thumb{width:100%;max-height:190px;object-fit:cover;border-radius:13px;border:1px solid var(--line)}.empty{text-align:center;padding:25px;color:var(--muted);font-size:12px}.notice{border:1px solid color-mix(in srgb,var(--warn) 25%,var(--line));background:color-mix(in srgb,var(--warn) 6%,var(--panel));border-radius:14px;padding:10px;font-size:11px;color:var(--muted);line-height:1.5}.kbd{font-size:9px;border:1px solid var(--line);border-radius:5px;padding:1px 4px;background:var(--panel2)}
@media(min-width:700px){body{background:#dde3ea}.app-shell{box-shadow:0 0 70px rgba(0,0,0,.12)}}

.topbar-actions{display:flex;gap:8px;align-items:center}.topbar-actions .icon-btn:first-child{font-size:11px;font-weight:800}.floor-strip{display:flex;gap:8px;overflow-x:auto;padding:2px 0 10px;scrollbar-width:none}.floor-strip::-webkit-scrollbar{display:none}.floor-chip{flex:0 0 auto;border:1px solid var(--line);background:var(--card);color:var(--muted);padding:9px 12px;border-radius:999px}.floor-chip.active{background:var(--text);color:var(--bg);border-color:var(--text)}.floor-chip.done:not(.active){border-color:#62a77b;color:#377f52}.inspection-progress{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:12px;margin:-2px 0 10px}.bottom-cta.three{grid-template-columns:1fr 1fr 1.2fr}.checkline{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px;padding:4px 0}.inspection-resume{margin-top:12px}.task-card{border-left:3px solid rgba(74,116,224,.35)}@media(max-width:420px){.bottom-cta.three{grid-template-columns:1fr 1fr}.bottom-cta.three .primary{grid-column:1/-1}.inspection-progress{flex-direction:column;gap:3px}}

/* v0.5 shared PC data */
.data-source-line{font-size:10px;color:var(--muted);padding:7px 2px 10px;line-height:1.45}.history-tag{display:inline-block;margin-left:5px;padding:2px 5px;border-radius:999px;background:var(--accent2);color:var(--accent);font-size:9px;font-weight:500}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.info-grid>div{border:1px solid var(--line);border-radius:12px;padding:10px;background:var(--panel2)}.info-grid small{display:block;color:var(--muted);font-size:9px;margin-bottom:4px}.info-grid b{font-size:12px;line-height:1.45}.login-screen{position:fixed;inset:0;z-index:200;background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(18px);display:grid;place-items:center;padding:20px}.login-screen.hidden{display:none}.login-card{width:min(390px,100%);background:var(--panel);border:1px solid var(--line);border-radius:24px;padding:24px;box-shadow:0 26px 80px rgba(0,0,0,.18)}.login-card h2{margin:4px 0 8px;font-size:23px}.login-card p{font-size:12px;line-height:1.65;color:var(--muted);margin:0 0 18px}.login-card input{width:100%;border:1px solid var(--line);border-radius:13px;background:var(--panel2);color:var(--text);padding:13px;margin-bottom:10px}.login-card button{width:100%;border:0;border-radius:13px;padding:13px}.login-error{min-height:18px;color:var(--danger);font-size:11px;margin-top:8px}

/* v0.8.1 shared-sync visibility */
.sync-status{font-size:9px;padding:5px 8px;border-radius:999px;border:1px solid var(--line);white-space:nowrap;background:var(--panel);color:var(--muted)}
.sync-status.ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 30%,var(--line));background:color-mix(in srgb,var(--ok) 7%,var(--panel))}
.sync-status.error{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 30%,var(--line));background:color-mix(in srgb,var(--danger) 7%,var(--panel))}
.sync-status.pending,.sync-status.syncing{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 30%,var(--line));background:color-mix(in srgb,var(--warn) 7%,var(--panel))}

.photo-preview-card{display:flex;gap:10px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:12px;background:var(--card)}.photo-preview-card img{width:76px;height:76px;object-fit:cover;border-radius:9px}.photo-preview-card span{font-size:12px;color:var(--muted)}.attachment-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:8px 0 14px}.attachment-thumb{display:block;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--card)}.attachment-thumb img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover}.attachment-thumb small{display:block;padding:4px 6px;color:var(--muted);font-size:10px}

.event-task-inline{margin-top:8px;padding:7px 9px;border-radius:10px;background:var(--soft);font-size:11px;color:var(--muted)}
