:root{color-scheme:light;--bg: #f1f4f4;--surface: #f8faf9;--surface-strong: #ffffff;--ink: #1f3038;--muted: #64717a;--soft: #e5ebec;--line: #d5ddde;--line-strong: #bcc9cc;--facade: #314650;--facade-deep: #22343d;--facade-soft: #e6ecee;--window: #eef3f4;--accent: #1a6f5f;--accent-dark: #123f3b;--accent-soft: #dfeee9;--warn: #b87412;--warn-soft: #fff3d4;--danger: #a9453d;--danger-soft: #f8dfdc;--ok: #2d7d48;--ok-soft: #e0f2e6;--shadow: 0 18px 42px rgba(31, 48, 56, .13);--shadow-soft: 0 8px 24px rgba(31, 48, 56, .075);--radius: 14px;--tap: 48px;--safe-bottom: env(safe-area-inset-bottom, 0px);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body{min-height:100%}body{margin:0;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,textarea,select{font:inherit}button{border:0}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid rgba(49,70,80,.24);outline-offset:2px}.app-shell{min-height:100svh;background:linear-gradient(180deg,#3146500e,#31465000 190px),linear-gradient(90deg,rgba(49,70,80,.022) 1px,transparent 1px),var(--bg);background-size:auto,34px 34px,auto}.screen{min-height:100svh;padding:12px 12px calc(24px + var(--safe-bottom))}.screen.narrow{max-width:760px;margin:0 auto}.loading-screen,.login-screen{min-height:100svh;display:grid;align-content:center;gap:22px;padding:24px}.brand-mark{width:52px;height:52px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(145deg,var(--facade-deep),var(--facade));color:var(--window);font-weight:800;letter-spacing:0;box-shadow:inset 0 0 0 1px #ffffff14}.login-panel{max-width:520px}.login-panel h1{margin:0 0 10px;font-size:clamp(2rem,9vw,3.8rem);line-height:.95;letter-spacing:0}.login-panel p{margin:0 0 28px;color:var(--muted);line-height:1.45;max-width:34rem}.name-grid{display:grid;gap:10px}.name-button,.primary-button,.secondary-button,.ghost-button,.status-button,.item-button{min-height:var(--tap);border-radius:var(--radius);cursor:pointer;transition:transform .14s ease,background .14s ease,border-color .14s ease,box-shadow .14s ease}.name-button:active,.primary-button:active,.secondary-button:active,.ghost-button:active,.status-button:active,.item-button:active{transform:translateY(1px)}.name-button{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--surface);color:var(--ink);border:1px solid var(--line);text-align:left;font-weight:750;box-shadow:var(--shadow-soft)}.app-header{position:sticky;top:0;z-index:20;margin:-12px -12px 14px;padding:calc(10px + env(safe-area-inset-top,0px)) 14px 10px;background:#f1f4f4e0;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);border-bottom:1px solid rgba(188,201,204,.7)}.topbar{display:flex;align-items:center;gap:10px}.header-title{min-width:0;flex:1}.eyebrow{margin:0;font-size:.74rem;color:var(--muted);font-weight:760}.header-title h1{margin:1px 0 0;font-size:clamp(1.18rem,5vw,1.48rem);line-height:1.05;letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.icon-button{width:var(--tap);height:var(--tap);border-radius:var(--radius);display:grid;place-items:center;background:var(--surface);color:var(--ink);border:1px solid var(--line);cursor:pointer;box-shadow:var(--shadow-soft)}.icon-button svg{width:21px;height:21px}.header-actions{flex:0 0 auto;display:inline-flex;align-items:center;gap:8px}.header-action-button{min-height:var(--tap);border-radius:999px;display:inline-flex;align-items:center;gap:6px;padding:0 11px;background:var(--surface-strong);color:var(--ink);border:1px solid var(--line);cursor:pointer;font-size:.78rem;font-weight:850;box-shadow:var(--shadow-soft)}.header-action-button svg{width:18px;height:18px}.header-action-button strong{min-width:20px;height:20px;display:inline-grid;place-items:center;border-radius:999px;background:var(--warn-soft);color:var(--warn);font-size:.72rem;line-height:1}.header-action-button.active{background:var(--facade-deep);border-color:var(--facade-deep);color:#fffdf6}.header-area-button{min-height:var(--tap);border-radius:var(--radius);display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 12px;background:var(--facade-deep);color:#fffdf6;border:1px solid var(--facade-deep);cursor:pointer;font-size:.8rem;font-weight:850;box-shadow:var(--shadow-soft)}.header-area-button svg{width:19px;height:19px}.net-button{min-width:54px;height:var(--tap);border-radius:999px;display:inline-flex;gap:7px;align-items:center;justify-content:center;padding:0 13px;background:var(--surface-strong);color:var(--ink);border:1px solid var(--line);cursor:pointer;font-size:.78rem;font-weight:850;box-shadow:var(--shadow-soft)}.net-button.offline{color:var(--warn);background:var(--warn-soft);border-color:#b8741242}.field-overview{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px;padding:18px;border-radius:22px;background:linear-gradient(135deg,var(--facade-deep),var(--facade));color:#fffdf6;box-shadow:var(--shadow)}.field-overview h2{margin:2px 0 6px;font-size:clamp(1.55rem,8vw,2.55rem);line-height:.98;letter-spacing:0}.field-overview p{margin:0;color:#fffdf6b8;line-height:1.35}.overview-label{font-size:.78rem;font-weight:820;color:#fffdf6a3!important}.sync-chip{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;min-height:32px;padding:0 11px;border-radius:999px;background:#eef3f421;color:#fffdf6;font-size:.76rem;font-weight:820;white-space:nowrap}.sync-dot{width:8px;height:8px;border-radius:999px;background:#4fc87a;box-shadow:0 0 0 4px #4fc87a24}.sync-dot.offline{background:var(--warn);box-shadow:0 0 0 4px #b8741229}.floor-first{display:grid;gap:10px;margin-bottom:14px}.floor-panel,.priority-panel,.location-progress{border:1px solid var(--line);border-radius:22px;background:#ffffffeb;box-shadow:var(--shadow-soft);overflow:hidden}.floor-panel,.priority-panel,.location-progress{padding:13px}.floor-panel.compact{padding:9px}.floor-compact-control{width:100%;min-height:68px;display:flex;align-items:center;gap:11px;padding:8px 9px;border-radius:17px;background:#fff;border:1px solid transparent;color:var(--ink);text-align:left;cursor:pointer}.floor-compact-control:active{transform:translateY(1px)}.floor-compact-copy{min-width:0;flex:1;display:grid;gap:1px}.floor-compact-copy span,.floor-compact-copy small{display:block;overflow:hidden;color:var(--muted);font-size:.76rem;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.floor-compact-copy strong{display:block;overflow:hidden;font-size:1.08rem;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.change-floor{flex:0 0 auto;min-height:34px;display:inline-flex;align-items:center;gap:4px;padding:0 10px;border-radius:999px;background:var(--facade-deep);color:#fffdf6;font-size:.78rem;font-weight:850}.change-floor svg{width:15px;height:15px}.floor-panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}.floor-panel-head h2{margin:0;font-size:1.04rem;line-height:1.18}.floor-panel-head p{margin:4px 0 0;color:var(--muted);font-size:.86rem;line-height:1.3}.mini-filter{min-height:34px;border-radius:999px;padding:0 12px;background:var(--surface);border:1px solid var(--line);color:var(--ink);font-size:.8rem;font-weight:850;cursor:pointer}.mini-filter.active{background:var(--facade-deep);border-color:var(--facade-deep);color:#fffdf6}.floor-spine,.priority-list{display:grid;gap:7px}.floor-spine{grid-template-columns:repeat(3,minmax(0,1fr))}.floor-button,.priority-row{width:100%;position:relative;display:flex;align-items:center;gap:10px;min-height:58px;padding:8px 9px;border-radius:16px;text-align:left;background:#fff;border:1px solid transparent;color:var(--ink);cursor:pointer}.floor-button{min-height:46px;display:flex;justify-content:center;padding:8px 10px;text-align:center;border-color:var(--line)}.floor-button.zone-current,.priority-row.rollup-current,.location-card.rollup-current{background:linear-gradient(180deg,#fbfffc,var(--ok-soft));border-color:#2d7d483d}.floor-button.zone-due,.priority-row.rollup-due,.location-card.rollup-due{background:linear-gradient(180deg,#ffffff,var(--facade-soft));border-color:#31465033}.floor-button.zone-yellow,.priority-row.rollup-yellow,.location-card.rollup-yellow{background:linear-gradient(180deg,#fffdf7,var(--warn-soft));border-color:#b8741247}.floor-button.zone-red,.priority-row.rollup-red,.location-card.rollup-red{background:linear-gradient(180deg,#fffafa,var(--danger-soft));border-color:#a9453d47}.floor-button .status-pill,.floor-button .floor-level{display:none}.floor-button.active,.priority-row:hover{border-color:var(--line-strong)}.floor-button.active{box-shadow:inset 0 0 0 2px var(--facade),var(--shadow-soft)}.floor-level{flex:0 0 34px;width:34px;height:34px;display:grid;place-items:center;border-radius:12px;background:var(--soft);color:var(--ink);font-weight:900}.zone-red .floor-level,.rollup-red .floor-level{background:var(--danger-soft);color:var(--danger)}.zone-yellow .floor-level,.zone-due .floor-level,.rollup-yellow .floor-level,.rollup-due .floor-level{background:var(--warn-soft);color:var(--warn)}.zone-current .floor-level,.rollup-current .floor-level{background:var(--ok-soft);color:var(--ok)}.floor-copy,.priority-row span:first-child{min-width:0;flex:1;display:grid;gap:2px}.floor-button .floor-copy{display:grid;place-items:center;width:100%}.floor-copy strong,.priority-row strong{display:block;overflow:hidden;color:var(--ink);font-size:.95rem;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.floor-button .floor-copy strong{overflow:visible;font-size:.92rem;line-height:1.12;text-overflow:clip;white-space:normal}.floor-copy span,.priority-row small{display:block;overflow:hidden;color:var(--muted);font-size:.78rem;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.floor-button .floor-copy span{display:none}.priority-row{min-height:62px;padding:10px;border-color:var(--line)}.priority-panel.zone-content{border-color:var(--line-strong)}.row-chevron{flex:0 0 auto;display:grid;place-items:center;width:24px;height:24px;margin-left:-4px;color:var(--muted)}.row-chevron svg{width:18px;height:18px}.dashboard-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:14px}.metric{min-height:70px;padding:11px;border-radius:18px;background:var(--surface-strong);border:1px solid var(--line);box-shadow:var(--shadow-soft)}.metric strong{display:block;font-size:clamp(1.36rem,5vw,1.7rem);line-height:1;letter-spacing:0}.metric span{display:block;margin-top:6px;color:var(--muted);font-size:.78rem;line-height:1.1}.filter-row{display:flex;gap:8px;overflow-x:auto;padding:1px 0 11px;scrollbar-width:none}.filter-row::-webkit-scrollbar{display:none}.filter-chip{flex:0 0 auto;min-height:38px;padding:0 13px;border-radius:999px;background:var(--surface-strong);border:1px solid var(--line);color:var(--ink);font-size:.88rem;font-weight:750;cursor:pointer;box-shadow:0 1px #10201c05}.filter-chip.active{background:var(--facade-deep);color:#fff8e7;border-color:var(--facade-deep)}.location-list,.issue-list,.history-list{display:grid;gap:9px}.location-workspace{display:grid;gap:12px}.location-sidebar,.location-main-column{min-width:0}.location-next{display:grid;gap:4px;margin-top:13px;padding:12px;border-radius:16px;background:var(--facade-soft)}.location-next span{color:var(--muted);font-size:.76rem;font-weight:850}.location-next strong{color:var(--facade-deep);font-size:.95rem;line-height:1.25}.location-progress.done{border-color:#2d7d4847}.location-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:9px}.location-stat-grid .metric{min-height:58px;padding:10px;box-shadow:none}.location-stat-grid .metric strong{font-size:1.25rem}.side-issue-panel{margin-top:12px}.side-panel-head{display:flex;align-items:center;justify-content:space-between;margin:0 2px 8px}.side-panel-head h2{margin:0;font-size:.98rem}.side-panel-head span{min-width:28px;min-height:28px;display:inline-grid;place-items:center;border-radius:999px;background:var(--warn-soft);color:var(--warn);font-size:.78rem;font-weight:900}.group-heading{margin:22px 2px 9px;color:var(--muted);font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.075em}.location-card{position:relative;width:100%;text-align:left;padding:15px 14px 14px 18px;border-radius:18px;background:var(--surface-strong);border:1px solid var(--line);box-shadow:var(--shadow-soft);cursor:pointer;overflow:hidden;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.location-card:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--line-strong)}.location-card.rollup-current:before{background:var(--ok)}.location-card.rollup-yellow:before,.location-card.rollup-due:before{background:var(--warn)}.location-card.rollup-red:before{background:var(--danger)}.location-card:hover{transform:translateY(-1px);border-color:var(--line-strong);box-shadow:var(--shadow)}.location-main{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.location-name{margin:0;font-weight:820;font-size:1.05rem;letter-spacing:0}.location-meta,.item-meta,.small-meta{margin:5px 0 0;color:var(--muted);font-size:.84rem;line-height:1.3}.status-pill{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:999px;font-size:.76rem;font-weight:850;white-space:nowrap}.status-current{background:var(--ok-soft);color:var(--ok)}.status-due{background:var(--facade-soft);color:var(--facade)}.status-yellow{background:var(--warn-soft);color:var(--warn)}.status-red{background:var(--danger-soft);color:var(--danger)}.status-open{background:var(--warn-soft);color:var(--warn)}.status-attention{background:#ffead8;color:#9e4b00}.progress-line{height:6px;overflow:hidden;border-radius:999px;background:var(--soft);margin-top:12px}.progress-line>span{display:block;height:100%;border-radius:inherit;background:var(--accent)}.section-title{margin:20px 2px 10px;font-size:1.02rem;line-height:1.2;letter-spacing:0}.completed-block{margin-top:12px}.completed-toggle{width:100%;min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 14px;border-radius:17px;background:#ffffffd1;border:1px solid var(--line);color:var(--ink);cursor:pointer;box-shadow:var(--shadow-soft)}.completed-toggle span{color:var(--muted);font-size:.88rem;font-weight:820}.completed-toggle strong{color:var(--accent);font-size:.84rem}.completed-list{margin-top:9px}.done-state{border:1px solid rgba(45,125,72,.24);border-radius:18px;background:var(--ok-soft);color:var(--ok);font-weight:820}.item-card,.issue-card,.history-card{position:relative;background:var(--surface-strong);border:1px solid var(--line);border-radius:22px;padding:15px;box-shadow:var(--shadow-soft);overflow:hidden;animation:cardIn .18s ease both}.item-card:before{content:"";position:absolute;inset:0 0 auto;height:5px;background:transparent}.item-card.item-current:before{background:var(--ok)}.item-card.item-due:before,.item-card.item-yellow:before{background:var(--warn)}.item-card.item-red:before{background:var(--danger)}.item-card.attention{border-color:#efb371;box-shadow:0 0 0 1px #efb3714d}.item-card.checked-compact{padding:0;border-color:#2d7d483d;background:#fbfffc}.item-card.checked-compact:before{height:0}.checked-summary{width:100%;min-height:68px;display:flex;align-items:center;gap:10px;padding:11px 12px;background:transparent;color:var(--ink);text-align:left;cursor:pointer}.checked-icon{flex:0 0 34px;width:34px;height:34px;display:grid;place-items:center;border-radius:999px;background:var(--ok-soft);color:var(--ok)}.checked-icon svg{width:20px;height:20px}.checked-copy{min-width:0;flex:1;display:grid;gap:2px}.checked-copy strong{overflow:hidden;font-size:.98rem;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.checked-copy small{overflow:hidden;color:var(--muted);font-size:.78rem;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.checked-action{flex:0 0 auto;min-height:30px;display:inline-flex;align-items:center;padding:0 10px;border-radius:999px;background:var(--ok-soft);color:var(--ok);font-size:.76rem;font-weight:850}.recheck-strip{min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 8px 7px 12px;border-radius:15px;background:var(--ok-soft);color:var(--ok);font-size:.86rem;font-weight:850}.recheck-strip button{min-height:32px;padding:0 12px;border-radius:999px;background:#fff;border:1px solid rgba(45,125,72,.26);color:var(--ok);cursor:pointer;font-size:.78rem;font-weight:900}.item-head{display:flex;gap:10px;align-items:flex-start;justify-content:space-between}.item-title{margin:0;font-size:clamp(1.04rem,3.4vw,1.16rem);line-height:1.25;letter-spacing:0}.item-controls{display:grid;gap:10px;margin-top:12px}.control-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.primary-actions{gap:9px}.utility-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.item-button{display:flex;align-items:center;justify-content:center;gap:8px;padding:0 12px;background:var(--accent);color:#fff;font-size:1rem;font-weight:850;line-height:1.1;text-align:center;box-shadow:inset 0 -1px #00000014}.item-button:disabled{cursor:wait;opacity:.72}.item-button svg{width:22px;height:22px;flex:0 0 auto}.primary-actions .item-button{min-height:82px;font-size:clamp(1.08rem,4vw,1.18rem);padding:0 14px}.primary-actions .item-button svg{width:28px;height:28px}.ok-button{background:#1b765f}.ok-button:hover{background:#16674f}.item-button.secondary{background:var(--surface);color:var(--ink);border:1px solid var(--line);box-shadow:none}.item-button.warn{background:var(--warn-soft);color:var(--warn);border:1px solid rgba(189,122,20,.32)}.item-button.active{background:#f0c36d;color:#4c3003;border-color:#b874126b}.note-preview{margin:0;padding:9px 11px;border-radius:16px;background:var(--accent-soft);color:var(--accent-dark);font-size:.9rem;line-height:1.35}.photo-strip{display:grid;gap:8px;padding:10px;border-radius:16px;background:var(--surface);border:1px solid var(--line)}.history-inline{display:grid;gap:7px;padding:10px;border-radius:16px;background:var(--surface);border:1px solid var(--line)}.history-inline.empty{margin:0;color:var(--muted);font-size:.88rem}.photo-strip-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.photo-strip-head span,.photo-strip-head strong{color:var(--muted);font-size:.78rem;font-weight:850}.photo-strip-head strong{color:var(--ok)}.field-row{display:grid;gap:6px}.field-row label{color:var(--muted);font-size:.78rem;font-weight:800}.text-input,.number-input,.note-input,.status-select{width:100%;min-height:var(--tap);border-radius:16px;border:1px solid var(--line);background:#fffefb;color:var(--ink);padding:11px 12px;box-shadow:inset 0 1px #10201c05}.note-input{min-height:86px;resize:vertical}.file-input{display:none}.thumb-row{display:flex;gap:8px;overflow-x:auto;padding-top:2px}.thumb{flex:0 0 auto;width:58px;height:58px;border-radius:8px;object-fit:cover;border:1px solid var(--line);background:var(--soft)}.sync-bar{position:fixed;left:0;right:0;z-index:30}.sync-bar{bottom:calc(12px + var(--safe-bottom));margin:0 14px;pointer-events:none}.sync-bar>div{max-width:760px;margin:0 auto;border-radius:16px;background:var(--ink);color:#fff8e7;padding:10px 12px;font-size:.84rem;box-shadow:var(--shadow)}.toast{position:fixed;left:0;right:0;bottom:calc(18px + var(--safe-bottom));z-index:70;display:grid;justify-items:center;pointer-events:none;padding:0 14px}.sync-bar+.toast{bottom:calc(66px + var(--safe-bottom))}.toast>div{min-height:42px;display:inline-flex;align-items:center;gap:8px;padding:0 14px;border-radius:999px;background:var(--facade-deep);color:#fffdf6;box-shadow:var(--shadow);font-size:.88rem;font-weight:860;animation:sheetIn .16s ease both}.toast svg{width:18px;height:18px}.empty-state{padding:24px 14px;color:var(--muted);text-align:center}.empty-state.compact{padding:10px 2px 2px;text-align:left}.print-only{display:none}.report-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px;padding:18px;border-radius:22px;background:linear-gradient(135deg,var(--facade-deep),var(--facade));color:#fffdf6;box-shadow:var(--shadow)}.report-hero h2{margin:2px 0 6px;font-size:clamp(1.8rem,8vw,3rem);line-height:.98;letter-spacing:0}.report-hero p{margin:0;color:#fffdf6bd;line-height:1.35}.print-button{flex:0 0 auto;min-height:var(--tap);display:inline-flex;align-items:center;gap:8px;padding:0 14px;border-radius:999px;background:#fffdf6;color:var(--facade-deep);cursor:pointer;font-size:.86rem;font-weight:900;box-shadow:var(--shadow-soft)}.print-button svg{width:19px;height:19px}.report-summary{margin-top:10px}.report-section{margin-top:12px;padding:14px;border-radius:20px;background:var(--surface-strong);border:1px solid var(--line);box-shadow:var(--shadow-soft)}.report-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}.report-section-head h2{margin:0;font-size:1.06rem;line-height:1.2}.report-section-head p{margin:4px 0 0;color:var(--muted);font-size:.86rem;line-height:1.3}.report-table,.compact-list,.status-count-list{display:grid;gap:8px}.report-table.dense{gap:6px}.report-row{width:100%;min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 10px;border-radius:15px;background:var(--surface);border:1px solid var(--line);color:var(--ink);text-align:left}.report-row.interactive{cursor:pointer}.report-row>span:first-child{min-width:0;display:grid;gap:2px}.report-row strong{font-size:.94rem;line-height:1.22}.report-row small{color:var(--muted);font-size:.78rem;line-height:1.25}.progress-badge{flex:0 0 112px;display:grid;gap:5px;text-align:right}.progress-badge>strong{font-size:.9rem}.progress-badge>span{height:7px;overflow:hidden;border-radius:999px;background:var(--soft)}.progress-badge i{display:block;height:100%;border-radius:inherit;background:var(--accent)}.report-grid{display:grid;gap:12px}.status-count-row{min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 9px;border-radius:14px;background:var(--surface);border:1px solid var(--line)}.status-count-row strong{font-size:1.1rem}.compact-report-card{padding:10px;border-radius:14px;background:var(--surface);border:1px solid var(--line)}.compact-report-card strong,.compact-report-card span{display:block}.compact-report-card strong{font-size:.94rem;line-height:1.25}.compact-report-card span{margin-top:3px;color:var(--muted);font-size:.78rem}.compact-report-card p{margin:7px 0 0;font-size:.88rem;line-height:1.35}.report-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.report-photo{margin:0;overflow:hidden;border-radius:16px;background:var(--surface);border:1px solid var(--line)}.report-photo img{display:block;width:100%;aspect-ratio:4 / 3;object-fit:cover;background:var(--soft)}.report-photo figcaption{display:grid;gap:2px;padding:9px}.report-photo figcaption strong{font-size:.84rem;line-height:1.22}.report-photo figcaption span{color:var(--muted);font-size:.76rem;line-height:1.25}.primary-button,.secondary-button,.ghost-button,.status-button{padding:0 14px;font-weight:850}.primary-button{background:var(--accent);color:#fff;box-shadow:inset 0 -1px #00000014}.primary-button:disabled{opacity:.54;cursor:default}.secondary-button{background:var(--surface);color:var(--ink);border:1px solid var(--line)}.ghost-button{background:transparent;color:var(--accent-dark)}.status-button{background:var(--surface);color:var(--ink);border:1px solid var(--line)}.status-button.active{background:var(--ink);color:#fff8e7;border-color:var(--ink)}.issue-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.issue-summary-button{width:100%;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:0;background:transparent;color:var(--ink);text-align:left;cursor:pointer}.issue-quick-actions{display:flex;flex-wrap:wrap;gap:6px;padding:12px 0 2px}.issue-chip{flex:0 0 auto;min-height:34px;padding:0 11px;border-radius:999px;background:var(--surface);border:1px solid var(--line);color:var(--ink);cursor:pointer;font-size:.78rem;font-weight:850}.issue-chip.active{background:var(--facade-deep);border-color:var(--facade-deep);color:#fffdf6}.issue-card-footer{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:8px;margin-top:10px}.issue-support-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.issue-detail-toggle,.issue-photo-button,.issue-save-button{min-height:42px}.issue-photo-button,.modal-photo-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:pointer}.issue-photo-button svg,.modal-photo-button svg{width:18px;height:18px}.modal-photo-button{min-height:44px}.modal-photo-button.active{background:var(--accent-soft);color:var(--accent-dark);border-color:#1a6f5f42}.issue-save-button:disabled{background:var(--surface);border:1px solid var(--line);color:var(--muted);box-shadow:none;opacity:1;cursor:default}.issue-note-input,.issue-photo-strip{margin-top:10px}.validation-note{margin:9px 0 0;padding:9px 11px;border-radius:14px;background:var(--danger-soft);color:var(--danger);font-size:.84rem;font-weight:820;line-height:1.3}.issue-timeline{display:grid;gap:8px;margin-top:12px;padding:11px;border-radius:16px;background:var(--surface);border:1px solid var(--line)}.timeline-row{display:grid;grid-template-columns:12px minmax(0,1fr);gap:9px}.timeline-row>span{width:9px;height:9px;margin-top:5px;border-radius:999px;background:var(--accent)}.timeline-row strong{display:block;font-size:.86rem;line-height:1.25}.timeline-row p{margin:3px 0 0;color:var(--muted);font-size:.78rem;line-height:1.3}.timeline-note{color:var(--ink)!important}.history-card.compact{padding:10px;border-radius:14px;box-shadow:none}.history-card.compact .item-title{font-size:.92rem}.issue-card.compact{padding:12px;border-radius:18px}.issue-card.compact .item-title{font-size:.96rem}.issue-card.compact .issue-quick-actions{padding-top:10px}.two-column{display:grid;gap:10px}.modal-backdrop{position:fixed;inset:0;z-index:60;display:grid;align-items:start;padding:calc(74px + env(safe-area-inset-top,0px)) 14px calc(14px + var(--safe-bottom));background:#12211d75;animation:fadeIn .14s ease both;overflow-y:auto}.note-modal{width:min(100%,620px);margin:0 auto;display:grid;gap:14px;padding:16px;border-radius:24px;background:var(--surface-strong);box-shadow:var(--shadow);max-height:calc(100svh - 96px - env(safe-area-inset-top,0px));overflow-y:auto;animation:topSheetIn .18s ease both}.note-modal h2{margin:3px 0 0;font-size:1.25rem;line-height:1.2}.modal-note-input{min-height:160px;font-size:1rem}.modal-helper{margin:7px 0 0;color:var(--muted);font-size:.92rem;line-height:1.35}.modal-actions{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:8px}.modal-actions.attention-actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.modal-actions .primary-button,.modal-actions .secondary-button{min-height:54px}.warn-action{background:#f0c36d;color:#332002;box-shadow:inset 0 -1px #4c30031f}@keyframes cardIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes sheetIn{0%{opacity:0;transform:translateY(12px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes topSheetIn{0%{opacity:0;transform:translateY(-8px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:520px){.topbar{gap:8px}.brand-mark{width:46px;height:46px}.header-action-button{min-width:48px;padding:0 10px}.header-action-button span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.header-action-button strong{margin-left:-2px}.dashboard-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.metric{min-height:66px}.primary-actions{grid-template-columns:1fr}.report-hero{display:grid}.print-button{width:100%;justify-content:center}.progress-badge{flex-basis:88px}.utility-grid{grid-template-columns:1fr}.primary-actions .item-button{min-height:72px}}@media(min-width:800px){.screen{padding-bottom:28px}.screen.narrow{max-width:1120px}.floor-first{grid-template-columns:minmax(320px,.95fr) minmax(380px,1.05fr);align-items:start}.floor-spine{grid-template-columns:repeat(3,minmax(0,1fr))}.desktop-grid{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(0,1.6fr);gap:18px;align-items:start}.location-workspace{grid-template-columns:minmax(300px,.74fr) minmax(0,1.26fr);gap:16px;align-items:start}.location-sidebar{position:sticky;top:86px}.location-list{grid-template-columns:repeat(2,minmax(0,1fr))}.location-main-column .location-list,.issue-list{grid-template-columns:minmax(0,1fr)}.report-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}.report-photo-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.sync-bar{bottom:18px}.modal-backdrop{align-items:start}}@media print{@page{margin:.5in}:root{--bg: #ffffff;--surface: #ffffff;--surface-strong: #ffffff;--shadow: none;--shadow-soft: none}body,.app-shell{background:#fff}.app-header,.sync-bar,.toast,.print-button{display:none!important}.screen,.screen.narrow{max-width:none;min-height:auto;padding:0;margin:0}.review-screen{color:#111}.print-only{display:grid}.report-hero{display:block;padding:0 0 12px;margin:0 0 12px;border:0;border-radius:0;background:#fff;color:#111;box-shadow:none;border-bottom:2px solid #111111}.report-hero h2{font-size:32px}.report-hero p,.overview-label{color:#333!important}.report-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:12px;font-size:11px}.report-meta div{display:grid;gap:2px}.dashboard-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.metric,.report-section,.report-row,.status-count-row,.compact-report-card,.report-photo{box-shadow:none;break-inside:avoid}.report-section{margin-top:10px;padding:10px;border-radius:0}.report-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-photo-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.report-photo img{max-height:120px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
