@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/app/static/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2)format("woff2"),url(/app/static/inter-cyrillic-ext-400-normal-DQukG94-.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/app/static/inter-cyrillic-400-normal-obahsSVq.woff2)format("woff2"),url(/app/static/inter-cyrillic-400-normal-HOLc17fK.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/app/static/inter-greek-ext-400-normal-DGGRlc-M.woff2)format("woff2"),url(/app/static/inter-greek-ext-400-normal-KugGGMne.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/app/static/inter-greek-400-normal-B4URO6DV.woff2)format("woff2"),url(/app/static/inter-greek-400-normal-q2sYcFCs.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/app/static/inter-vietnamese-400-normal-DMkecbls.woff2)format("woff2"),url(/app/static/inter-vietnamese-400-normal-Bbgyi5SW.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/app/static/inter-latin-ext-400-normal-C1nco2VV.woff2)format("woff2"),url(/app/static/inter-latin-ext-400-normal-77YHD8bZ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/app/static/inter-latin-400-normal-C38fXH4l.woff2)format("woff2"),url(/app/static/inter-latin-400-normal-CyCys3Eg.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/app/static/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2)format("woff2"),url(/app/static/inter-cyrillic-ext-500-normal-BmqWE9Dz.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/app/static/inter-cyrillic-500-normal-BasfLYem.woff2)format("woff2"),url(/app/static/inter-cyrillic-500-normal-CxZf_p3X.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/app/static/inter-greek-ext-500-normal-C4iEst2y.woff2)format("woff2"),url(/app/static/inter-greek-ext-500-normal-2j5mBUwD.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/app/static/inter-greek-500-normal-BIZE56-Y.woff2)format("woff2"),url(/app/static/inter-greek-500-normal-Xzm54t5V.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/app/static/inter-vietnamese-500-normal-DOriooB6.woff2)format("woff2"),url(/app/static/inter-vietnamese-500-normal-mJboJaSs.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/app/static/inter-latin-ext-500-normal-CV4jyFjo.woff2)format("woff2"),url(/app/static/inter-latin-ext-500-normal-BxGbmqWO.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/app/static/inter-latin-500-normal-Cerq10X2.woff2)format("woff2"),url(/app/static/inter-latin-500-normal-BL9OpVg8.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/app/static/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2)format("woff2"),url(/app/static/inter-cyrillic-ext-600-normal-Bcila6Z-.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/app/static/inter-cyrillic-600-normal-CWCymEST.woff2)format("woff2"),url(/app/static/inter-cyrillic-600-normal-4D_pXhcN.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/app/static/inter-greek-ext-600-normal-DRtmH8MT.woff2)format("woff2"),url(/app/static/inter-greek-ext-600-normal-B8X0CLgF.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/app/static/inter-greek-600-normal-plRanbMR.woff2)format("woff2"),url(/app/static/inter-greek-600-normal-BZpKdvQh.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/app/static/inter-vietnamese-600-normal-Cc8MFFhd.woff2)format("woff2"),url(/app/static/inter-vietnamese-600-normal-BuLX-rYi.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/app/static/inter-latin-ext-600-normal-D2bJ5OIk.woff2)format("woff2"),url(/app/static/inter-latin-ext-600-normal-CIVaiw4L.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/app/static/inter-latin-600-normal-LgqL8muc.woff2)format("woff2"),url(/app/static/inter-latin-600-normal-CiBQ2DWP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/app/static/inter-cyrillic-ext-700-normal-BjwYoWNd.woff2)format("woff2"),url(/app/static/inter-cyrillic-ext-700-normal-LO58E6JB.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/app/static/inter-cyrillic-700-normal-CjBOestx.woff2)format("woff2"),url(/app/static/inter-cyrillic-700-normal-DrXBdSj3.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/app/static/inter-greek-ext-700-normal-qfdV9bQt.woff2)format("woff2"),url(/app/static/inter-greek-ext-700-normal-BoQ6DsYi.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/app/static/inter-greek-700-normal-C3JjAnD8.woff2)format("woff2"),url(/app/static/inter-greek-700-normal-BUv2fZ6O.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/app/static/inter-vietnamese-700-normal-DlLaEgI2.woff2)format("woff2"),url(/app/static/inter-vietnamese-700-normal-BZaoP0fm.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/app/static/inter-latin-ext-700-normal-Ca8adRJv.woff2)format("woff2"),url(/app/static/inter-latin-ext-700-normal-TidjK2hL.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/app/static/inter-latin-700-normal-Yt3aPRUw.woff2)format("woff2"),url(/app/static/inter-latin-700-normal-BLAVimhd.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--color-primary:#3d7a4f;--color-primary-dark:#2f5f3e;--color-primary-soft:#e6f0e9;--color-sand:#f5ecd7;--color-accent:#d97b2a;--color-accent-dark:#b8641f;--color-alert:#c0392b;--color-bg:#fff;--color-fg:#1c1c1e;--color-surface:#f2f2f7;--color-border:#e2ddd0;--color-muted:#6b7280;--color-success:#3d7a4f;--color-warning:#d97b2a;--color-danger:#c0392b;--color-todo:#8a8a8e;--color-in-progress:#d97b2a;--color-done:#3d7a4f;--color-blocked:#c0392b;--phase-1:#3f6fb0;--phase-2:#d97b2a;--phase-3:#3d7a4f;--phase-4:#2a9d8f;--phase-5:#6b5b95;--radius:12px;--radius-sm:8px;--gap:16px;--touch-min:48px;--shadow-card:0 1px 3px #1c1c1e14, 0 1px 2px #1c1c1e0a;--shadow-lift:0 4px 16px #1c1c1e1f;--font:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font);background:var(--color-surface);color:var(--color-fg);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.5}.app-header{padding:12px var(--gap);border-bottom:2px solid var(--color-fg);background:var(--color-bg);z-index:10;align-items:center;gap:12px;display:flex;position:sticky;top:0}.app-header h1{letter-spacing:-.5px;font-size:1.25rem;font-weight:700}.app-header .sync-status{color:var(--color-muted);margin-left:auto;font-size:.75rem}.page{padding:var(--gap);flex:1}.btn{min-height:var(--touch-min);min-width:var(--touch-min);border:2px solid var(--color-primary);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-primary);cursor:pointer;-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:1rem;font-weight:600;text-decoration:none;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.btn:hover,.btn:focus-visible{background:var(--color-primary);color:#fff;outline:none}.btn-primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.btn-accent{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.btn-accent:hover,.btn-accent:focus-visible{background:var(--color-accent-dark);border-color:var(--color-accent-dark);color:#fff}.btn-danger{border-color:var(--color-danger);color:var(--color-danger);background:var(--color-bg)}.btn-danger:hover,.btn-danger:focus-visible{background:var(--color-danger);color:var(--color-bg)}.btn-ghost{background:0 0;border-color:#0000}.btn-ghost:hover,.btn-ghost:focus-visible{background:var(--color-surface);color:var(--color-fg)}.btn-sm{min-height:var(--touch-min);padding:0 14px;font-size:.875rem}.field{margin-bottom:var(--gap);flex-direction:column;gap:6px;display:flex}.field label{color:var(--color-fg);font-size:.875rem;font-weight:600}.field input,.field select,.field textarea{min-height:var(--touch-min);border:2px solid var(--color-border);border-radius:var(--radius);font-size:1rem;font-family:var(--font);background:var(--color-bg);color:var(--color-fg);width:100%;padding:8px 12px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--color-fg);outline:none}.field-error{color:var(--color-danger);font-size:.75rem}.card{border:2px solid var(--color-border);border-radius:var(--radius);padding:var(--gap);background:var(--color-bg);margin-bottom:12px}.card:last-child{margin-bottom:0}.project-item{padding:14px var(--gap);border:2px solid var(--color-border);border-radius:var(--radius);color:inherit;min-height:var(--touch-min);-webkit-tap-highlight-color:transparent;cursor:pointer;align-items:center;gap:12px;margin-bottom:10px;text-decoration:none;display:flex}.project-item:hover,.project-item:focus-visible{background:var(--color-surface);border-color:var(--color-fg);outline:none}.project-item .project-name{flex:1;font-size:1rem;font-weight:600}.project-item .project-arrow{color:var(--color-muted);font-size:1.25rem}.phase-card{border:2px solid var(--color-border);border-radius:var(--radius);margin-bottom:16px;overflow:hidden}.phase-card:last-child{margin-bottom:0}.phase-header{padding:12px var(--gap);background:var(--color-surface);border-bottom:1px solid var(--color-border);min-height:var(--touch-min);align-items:center;gap:12px;display:flex}.phase-title{flex:1;font-size:1rem;font-weight:700}.phase-status-badge{border:1.5px solid;border-radius:99px;padding:3px 10px;font-size:.75rem;font-weight:600}.phase-status-badge.todo{color:var(--color-todo)}.phase-status-badge.in_progress{color:var(--color-in-progress)}.phase-status-badge.done{color:var(--color-done)}.progress-wrap{padding:8px var(--gap);border-bottom:1px solid var(--color-border);align-items:center;gap:10px;display:flex}.progress-bar{background:var(--color-border);border-radius:99px;flex:1;height:8px;overflow:hidden}.progress-fill{background:var(--color-fg);border-radius:99px;height:100%;transition:width .3s}.progress-label{color:var(--color-muted);text-align:right;min-width:36px;font-size:.75rem;font-weight:600}.task-list{padding:4px var(--gap) 8px}.task-row{border-bottom:1px solid var(--color-surface);min-height:var(--touch-min);cursor:pointer;align-items:center;gap:10px;padding:10px 0;display:flex}.task-row:last-child{border-bottom:none}.task-status-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.task-status-dot.todo{background:var(--color-todo)}.task-status-dot.in_progress{background:var(--color-in-progress)}.task-status-dot.blocked{background:var(--color-danger)}.task-status-dot.done{background:var(--color-done)}.task-title{flex:1;font-size:.9375rem}.task-title.done{color:var(--color-muted);text-decoration:line-through}.task-priority-badge{text-transform:uppercase;letter-spacing:.5px;color:var(--color-muted);font-size:.6875rem;font-weight:700}.task-priority-badge.high{color:var(--color-danger)}.empty{text-align:center;color:var(--color-muted);padding:40px 16px;font-size:.9375rem}.dialog-overlay{z-index:100;background:#0000008c;justify-content:center;align-items:flex-end;padding:0;animation:.15s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.dialog{background:var(--color-bg);border-radius:var(--radius) var(--radius) 0 0;border:2px solid var(--color-fg);padding:var(--gap);border-bottom:none;width:100%;max-width:600px;max-height:80vh;animation:.2s slideUp;overflow-y:auto}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.dialog-title{margin-bottom:var(--gap);font-size:1.125rem;font-weight:700}.dialog-actions{margin-top:var(--gap);flex-wrap:wrap;gap:12px;display:flex}.page-actions{margin-bottom:var(--gap);justify-content:space-between;align-items:center;gap:12px;display:flex}.page-title{letter-spacing:-.5px;font-size:1.375rem;font-weight:800}.page-title-group{align-items:baseline;gap:10px;min-width:0;display:flex}.tenant-name{color:var(--color-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;font-weight:600;overflow:hidden}.tenant-no-instance-hint{color:var(--color-muted);margin-bottom:var(--gap);font-size:.875rem}.back-link{color:var(--color-fg);margin-bottom:var(--gap);min-height:var(--touch-min);align-items:center;gap:4px;font-size:.875rem;font-weight:600;text-decoration:none;display:inline-flex}.back-link:hover{text-decoration:underline}.section-heading{text-transform:uppercase;letter-spacing:.75px;color:var(--color-muted);margin-top:24px;margin-bottom:10px;font-size:.875rem;font-weight:700}.section-heading:first-child{margin-top:0}@media (width>=600px){.dialog-overlay{align-items:center}.dialog{border-radius:var(--radius);border-bottom:2px solid var(--color-fg);max-width:480px}}.app-nav{align-items:center;gap:4px;display:flex}.app-nav__link{min-height:var(--touch-min);color:var(--color-muted);border-radius:var(--radius);-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;padding:0 12px;font-size:.875rem;font-weight:600;text-decoration:none;display:inline-flex}.app-nav__link:hover,.app-nav__link--active{color:var(--color-fg);background:var(--color-surface)}.task-row-wrap{border-bottom:1px solid var(--color-surface);align-items:center;gap:4px;display:flex}.task-row-wrap:last-child{border-bottom:none}.task-row-wrap .task-row{border-bottom:none;flex:1}.task-assign-btn,.task-detail-btn{min-width:var(--touch-min);flex-shrink:0;padding:0 8px;font-size:1rem}.contractor-picker-name{flex:1;font-size:.9375rem;font-weight:600}.contractor-picker-specialty{color:var(--color-muted);font-size:.8125rem}.settings-link{min-width:var(--touch-min);min-height:var(--touch-min);color:var(--color-fg);-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;margin-left:auto;font-size:1.25rem;text-decoration:none;display:inline-flex}.settings-link:hover,.settings-link:focus-visible{opacity:.6;outline:none}.app-header .sync-status{margin-left:auto}.app-header .settings-link{margin-left:8px}.page-actions-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.bulk-bar{background:var(--color-fg);color:var(--color-bg);padding:10px var(--gap);border-radius:var(--radius);text-align:center;margin-bottom:12px;font-size:.875rem;font-weight:600}.task-row-selectable{cursor:pointer}.task-row-selected{background:var(--color-surface)}.task-checkbox{border:2px solid var(--color-fg);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:24px;min-width:24px;height:24px;font-size:.875rem;font-weight:700;display:inline-flex}.task-checkbox.checked{background:var(--color-fg);color:var(--color-bg)}.dialog-subtitle{color:var(--color-muted);margin-bottom:var(--gap);font-size:.875rem}.template-grid{margin-bottom:var(--gap);grid-template-columns:1fr 1fr;gap:10px;display:grid}.template-card{border:2px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);cursor:pointer;text-align:left;min-height:var(--touch-min);-webkit-tap-highlight-color:transparent;flex-direction:column;align-items:flex-start;gap:4px;padding:12px;transition:border-color .1s,background .1s;display:flex}.template-card:hover,.template-card:focus-visible{border-color:var(--color-fg);background:var(--color-surface);outline:none}.template-card-icon{margin-bottom:2px;font-size:1.5rem;line-height:1}.template-card-name{color:var(--color-fg);font-size:.9375rem;font-weight:700}.template-card-desc{color:var(--color-muted);font-size:.75rem;line-height:1.4}.template-card-meta{color:var(--color-muted);margin-top:auto;padding-top:4px;font-size:.6875rem}.template-card-blank{border-style:dashed}.template-preview-note{color:var(--color-muted);margin-bottom:var(--gap);background:var(--color-surface);border-radius:var(--radius);padding:10px 12px;font-size:.8125rem}.empty-state{flex-direction:column;align-items:center;gap:16px;padding:32px 16px;display:flex}.settings-section{margin-bottom:24px}.settings-card{background:var(--color-bg);border:2px solid var(--color-border);border-radius:var(--radius);overflow:hidden}.settings-row{padding:12px var(--gap);border-bottom:1px solid var(--color-surface);min-height:var(--touch-min);justify-content:space-between;align-items:center;gap:12px;display:flex}.settings-row:last-child{border-bottom:none}.settings-row-total{background:var(--color-surface);font-weight:600}.settings-label{color:var(--color-fg);font-size:.9375rem}.settings-label-muted{color:var(--color-muted);font-size:.875rem}.settings-value{color:var(--color-muted);font-size:.875rem;font-weight:600}.settings-badge{font-size:1rem;font-weight:700}.settings-badge.ok{color:var(--color-success)}.settings-badge.warn{color:var(--color-warning)}.settings-desc{color:var(--color-muted);padding:12px var(--gap) 0;font-size:.875rem}.settings-export-btn{margin:12px var(--gap);width:calc(100% - 2 * var(--gap))}.task-detail-title-wrap{align-items:center;gap:10px;margin-bottom:20px;display:flex}.task-detail-title{letter-spacing:-.5px;cursor:pointer;flex:1;font-size:1.375rem;font-weight:800}.task-detail-title-input{border:2px solid var(--color-fg);border-radius:var(--radius);width:100%;font-size:1.375rem;font-weight:800;font-family:var(--font);background:var(--color-bg);color:var(--color-fg);padding:4px 8px}.task-detail-lock{flex-shrink:0;font-size:1.25rem}.detail-section{border-top:1px solid var(--color-border);padding:14px 0}.detail-section--danger{padding-top:14px}.detail-section-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.detail-label{text-transform:uppercase;letter-spacing:.75px;color:var(--color-muted);margin-bottom:8px;font-size:.75rem;font-weight:700;display:block}.status-btn-group,.priority-btn-group{flex-wrap:wrap;gap:8px;display:flex}.status-btn,.priority-btn{min-height:var(--touch-min);border:2px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);color:var(--color-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;padding:0 14px;font-size:.875rem;font-weight:600}.status-btn--active.status-btn--todo,.status-btn--todo:hover{border-color:var(--color-todo);color:var(--color-todo)}.status-btn--active.status-btn--in_progress,.status-btn--in_progress:hover{border-color:var(--color-in-progress);color:var(--color-in-progress)}.status-btn--active.status-btn--blocked,.status-btn--blocked:hover{border-color:var(--color-danger);color:var(--color-danger)}.status-btn--active.status-btn--done,.status-btn--done:hover{border-color:var(--color-done);color:var(--color-done)}.priority-btn--active.priority-btn--low,.priority-btn--low:hover{border-color:var(--color-muted);color:var(--color-muted)}.priority-btn--active.priority-btn--normal,.priority-btn--normal:hover{border-color:var(--color-in-progress);color:var(--color-in-progress)}.priority-btn--active.priority-btn--high,.priority-btn--high:hover{border-color:var(--color-danger);color:var(--color-danger)}.phase-picker-row{align-items:center;gap:8px;display:flex}.phase-picker-row select{flex:auto}.phase-suggest-btn{white-space:nowrap;flex:none}.phase-suggest-btn:disabled{opacity:.45;cursor:not-allowed}.phase-suggest-hint{color:var(--color-muted);margin:6px 0 0;font-size:.875rem}.phase-desc-hint{color:var(--color-muted);border-left:3px solid var(--color-border-strong,#0b0b0b);white-space:pre-wrap;margin:6px 0 0;padding:6px 10px;font-size:.85rem;line-height:1.35}.estimate-wrap{align-items:center;gap:8px;display:flex}.estimate-input{min-height:var(--touch-min);border:2px solid var(--color-border);border-radius:var(--radius);width:100px;font-size:1rem;font-family:var(--font);background:var(--color-bg);color:var(--color-fg);padding:8px 12px}.estimate-input:focus{border-color:var(--color-fg);outline:none}.estimate-unit{color:var(--color-muted);font-size:.875rem}.task-desc-input{border:2px solid var(--color-fg);border-radius:var(--radius);width:100%;min-height:96px;font-size:1rem;font-family:var(--font);resize:vertical;background:var(--color-bg);color:var(--color-fg);padding:8px 12px}.task-desc-view{color:var(--color-fg);cursor:pointer;min-height:var(--touch-min);white-space:pre-wrap;align-items:flex-start;padding:6px 0;font-size:.9375rem;display:flex}.task-desc-view--empty{color:var(--color-muted);font-style:italic}.dep-list{flex-direction:column;gap:6px;display:flex}.dep-row{min-height:var(--touch-min);align-items:center;gap:8px;padding:6px 0;display:flex}.dep-title{flex:1;font-size:.9375rem}.dep-title--done{color:var(--color-muted);text-decoration:line-through}.dep-done-badge{color:var(--color-done);font-size:.875rem;font-weight:700}.dep-delete{color:var(--color-danger)}.subtask-list{flex-direction:column;gap:2px;margin-bottom:10px;display:flex}.subtask-progress{color:var(--color-muted);font-size:.75rem;font-weight:700}.subtask-row{min-height:var(--touch-min);align-items:center;gap:10px;padding:6px 0;display:flex}.subtask-row--blocked{opacity:.6}.subtask-check{border:2px solid var(--color-fg);background:var(--color-bg);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:.875rem;font-weight:700;display:inline-flex}.subtask-check--done{background:var(--color-done);border-color:var(--color-done);color:#fff}.subtask-check:disabled{cursor:not-allowed}.subtask-title{flex:1;font-size:.9375rem}.subtask-title--done{color:var(--color-muted);text-decoration:line-through}.subtask-title--blocked{color:var(--color-muted)}.subtask-blocked-by{color:var(--color-danger);font-size:.8125rem}.subtask-delete{color:var(--color-danger)}.subtask-add-form{gap:8px;margin-top:8px;display:flex}.subtask-add-form input{min-height:var(--touch-min);border:2px solid var(--color-border);border-radius:var(--radius);font-size:1rem;font-family:var(--font);background:var(--color-bg);color:var(--color-fg);flex:1;padding:8px 12px}.subtask-add-form input:focus{border-color:var(--color-fg);outline:none}.dialog--tall{max-height:90vh}.task-picker-list{flex-direction:column;gap:4px;max-height:300px;margin-bottom:8px;display:flex;overflow-y:auto}.task-picker-row{border-radius:var(--radius);min-height:var(--touch-min);align-items:center;gap:10px;padding:10px 12px;display:flex}.task-picker-row--btn{background:var(--color-bg);cursor:pointer;text-align:left;-webkit-tap-highlight-color:transparent;border:none;width:100%}.task-picker-row--btn:hover{background:var(--color-surface)}.task-picker-title{font-size:.9375rem}.delete-confirm p{color:var(--color-danger);margin-bottom:12px;font-weight:600}.empty-inline{color:var(--color-muted);padding:6px 0;font-size:.875rem}.photo-upload-label{min-height:var(--touch-min);min-width:var(--touch-min);border:2px solid var(--color-fg);border-radius:var(--radius);background:var(--color-bg);color:var(--color-fg);cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:1rem;font-weight:600;display:inline-flex}.photo-upload-label:hover{background:var(--color-fg);color:var(--color-bg)}.photo-upload-input{display:none}.photo-pending-badge{color:var(--color-warning);border:1.5px solid var(--color-warning);border-radius:99px;align-items:center;gap:6px;margin-left:8px;padding:4px 10px;font-size:.75rem;font-weight:700;display:inline-flex}.photo-grid{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px;display:grid}.photo-thumb-wrap{aspect-ratio:1;border-radius:var(--radius);border:2px solid var(--color-border);cursor:pointer;background:var(--color-surface);-webkit-tap-highlight-color:transparent;position:relative;overflow:hidden}.photo-thumb-wrap:hover{border-color:var(--color-fg)}.photo-thumb{object-fit:cover;width:100%;height:100%;display:block}.photo-thumb-placeholder{width:100%;height:100%;color:var(--color-muted);justify-content:center;align-items:center;font-size:2rem;display:flex}.photo-upload-state-badge{text-align:center;text-transform:uppercase;letter-spacing:.5px;pointer-events:none;border-radius:4px;padding:2px 4px;font-size:.625rem;font-weight:700;position:absolute;bottom:4px;left:4px;right:4px}.photo-upload-state-badge--pending{color:#fff;background:#cc6600d9}.photo-upload-state-badge--uploading{color:#fff;background:#005599d9}.photo-upload-state-badge--done{display:none}.photo-upload-state-badge--failed{color:#fff;background:#cc0000d9}.photo-viewer-overlay{z-index:200;background:#000000eb;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.photo-viewer-header{padding:12px var(--gap);background:#0009;justify-content:space-between;align-items:center;display:flex;position:absolute;top:0;left:0;right:0}.photo-viewer-count{color:#fffc;font-size:.875rem}.photo-viewer-close{color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;justify-content:center;align-items:center;width:48px;height:48px;font-size:1.5rem;display:flex}.photo-viewer-img-wrap{touch-action:pinch-zoom;flex:1;justify-content:center;align-items:center;width:100%;padding:60px 0;display:flex;overflow:hidden}.photo-viewer-img{object-fit:contain;touch-action:pinch-zoom;max-width:100%;max-height:100%;display:block}.photo-viewer-caption{text-align:center;color:#ffffffd9;padding:0 24px;font-size:.875rem;position:absolute;bottom:64px;left:0;right:0}.photo-viewer-nav{color:#fff;cursor:pointer;border-radius:var(--radius);-webkit-tap-highlight-color:transparent;background:#00000080;border:none;justify-content:center;align-items:center;width:48px;height:48px;font-size:1.5rem;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.photo-viewer-nav--prev{left:8px}.photo-viewer-nav--next{right:8px}.photo-viewer-actions{padding:12px var(--gap);background:#0009;justify-content:center;gap:16px;display:flex;position:absolute;bottom:0;left:0;right:0}.spec-list{flex-direction:column;gap:6px;margin-bottom:8px;display:flex}.spec-row{border:1.5px solid var(--color-border);border-radius:var(--radius);min-height:var(--touch-min);align-items:center;gap:10px;padding:8px 10px;display:flex}.spec-kind-badge{text-transform:uppercase;letter-spacing:.5px;border:1.5px solid;border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:.625rem;font-weight:700}.spec-kind-badge--dimension{color:var(--color-in-progress)}.spec-kind-badge--material{color:var(--color-success)}.spec-kind-badge--note{color:var(--color-muted)}.spec-label{color:var(--color-muted);flex-shrink:0;font-size:.8125rem}.spec-value{flex:1;font-size:.9375rem;font-weight:600}.spec-unit{color:var(--color-muted);flex-shrink:0;font-size:.8125rem}.spec-delete{color:var(--color-danger);flex-shrink:0}.spec-form{flex-direction:column;gap:12px;display:flex}.spec-form select,.spec-form input{min-height:var(--touch-min);border:2px solid var(--color-border);border-radius:var(--radius);font-size:1rem;font-family:var(--font);background:var(--color-bg);color:var(--color-fg);width:100%;padding:8px 12px}.spec-form select:focus,.spec-form input:focus{border-color:var(--color-fg);outline:none}.spec-form-row{grid-template-columns:1fr auto;gap:8px;display:grid}.app-shell{flex-direction:row;max-width:none;min-height:100%;margin:0;display:flex}.app-main-col{flex-direction:column;flex:1;width:100%;min-width:0;max-width:900px;margin:0 auto;display:flex}.app-header{background:var(--color-primary);color:#fff;box-shadow:var(--shadow-card);border-bottom:none}.app-header__title,.app-header h1{color:#fff}.app-header .settings-link{color:#fff;align-items:center;display:inline-flex}.app-main{flex:1;padding-bottom:88px}.side-nav{display:none}.bottom-nav{background:var(--color-bg);border-top:1px solid var(--color-border);z-index:20;padding-bottom:env(safe-area-inset-bottom,0);display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 12px #1c1c1e0f}.bottom-nav__link{min-height:60px;color:var(--color-muted);-webkit-tap-highlight-color:transparent;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:8px 4px;font-size:.6875rem;font-weight:500;text-decoration:none;display:flex}.bottom-nav__link span{text-align:center;line-height:1.1}.section-head{text-transform:uppercase;letter-spacing:.06em;color:var(--color-muted);align-items:center;gap:10px;margin:28px 0 12px;font-size:.75rem;font-weight:700;display:flex}.section-head:after{content:"";background:var(--color-border);flex:1;height:1px}.page--dash,.page--plan{padding-bottom:24px}.dash-project-title{margin-bottom:16px}.hero-card{background:linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);color:#fff;border-radius:var(--radius);box-shadow:var(--shadow-lift);padding:20px}.hero-card__top{justify-content:space-between;align-items:baseline;margin-bottom:12px;display:flex}.hero-card__label{opacity:.9;font-size:.875rem;font-weight:600}.hero-card__pct{letter-spacing:-.02em;font-size:2rem;font-weight:800}.hero-progress{background:#ffffff40;border-radius:999px;height:12px;overflow:hidden}.hero-progress__fill{background:#ffffffe6;border-radius:999px;height:100%;transition:width .4s}.hero-card__phase{opacity:.95;margin-top:12px;font-size:.875rem}.nextstep-card{text-align:left;background:var(--color-sand);border:2px solid var(--color-accent);border-radius:var(--radius);cursor:pointer;width:100%;box-shadow:var(--shadow-card);color:var(--color-fg);align-items:center;gap:12px;padding:18px 20px;transition:transform .1s,box-shadow .1s;display:flex}.nextstep-card:hover{box-shadow:var(--shadow-lift);transform:translateY(-2px)}.nextstep-card:focus-visible{box-shadow:var(--shadow-lift);outline:2px solid var(--color-accent);outline-offset:2px;transform:translateY(-2px)}.nextstep-card__text{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.nextstep-card__eyebrow{text-transform:uppercase;letter-spacing:.05em;color:var(--color-accent-dark);font-size:.75rem;font-weight:700}.nextstep-card__title{font-size:1.125rem;font-weight:700;line-height:1.25}.nextstep-card__cta{background:var(--color-accent);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.nextstep-card--done{background:var(--color-primary-soft);border-color:var(--color-primary);cursor:default;justify-content:center}.nextstep-card--done .nextstep-card__title{color:var(--color-primary-dark);text-align:center}.alert-list{flex-direction:column;gap:8px;display:flex}.alert-row{min-height:var(--touch-min);border-left:4px solid var(--color-alert);border-radius:var(--radius-sm);color:var(--color-alert);background:#fdecea;align-items:center;gap:10px;padding:12px 14px;font-size:.9375rem;font-weight:600;text-decoration:none;display:flex}.alert-row__text{color:var(--color-fg);flex:1;font-weight:500}.alert-row:hover{background:#fbdbd7}.quick-tiles{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.quick-tile{background:var(--color-bg);border:1.5px solid var(--color-border);border-radius:var(--radius);min-height:96px;color:var(--color-primary);text-align:center;box-shadow:var(--shadow-card);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:20px 8px;font-size:.8125rem;font-weight:600;text-decoration:none;transition:transform .15s,border-color .15s,background .15s,box-shadow .15s;display:flex}.quick-tile span{color:var(--color-fg)}.quick-tile:hover{border-color:var(--color-primary);background:var(--color-primary-soft);box-shadow:var(--shadow-lift);transform:translateY(-2px)}.quick-tile:focus-visible{border-color:var(--color-primary);background:var(--color-primary-soft);box-shadow:var(--shadow-lift);outline:2px solid var(--color-primary);outline-offset:2px;transform:translateY(-2px)}.phase-tabs{margin:0 calc(-1 * var(--gap));padding:4px 0 12px;padding-left:var(--gap);padding-right:var(--gap);-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:8px;display:flex;overflow-x:auto}.phase-tabs::-webkit-scrollbar{display:none}.phase-tab{min-height:var(--touch-min);border:1.5px solid var(--color-border);background:var(--color-bg);color:var(--color-fg);cursor:pointer;white-space:nowrap;border-left-width:4px;border-radius:999px;flex-direction:column;flex-shrink:0;align-items:flex-start;gap:2px;padding:8px 14px;font-size:.875rem;font-weight:600;display:flex}.phase-tab__pct{color:var(--color-muted);font-size:.6875rem;font-weight:700}.phase-tab--active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.phase-tab--active .phase-tab__pct{color:#ffffffd9}.phase-tab--add{min-width:var(--touch-min);color:var(--color-primary);border-left-width:1.5px;justify-content:center;align-items:center;padding:8px}.phase-accent-1{border-left-color:var(--phase-1)}.phase-accent-2{border-left-color:var(--phase-2)}.phase-accent-3{border-left-color:var(--phase-3)}.phase-accent-4{border-left-color:var(--phase-4)}.phase-accent-5{border-left-color:var(--phase-5)}.phase-tab--active.phase-accent-1,.phase-tab--active.phase-accent-2,.phase-tab--active.phase-accent-3,.phase-tab--active.phase-accent-4,.phase-tab--active.phase-accent-5{border-left-color:var(--color-primary-dark)}.phase-tab--manage{min-width:var(--touch-min);color:var(--color-muted);border-left-width:1.5px;justify-content:center;align-items:center;padding:8px}.phase-tab--manage:hover{color:var(--color-primary)}.dialog--manage{width:100%;max-width:560px}.manage-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.manage-close{width:var(--touch-min);height:var(--touch-min);color:var(--color-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.manage-close:hover{background:var(--color-surface-2,#0000000d);color:var(--color-text)}.manage-list{flex-direction:column;gap:10px;margin:12px 0;padding:0;list-style:none;display:flex}.manage-row{border:2px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);min-height:56px;box-shadow:var(--shadow-card);z-index:1;align-items:center;gap:8px;padding:4px 8px 4px 4px;display:flex;position:relative}.manage-info{flex:auto;align-items:center;min-width:0;display:flex}.manage-name{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-weight:700;overflow:hidden}.manage-count{box-sizing:border-box;text-align:center;min-width:22px;color:var(--color-muted);white-space:nowrap;border:1.5px solid;border-radius:99px;flex:none;padding:2px 6px;font-size:.72rem;font-weight:700}.manage-actions{flex:none;align-items:center;gap:4px;display:flex}.manage-btn{border:2px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);min-width:40px;min-height:40px;color:var(--color-fg);cursor:pointer;-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;margin:0 -2px;padding:2px;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.manage-btn:hover:not(:disabled),.manage-btn:focus-visible:not(:disabled){background:var(--color-fg);color:var(--color-bg);outline:none}.manage-btn:active:not(:disabled){transform:translate(1px,1px)}.manage-btn:disabled{opacity:.35;cursor:default}.manage-btn--danger{color:var(--color-danger)}.manage-btn--danger:hover:not(:disabled),.manage-btn--danger:focus-visible:not(:disabled){background:var(--color-danger);color:var(--color-bg)}@media (width<=360px){.manage-count{display:none}}.dialog--danger{border-top:4px solid var(--color-danger,#c0392b);width:100%;max-width:460px}.del-head{align-items:center;gap:10px;margin-bottom:10px;display:flex}.del-icon{color:var(--color-danger,#c0392b);display:inline-flex}.del-head .dialog-title{margin:0}.del-blast{margin:0 0 6px;font-weight:600;line-height:1.4}.del-breakdown{color:var(--color-text-muted,#666);margin:0 0 14px;font-size:.9rem}.del-check{cursor:pointer;align-items:flex-start;gap:8px;margin-bottom:12px;font-weight:600;display:flex}.del-check input{width:18px;height:18px;accent-color:var(--color-danger,#c0392b);flex-shrink:0;margin-top:2px}.del-type{flex-direction:column;gap:6px;margin-bottom:12px;font-size:.9rem;display:flex}.del-type__input{border:1px solid var(--color-border,#ccc);font:inherit;border-radius:6px;padding:8px 10px}.del-type__input:focus-visible{outline:2px solid var(--color-danger,#c0392b)}.del-move-link{color:var(--color-primary);font:inherit;cursor:pointer;text-align:left;background:0 0;border:none;margin:0 0 14px;padding:0;text-decoration:underline}.del-move-link:disabled{opacity:.5;cursor:default}.del-move-pick{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.del-move-pick__select{border:1px solid var(--color-border,#ccc);font:inherit;border-radius:6px;padding:8px 10px}.dash-empty-state__actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.plan-phase-head{align-items:center;gap:12px;margin:6px 0 12px;display:flex}.plan-sequence-hint{color:var(--color-muted);font-size:.8125rem}.plan-list{flex-direction:column;gap:10px;display:flex}.plan-card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-card);display:flex;overflow:hidden}.plan-card--selected{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-soft)}.plan-card__strip{background:var(--color-todo);flex-shrink:0;width:5px}.plan-card.status-todo .plan-card__strip{background:var(--color-todo)}.plan-card.status-in_progress .plan-card__strip{background:var(--color-in-progress)}.plan-card.status-done .plan-card__strip{background:var(--color-done)}.plan-card.status-blocked .plan-card__strip{background:var(--color-blocked)}.plan-card__body{flex:1;min-width:0;padding:14px}.plan-card__top{align-items:flex-start;gap:10px;display:flex}.plan-card__seq{background:var(--color-surface);width:24px;height:24px;color:var(--color-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:flex}.plan-card__title{flex:1;font-size:1rem;font-weight:600;line-height:1.3}.plan-card__title.done{color:var(--color-muted);text-decoration:line-through}.plan-badge{cursor:pointer;white-space:nowrap;background:0 0;border:1.5px solid;border-radius:999px;flex-shrink:0;align-items:center;gap:5px;min-height:32px;padding:4px 10px;font-size:.75rem;font-weight:700;display:inline-flex}.plan-badge.status-todo{color:var(--color-todo)}.plan-badge.status-in_progress{color:var(--color-in-progress)}.plan-badge.status-done{color:var(--color-done);background:var(--color-primary-soft)}.plan-badge.status-blocked{color:var(--color-blocked);background:#fdecea}.plan-card__meta{flex-wrap:wrap;gap:6px 14px;margin-top:10px;padding-left:34px;display:flex}.plan-meta{color:var(--color-muted);align-items:center;gap:5px;font-size:.8125rem;display:inline-flex}.plan-card__warn{border-radius:var(--radius-sm);color:var(--color-accent-dark);background:#fef3e8;align-items:center;gap:6px;margin-top:10px;margin-left:34px;padding:7px 10px;font-size:.8125rem;font-weight:500;display:flex}.plan-meta--overdue{color:var(--color-danger);font-weight:600}.plan-overdue-tag{background:var(--color-danger);color:#fff;text-transform:uppercase;letter-spacing:.03em;border-radius:999px;margin-left:6px;padding:1px 6px;font-size:.6875rem;font-weight:700}.deadline-wrap{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.deadline-input{min-height:48px;padding:8px 12px;font-size:1rem}.deadline-input--overdue{border-color:var(--color-danger);color:var(--color-danger)}.deadline-none{color:var(--color-muted);font-size:.875rem}.deadline-clear{min-height:40px}.deadline-overdue-tag{border-radius:var(--radius-sm);background:var(--color-danger);color:#fff;align-items:center;gap:6px;margin-top:8px;padding:5px 10px;font-size:.8125rem;font-weight:700;display:inline-flex}.plan-card__actions{gap:8px;margin-top:12px;padding-left:34px;display:flex}.plan-card__actions .btn-sm{min-height:40px}.plan-add-task{width:100%;margin-top:14px}@media (width>=768px){.quick-tiles{grid-template-columns:repeat(4,1fr)}}@media (width>=1024px){.bottom-nav{display:none}.app-main{padding-bottom:24px}.app-header{display:none}.side-nav{background:var(--color-bg);border-right:1px solid var(--color-border);flex-direction:column;flex-shrink:0;gap:4px;width:240px;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0;overflow-y:auto}.side-nav__brand{color:var(--color-primary);align-items:center;gap:8px;padding:8px 12px 20px;font-size:1.25rem;font-weight:800;display:flex}.side-nav__logo{color:var(--color-accent)}.side-nav__link{min-height:var(--touch-min);border-radius:var(--radius-sm);color:var(--color-fg);align-items:center;gap:12px;padding:12px 14px;font-size:.9375rem;font-weight:600;text-decoration:none;display:flex}.side-nav__link:hover{background:var(--color-surface)}.side-nav__link--active{background:var(--color-primary-soft);color:var(--color-primary-dark)}.app-main-col{max-width:760px}}@keyframes spin-icon{to{transform:rotate(360deg)}}.empty-cta{text-align:center;flex-direction:column;align-items:center;gap:20px;padding:56px 24px;display:flex}.plan-card{transition:box-shadow .15s}.phase-tab:not(.phase-tab--active):hover{background:var(--color-surface);border-color:var(--color-muted)}.quote-request-list{flex-direction:column;gap:12px;display:flex}.quote-request-card{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);box-shadow:var(--shadow-card);color:var(--color-fg);padding:14px;text-decoration:none;display:block}.quote-request-card:hover{box-shadow:var(--shadow-lift)}.quote-request-card__head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.quote-request-card__count{color:var(--color-muted);font-size:.8125rem;font-weight:600}.quote-request-card__scope{font-weight:600;line-height:1.35}.quote-request-card__meta{color:var(--color-muted);margin-top:6px;font-size:.8125rem}.quote-request-summary{color:var(--color-muted);margin-top:4px;font-size:.9375rem}.quote-contractor-picker{flex-direction:column;gap:8px;display:flex}.quote-pick{width:100%;min-height:var(--touch-min);border:2px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-fg);text-align:left;cursor:pointer;align-items:center;gap:12px;padding:10px 14px;display:flex}.quote-pick--on{border-color:var(--color-primary);background:var(--color-primary-soft)}.quote-pick__check{font-size:1.25rem;line-height:1}.quote-pick__body{flex-direction:column;flex:1;min-width:0;display:flex}.quote-pick__name{font-weight:700}.quote-pick__trades{color:var(--color-muted);font-size:.8125rem}.quote-pick__badges{gap:4px;display:flex}.quote-compare-grid{display:none}.quote-compare-mobile{display:block}.quote-col{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);box-shadow:var(--shadow-card);flex-direction:column;gap:14px;padding:16px;display:flex}.quote-col--flagged{border-color:var(--color-alert)}.quote-col__head{flex-direction:column;gap:8px;display:flex}.quote-col__company{font-size:1.125rem;font-weight:800;line-height:1.2}.quote-col__recos{flex-wrap:wrap;gap:6px;display:flex}.quote-col__section-title{text-transform:uppercase;letter-spacing:.04em;color:var(--color-muted);margin-bottom:6px;font-size:.75rem;font-weight:700}.reco-chip{color:#fff;border-radius:999px;align-items:center;padding:3px 10px;font-size:.75rem;font-weight:700;display:inline-flex}.reco-chip--best_value{background:var(--color-primary)}.reco-chip--fastest{background:var(--color-accent)}.reco-chip--most_trusted{background:var(--color-primary-dark)}.red-flags{flex-direction:column;gap:4px;display:flex}.red-flag{border-radius:var(--radius-sm);color:var(--color-alert);background:#fbe9e7;align-items:center;gap:4px;padding:4px 8px;font-size:.8125rem;font-weight:600;display:inline-flex}.line-items{flex-direction:column;list-style:none;display:flex}.line-item{border-bottom:1px solid var(--color-border)}.line-item:last-child{border-bottom:none}.line-item__row{width:100%;min-height:var(--touch-min);color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;grid-template-columns:1fr auto;gap:2px 12px;padding:8px 0;font-size:.9375rem;display:grid}.line-item__row:disabled{cursor:default}.line-item__label{align-items:center;gap:6px;font-weight:600;display:flex}.line-item__caret{color:var(--color-muted);font-size:.75rem}.line-item__qty{color:var(--color-muted);grid-column:1;font-size:.8125rem}.line-item__sum{grid-area:1/2/span 2;align-self:center;font-weight:700}.line-item__detail{background:var(--color-surface);border-radius:var(--radius-sm);color:var(--color-fg);margin-bottom:4px;padding:8px 12px 12px;font-size:.875rem}.quote-col__totals{background:var(--color-surface);border-radius:var(--radius-sm);flex-direction:column;gap:4px;padding:12px;display:flex}.quote-total-row{justify-content:space-between;font-size:.9375rem;display:flex}.quote-total-row--grand{border-top:1px solid var(--color-border);margin-top:4px;padding-top:8px;font-size:1.0625rem;font-weight:800}.vat-missing{color:var(--color-alert)}.quote-col__facts{gap:12px;display:flex}.quote-fact{border:1px solid var(--color-border);border-radius:var(--radius-sm);flex-direction:column;flex:1;gap:2px;padding:10px 12px;display:flex}.quote-fact__label{color:var(--color-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.75rem}.quote-fact__value{font-weight:700}.trust-badge{align-items:center;gap:4px;display:inline-flex}.trust-badge--pill{background:var(--color-primary-soft);color:var(--color-primary-dark);border-radius:999px;padding:4px 10px;font-size:.8125rem;font-weight:600}.quote-col__delete{align-self:flex-start}.quote-swipe-nav{justify-content:center;align-items:center;gap:12px;margin-top:12px;display:flex}.quote-swipe-dots{gap:8px;display:flex}.quote-swipe-dot{border:2px solid var(--color-border);background:var(--color-bg);cursor:pointer;border-radius:50%;width:12px;height:12px;padding:0}.quote-swipe-dot--on{background:var(--color-primary);border-color:var(--color-primary)}.quote-swipe-hint{text-align:center;color:var(--color-muted);margin-top:8px;font-size:.8125rem}.dialog--wide{width:100%;max-width:640px}.line-item-edit{border:1px solid var(--color-border);border-radius:var(--radius-sm);flex-direction:column;gap:6px;margin-bottom:10px;padding:10px;display:flex}.line-item-edit__nums{align-items:center;gap:6px;display:flex}.line-item-edit__nums input{min-width:0}.trust-toggle{min-height:var(--touch-min);align-items:center;gap:6px;font-size:.9375rem;display:flex}@media (width>=768px){.quote-compare-mobile{display:none}.quote-compare-grid{grid-template-columns:repeat(var(--quote-cols,1), minmax(240px, 1fr));align-items:start;gap:16px;display:grid;overflow-x:auto}}.phase-tab__check{color:var(--color-done);font-weight:800}.phase-tab--active .phase-tab__check{color:currentColor}.section-title{margin:4px 0;font-size:1.0625rem;font-weight:700}.field-row{gap:12px;display:flex}.field-row>.field{flex:1;min-width:0}.field--fieldset{border:2px solid var(--color-border);border-radius:var(--radius);padding:12px}.field--fieldset>legend{padding:0 6px;font-weight:700}.detail-row{border-bottom:1px solid var(--color-border);gap:12px;padding:10px 0;display:flex}.detail-row--notes{flex-direction:column;gap:4px}.contractor-detail-info{margin:8px 0 16px}.specialty-chips{flex-wrap:wrap;gap:8px;display:flex}.specialty-chips--sm{gap:6px}.specialty-filter{margin:8px 0}.chip{min-height:var(--touch-min);border:2px solid var(--color-fg);background:var(--color-bg);color:var(--color-fg);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:999px;align-items:center;padding:0 14px;font-size:.9375rem;font-weight:600;display:inline-flex}.chip--active{background:var(--color-fg);color:var(--color-bg)}.chip--readonly{cursor:default;border-width:1.5px;min-height:32px;padding:2px 12px;font-size:.8125rem}.chip--shortlist{border-color:var(--color-fg)}.shortlist-bar{margin-bottom:12px}.contractor-list{flex-direction:column;gap:12px;display:flex}.contractor-card{border:2px solid var(--color-fg);border-radius:var(--radius);background:var(--color-bg);position:relative}.contractor-card__main{color:inherit;padding:14px;text-decoration:none;display:block}.contractor-card__head{align-items:center;gap:12px;margin-bottom:8px;display:flex}.contractor-card__ident{min-width:0}.contractor-card__name{font-size:1.0625rem;font-weight:700}.contractor-card__location,.profile-header__location{color:var(--color-muted);font-size:.875rem}.contractor-card__main>*+*{margin-top:8px}.contractor-card__actions{gap:8px;padding:0 14px 12px;display:flex}.contractor-avatar{border:2px solid var(--color-fg);background:var(--color-surface);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-weight:700;display:inline-flex;overflow:hidden}.contractor-avatar--lg{width:72px;height:72px;font-size:1.5rem}.contractor-avatar img{object-fit:cover;width:100%;height:100%}.shortlist-toggle{width:var(--touch-min);height:var(--touch-min);color:var(--color-fg);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;font-size:1.5rem;line-height:1;display:inline-flex;position:absolute;top:8px;right:8px}.shortlist-toggle--on{color:var(--color-warning)}.shortlist-toggle--lg{position:static}.trust-badges{flex-wrap:wrap;gap:8px;display:flex}.trust-badge{border:2px solid var(--color-success);color:var(--color-success);border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:.8125rem;font-weight:700;display:inline-flex}.trust-badge__icon{flex-shrink:0;width:16px;height:16px}.trust-badge__shield{fill:var(--color-success)}.trust-badge__check{stroke:var(--color-bg)}.trust-badges--sm .trust-badge{padding:2px 8px;font-size:.75rem}.trust-badges--sm .trust-badge__icon{width:13px;height:13px}.star-rating{color:var(--color-warning);align-items:center;gap:6px;display:inline-flex}.star-rating__stars{gap:1px;display:inline-flex}.star{width:18px;height:18px}.star-rating--sm .star{width:15px;height:15px}.star__outline{fill:none;stroke:var(--color-warning);stroke-width:1.5px}.star__fill{fill:var(--color-warning)}.star-rating__value{color:var(--color-fg);font-size:.9375rem;font-weight:700}.star-rating__count{color:var(--color-muted);font-size:.8125rem}.response-stats{gap:12px;margin:12px 0;display:flex}.response-stat{border:2px solid var(--color-border);border-radius:var(--radius);flex-direction:column;flex:1;align-items:center;padding:10px;display:flex}.response-stat__value{font-size:1.25rem;font-weight:800}.response-stat__label{color:var(--color-muted);text-align:center;font-size:.75rem}.license-list{flex-direction:column;gap:8px;list-style:none;display:flex}.license-badge{border:2px solid var(--color-fg);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.license-badge__label{font-weight:700}.license-badge__link{white-space:nowrap;align-items:center;min-height:44px;font-weight:700;display:inline-flex}.license-row{align-items:center;gap:8px;margin-bottom:8px;display:flex}.license-row input{flex:1;min-width:0}.trust-toggles{flex-wrap:wrap;gap:12px;display:flex}.trust-toggle{min-height:var(--touch-min);align-items:center;gap:8px;font-weight:600;display:inline-flex}.trust-toggle input{width:22px;height:22px}.page--contractor-profile{padding-bottom:88px}.profile-header{align-items:center;gap:12px;margin:8px 0 16px;display:flex}.profile-header__ident{flex:1;min-width:0}.profile-header__ident>*+*{margin-top:4px}.profile-section{margin:20px 0}.profile-section>.page-actions{margin-bottom:8px}.gallery{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;display:grid}.gallery-item{border:2px solid var(--color-border);border-radius:var(--radius);overflow:hidden}.gallery-item__img,.gallery-item__placeholder{aspect-ratio:4/3;object-fit:cover;background:var(--color-surface);width:100%}.gallery-item__placeholder{justify-content:center;align-items:center;font-size:2rem;display:flex}.gallery-item__caption{flex-direction:column;gap:4px;padding:8px;display:flex}.gallery-item__title{font-size:.9375rem;font-weight:700}.gallery-item__comment{color:var(--color-muted);font-size:.8125rem;font-style:italic}.assigned-task-list{flex-direction:column;gap:8px;display:flex}.assigned-task-row{border:2px solid var(--color-border);border-radius:var(--radius);align-items:center;gap:10px;padding:10px 12px;display:flex}.assigned-task-info{flex-direction:column;flex:1;min-width:0;display:flex}.assigned-task-title{font-weight:600}.assigned-task-project{color:var(--color-muted);font-size:.8125rem}.quote-bar{margin:0 calc(-1 * var(--gap));padding:12px var(--gap);background:var(--color-bg);border-top:2px solid var(--color-fg);position:sticky;bottom:0}.quote-bar__btn{width:100%}:root{--color-border-strong:#111;--color-border-done:#ddd;--radius:10px;--radius-sm:8px;--radius-lg:14px;--shadow-card:0 1px 4px #0000000f, 0 1px 2px #0000000a;--shadow-lift:0 4px 16px #0000001f;--gap:16px;--content-bg:#f5f5f5}body,.app-shell,.app-main-col{background:var(--content-bg)}.app-header{background:#111;border-bottom:none;padding:12px 20px;box-shadow:0 2px 8px #0000004d}.app-header h1,.app-header__title{letter-spacing:-.3px;color:#fff;font-size:1.25rem;font-weight:800}.app-header .sync-status{color:#ffffff8c;font-size:.6875rem}.page--home{background:var(--content-bg);padding:0 0 96px}.dash-summary{background:#fff;border-bottom:1px solid #e8e8e8;padding:14px 16px}.dash-summary__row{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.dash-summary__title{letter-spacing:-.2px;color:#111;font-size:15px;font-weight:800}.dash-summary__phase{color:#777;font-size:12px;font-weight:500}.dash-summary__track{background:#e8e8e8;border-radius:4px;height:8px;overflow:hidden}.dash-summary__fill{background:var(--color-primary);border-radius:4px;height:100%;transition:width .4s cubic-bezier(.4,0,.2,1)}.dash-summary__stats{color:#777;margin-top:7px;font-size:11px}.dash-summary__blocked{color:var(--color-alert);font-weight:600}.dash-phase-band{-webkit-overflow-scrolling:touch;scrollbar-width:none;background:#f0f0f0;border-bottom:1px solid #e0e0e0;flex-shrink:0;display:flex;overflow-x:auto}.dash-phase-band::-webkit-scrollbar{display:none}.dash-phase-tab{white-space:nowrap;cursor:pointer;color:#888;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-bottom:2.5px solid #0000;flex-shrink:0;min-height:44px;padding:11px 16px;font-size:12px;font-weight:500;transition:color .1s,border-bottom-color .1s,background .1s}.dash-phase-tab--active{color:#000;background:#fff;border-bottom-color:#000;font-weight:700}.dash-phase-tab:not(.dash-phase-tab--active):hover{color:#333;background:#e8e8e8}.dash-notify{border-radius:var(--radius);background:#fff6f3;border:1.5px solid #f3c9bd;margin-bottom:16px;padding:10px 12px 12px}.dash-notify__head{color:var(--color-alert);align-items:center;gap:7px;margin-bottom:8px;display:flex}.dash-notify__title{text-transform:uppercase;letter-spacing:.07em;flex:1;font-size:11px;font-weight:800}.dash-notify__count{background:var(--color-alert);color:#fff;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:800;line-height:1;display:inline-flex}.dash-alerts{flex-direction:column;gap:6px;display:flex}.dash-notify .dash-alert-row{background:#fff;border-color:#f3c9bd}.dash-alert-row{border:1px solid #ffd5c0;border-left:3px solid var(--color-alert);border-radius:var(--radius);color:var(--color-alert);background:#fff8f5;align-items:center;gap:8px;padding:10px 12px;font-size:12px;font-weight:600;text-decoration:none;transition:background .1s;display:flex}.dash-alert-row:hover{background:#fff0ea}.dash-alert-text{color:#333;flex:1;font-weight:500}.dash-section-h{color:#444;letter-spacing:.1px;margin:4px 0 10px;font-size:13px;font-weight:700}.dash-task-card{border:1.5px solid var(--color-border-strong);border-radius:var(--radius);cursor:pointer;-webkit-tap-highlight-color:transparent;background:#fff;align-items:flex-start;gap:12px;margin-bottom:10px;padding:12px 14px;transition:transform .1s,box-shadow .1s;display:flex}.dash-task-card:active{transform:scale(.99)}.dash-task-card--done{border-color:var(--color-border-done)}.dash-task-card:hover{box-shadow:var(--shadow-lift)}.dash-cb{cursor:pointer;background:#fff;border:1.5px solid #111;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;margin-top:1px;transition:background .1s,border-color .1s;display:flex}.dash-cb--done{background:var(--color-primary);border-color:var(--color-primary)}.dash-cb--blocked{cursor:not-allowed;background:#e0e0e0;border-color:#999;position:relative}.dash-cb--blocked:before,.dash-cb--blocked:after{content:"";background:#666;width:55%;height:1.5px;position:absolute}.dash-cb--blocked:before{transform:rotate(45deg)}.dash-cb--blocked:after{transform:rotate(-45deg)}.dash-cb--in_progress{background:#fff;border-color:#000;position:relative}.dash-cb--in_progress:after{content:"";background:var(--color-accent);border-radius:2px;width:8px;height:8px}.dash-task-info{flex:1;min-width:0}.dash-task-name{color:#111;font-size:14px;font-weight:600;line-height:1.35}.dash-task-name.done{color:#aaa;font-weight:400;text-decoration:line-through}.dash-task-sub{color:#777;margin-top:3px;font-size:12px;line-height:1.4}.dash-task-tags{flex-wrap:wrap;align-items:center;gap:5px;margin-top:7px;display:flex}.dash-tag{border-radius:10px;padding:2px 9px;font-size:11px;font-weight:600;line-height:1.6}.dash-tag--dark{color:#fff;background:#000}.dash-tag--grey{color:#444;background:#e8e8e8}.dash-tag--warn{color:#7a5800;background:#fff3cd;border:1px solid #f0c040}.dash-add-task{border-radius:var(--radius);text-align:center;color:#888;cursor:pointer;-webkit-tap-highlight-color:transparent;width:100%;font-size:13px;font-weight:600;font-family:var(--font);background:0 0;border:1.5px dashed #bbb;justify-content:center;align-items:center;gap:6px;margin-bottom:10px;padding:14px;transition:background .1s,border-color .1s,color .1s;display:flex}.dash-add-task:hover{color:#333;background:#e8e8e8;border-color:#999}.dash-empty{color:#aaa;text-align:center;padding:20px 0 12px;font-size:13px}.dash-empty-state{text-align:center;color:#888;flex-direction:column;align-items:center;gap:16px;padding:48px 24px;display:flex}.page--plan{padding:var(--gap) var(--gap) 96px;background:var(--content-bg)}.phase-tabs{margin:0 calc(-1 * var(--gap));padding:6px 0 12px;padding-left:var(--gap);padding-right:var(--gap);gap:6px}.phase-tab{border-radius:var(--radius);box-shadow:none;background:#fff;border:1.5px solid #ddd;border-left-width:3px;padding:8px 14px;font-size:.8125rem;font-weight:600;transition:all .1s}.phase-tab--active{background:var(--color-primary);border-color:var(--color-primary);border-left-color:var(--color-primary-dark);color:#fff;box-shadow:var(--shadow-card)}.phase-tab:not(.phase-tab--active):hover{border-color:var(--color-primary);color:var(--color-primary-dark);background:#fff}.plan-card{border:1.5px solid var(--color-border-strong);border-radius:var(--radius);box-shadow:none;background:#fff;transition:box-shadow .1s,transform .1s}.plan-card:hover{box-shadow:var(--shadow-lift)}.plan-card--selected{border-color:var(--color-primary)}.plan-card.status-done{border-color:var(--color-border-done);opacity:.75}.plan-card__strip{width:4px}.plan-card__seq{color:#888;background:#f0f0f0;border-radius:50%;width:22px;height:22px;margin-top:1px;font-size:.6875rem;font-weight:800}.plan-card__title{font-size:14px;font-weight:600;line-height:1.35}.plan-badge{text-transform:uppercase;letter-spacing:.04em;border-width:1.5px;border-radius:10px;min-height:26px;padding:3px 10px;font-size:.6875rem;font-weight:700}.plan-badge.status-todo{color:#666;background:#f0f0f0;border-color:#ddd}.plan-badge.status-in_progress{color:#8a4800;background:#fff8f0;border-color:#fde0bc}.plan-badge.status-done{color:#1a5c30;background:#edf6f0;border-color:#c5e4ce}.plan-badge.status-blocked{color:#9b1c1c;background:#fff5f5;border-color:#fcc}.plan-badge.status-in_progress svg{transform-origin:50%;animation:1.2s linear infinite spin-icon}.plan-card__meta{gap:6px 14px;margin-top:10px;padding-left:32px}.plan-meta{color:#777;gap:4px;font-size:12px}.plan-card__warn{border-radius:var(--radius-sm);color:#7a4800;background:#fff8ec;border:1px solid #fde8c7;gap:6px;margin-top:10px;margin-left:32px;padding:7px 10px;font-size:12px;font-weight:500}.plan-card__actions{gap:8px;margin-top:12px;padding-left:32px}.plan-card__actions .btn-sm{border-radius:var(--radius-sm);min-height:36px;font-size:.8125rem}.plan-add-task{color:#888;border-radius:var(--radius);background:0 0;border:1.5px dashed #bbb;width:100%;margin-top:14px}.plan-add-task:hover{color:#333;background:#e8e8e8;border-color:#999}.phase-status-badge{text-transform:uppercase;letter-spacing:.05em;border-width:1.5px;border-radius:999px;padding:4px 10px;font-size:.6875rem;font-weight:700}.section-head{text-transform:uppercase;letter-spacing:.08em;color:#999;gap:10px;margin:24px 0 12px;font-size:.6875rem;font-weight:800}.section-head:after{background:#e0e0e0}.page{background:var(--content-bg)}.project-item{border-radius:var(--radius);box-shadow:none;background:#fff;border:1.5px solid #111;margin-bottom:10px;padding:16px;transition:box-shadow .1s}.project-item:hover,.project-item:focus-visible{box-shadow:var(--shadow-lift);background:#fff;border-color:#111;outline:none;transform:none}.project-item .project-name{font-size:15px;font-weight:700}.back-link{color:#666;opacity:1;min-height:40px;margin-bottom:12px;font-size:.8125rem;font-weight:600}.back-link:hover{color:#111;text-decoration:none}.page-title{letter-spacing:-.03em;color:#111;font-size:1.375rem;font-weight:800}.page-subtitle{color:#777;margin-top:2px;font-size:.8125rem}.bottom-nav{box-shadow:none;background:#fff;border-top:1px solid #e8e8e8}.bottom-nav__link{color:#aaa;gap:3px;padding:8px 4px 10px;font-size:.6875rem;font-weight:600}@media (width>=1024px){.side-nav{box-shadow:none;background:#fff;border-right:1px solid #e8e8e8;width:240px;padding:20px 14px}.side-nav__brand{color:#111;padding:8px 12px 24px;font-size:1.125rem;font-weight:900}.side-nav__logo{color:var(--color-primary)}.side-nav__link{border-radius:var(--radius-sm);color:#444;min-height:44px;padding:10px 14px;font-size:.9375rem;font-weight:500;transition:background .1s}.side-nav__link:hover{background:#f5f5f5}.side-nav__link--active{color:#111;background:#f0f0f0;font-weight:700}.app-main-col{max-width:760px}}.btn{border-radius:var(--radius-sm);letter-spacing:-.1px;font-weight:700;transition:background .1s,color .1s,border-color .1s,box-shadow .1s}.btn-primary{color:#fff;background:#111;border-color:#111}.btn-accent{background:var(--color-accent);border-color:var(--color-accent)}.btn-ghost{color:#333;background:#fff;border:1.5px solid #ddd}.btn-ghost:hover,.btn-ghost:focus-visible{color:#111;background:#f5f5f5;border-color:#aaa}.field input,.field select,.field textarea{border-radius:var(--radius-sm);background:#fff;border:1.5px solid #000;transition:box-shadow .1s}.field input:focus,.field select:focus,.field textarea:focus{border-color:#000;outline:none;box-shadow:0 0 0 2px #00000014}.card{border-radius:var(--radius);box-shadow:none;background:#fff;border:1.5px solid #000}.dialog{border:none;border-radius:18px 18px 0 0;padding:24px 20px 32px;box-shadow:0 -8px 40px #0000002e}@media (width>=600px){.dialog{border-radius:var(--radius);border:1.5px solid #111;box-shadow:0 8px 40px #0003}}.dialog-title{letter-spacing:-.2px;margin-bottom:16px;font-size:1.125rem;font-weight:800}.empty-cta{border-radius:var(--radius);background:#fff;border:1.5px dashed #ccc;gap:16px;padding:48px 24px}@media (width>=768px){.quick-tiles{grid-template-columns:repeat(4,1fr)}}.btn{letter-spacing:0;border-width:1.5px;min-height:42px;padding:0 16px;font-size:.9375rem;font-weight:600}.btn-primary{font-weight:650}.btn-sm{border-width:1.5px;min-height:36px;padding:0 12px;font-size:.8125rem}.btn-ghost.btn-sm{min-width:36px}.status-btn-group,.priority-btn-group{gap:10px;margin-top:4px}.dialog-actions{gap:12px;margin-top:20px;display:flex}.quick-actions{gap:10px;margin:4px 0;display:flex}.plan-card__actions{gap:10px}.status-btn,.priority-btn{background:#fff;border-width:1.5px;border-radius:999px;min-height:40px;padding:0 16px;font-size:.8125rem;font-weight:600}.status-btn--active,.priority-btn--active{color:#111;background:#f4f4f4;border-color:#111;box-shadow:inset 0 0 0 .5px #111}.detail-section{border-top:none;padding:18px 0;position:relative}.detail-section+.detail-section{border-top:1px solid #ececec}.detail-section-header{margin-bottom:14px}.detail-label{letter-spacing:.08em;text-transform:uppercase;color:#999;margin-bottom:12px;font-size:.6875rem;font-weight:800}.detail-section.detail-section--danger{border-radius:var(--radius);background:#fff5f4;border:1px solid #f4d0cc;margin-top:12px;padding:18px 16px}.push-banner{border-radius:var(--radius);background:#fff;border:1.5px solid #111;flex-direction:column;gap:12px;margin:12px 16px 0;padding:14px 16px;display:flex}.push-banner__body strong{letter-spacing:-.2px;color:#111;margin-bottom:4px;font-size:.9375rem;font-weight:800;display:block}.push-banner__body p{color:#666;margin:0;font-size:.8125rem;line-height:1.45}.push-banner__actions{gap:10px;display:flex}.push-banner--info{flex-direction:row;justify-content:space-between;align-items:center;gap:10px}.push-banner--info span{color:#444;font-size:.8125rem;line-height:1.4}.empty-state-or{color:var(--color-muted);margin:0;font-size:.8rem}.seed-repair-banner{border:2px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface,#fff);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:12px 0;padding:12px 16px;display:flex}.seed-repair-text{color:var(--color-text,#111);margin:0;font-size:.875rem}.phase-nav{background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0;align-items:center;gap:6px;display:flex}.phase-nav__scroller{flex:auto;min-width:0;position:relative;overflow-x:hidden}.phase-nav__scroller:before,.phase-nav__scroller:after{content:"";pointer-events:none;opacity:0;z-index:1;width:40px;transition:opacity .15s;position:absolute;top:0;bottom:1px}.phase-nav__scroller:before{background:linear-gradient(to right, var(--color-surface) 30%, transparent);left:0}.phase-nav__scroller:after{background:linear-gradient(to left, var(--color-surface) 30%, transparent);right:0}.phase-nav--fade-l .phase-nav__scroller:before,.phase-nav--fade-r .phase-nav__scroller:after{opacity:1}.phase-nav__scroll{scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-behavior:smooth;gap:2px;padding:0 4px;display:flex;overflow-x:auto}.phase-nav .phase-nav__scroll.phase-tabs{max-width:100%;margin:0}.phase-nav__scroll::-webkit-scrollbar{display:none}.phase-nav__tab{min-height:44px;color:var(--color-muted);white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-bottom:2.5px solid #0000;flex-shrink:0;align-items:center;gap:5px;padding:11px 14px;font-size:12px;font-weight:500;transition:color .12s,border-color .12s,background .12s;display:inline-flex}.phase-nav__tab:hover:not(.is-active){color:var(--color-fg);background:var(--color-primary-soft)}.phase-nav__tab.is-active{color:var(--color-fg);border-bottom-color:var(--color-primary);font-weight:700}.phase-nav__tab:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px;border-radius:4px}.phase-nav__check{color:var(--color-primary,#3d7a4f);flex-shrink:0}.phase-nav__tab.is-done:not(.is-active) .phase-nav__label{color:var(--color-muted);opacity:.7}.phase-nav__arrow{z-index:2;border:1px solid var(--color-border);background:var(--color-surface);width:30px;height:30px;color:var(--color-fg);cursor:pointer;box-shadow:var(--shadow-card);opacity:0;visibility:hidden;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:opacity .15s,visibility .15s,background .12s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.phase-nav__arrow.is-visible{opacity:1;visibility:visible}.phase-nav__arrow:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.phase-nav__arrow:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.phase-nav__arrow--left{left:6px}.phase-nav__arrow--right{right:6px}@media (hover:none) and (pointer:coarse){.phase-nav__arrow{display:none}}@media (prefers-reduced-motion:reduce){.phase-nav__scroll{scroll-behavior:auto}}:root{--color-surface:#f7f4ee;--content-bg:#f7f4ee;--color-bg:#fff;--color-border:#e7e1d4;--shadow-card:0 1px 2px #2d26180d, 0 4px 12px #2d26180f;--shadow-lift:0 6px 20px #2d26181f, 0 2px 6px #2d261814;--shadow-hero:0 10px 30px #3d7a4f47;--radius:16px;--radius-sm:10px;--radius-pill:999px;--content-max:1080px;--content-pad:28px}.app-shell,.app-main-col{background:0 0}.app-header{background:linear-gradient(120deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);color:#fff;padding:14px var(--gap);border-bottom:none;box-shadow:0 2px 10px #2d26181a}.app-header__title,.app-header h1{color:#fff;letter-spacing:-.02em;font-weight:800}.app-header .settings-link{color:#ffffffeb}.app-header .settings-link:hover{color:#fff}.app-header .sync-status{color:#ffffffd1}.btn-primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff;box-shadow:0 1px 2px #2d26181a}.btn-primary:hover,.btn-primary:focus-visible{background:var(--color-primary-dark);border-color:var(--color-primary-dark)}.btn-accent{background:var(--color-accent);border-color:var(--color-accent);color:#fff;box-shadow:0 2px 8px #d97b2a47}.btn-accent:hover,.btn-accent:focus-visible{background:var(--color-accent-dark);border-color:var(--color-accent-dark)}.btn{border-radius:var(--radius-sm);transition:background .12s,border-color .12s,box-shadow .12s,transform 60ms}.btn:active{transform:translateY(1px)}@media (width>=1024px){.app-main-col{max-width:var(--content-max);width:100%;margin:0}.app-main,.app-header{padding-left:var(--content-pad);padding-right:var(--content-pad)}.side-nav{border-right:1px solid var(--color-border);background:#fff}.side-nav__link{color:#4a463d;border-radius:var(--radius-sm)}.side-nav__link:hover{background:var(--color-primary-soft);color:var(--color-primary-dark)}.side-nav__link--active{background:var(--color-primary-soft);color:var(--color-primary-dark);box-shadow:inset 3px 0 0 var(--color-primary);font-weight:700}.side-nav__logo{color:var(--color-primary)}}.plan-card,.dash-task,.card,.contractor-card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-card);transition:box-shadow .15s,transform .12s,border-color .15s}.plan-card:hover,.dash-task:hover,.contractor-card:hover{box-shadow:var(--shadow-lift);border-color:#dcd4c2;transform:translateY(-2px)}.plan-card__body{padding:16px}.plan-card__seq{background:var(--color-primary-soft);color:var(--color-primary-dark);font-weight:800}.dash-tag{border-radius:var(--radius-pill);letter-spacing:.01em;font-weight:700}.dash-tag--dark{color:#9a4d09;background:#fbe9d5;border:1px solid #f0c79a}.dash-tag--block{color:#a02820;background:#fbe3e1;border:1px solid #f2b8b2}.plan-badge{border-radius:var(--radius-pill)}.push-banner,.notice,.banner{border-radius:var(--radius);box-shadow:var(--shadow-card);background:#fffaf0;border:1px solid #f0e2c4}.bottom-nav{-webkit-backdrop-filter:saturate(1.2)blur(8px);backdrop-filter:saturate(1.2)blur(8px);border-top:1px solid var(--color-border);background:#fffffff5;box-shadow:0 -2px 16px #2d261814}.bottom-nav__link{color:#8a8577}.bottom-nav__link--active{color:var(--color-primary);font-weight:700}.bottom-nav__link--active svg{stroke-width:2.4px}.phase-tab,.phase-nav__tab{border-radius:var(--radius-pill);transition:background .12s,color .12s,box-shadow .12s}.phase-nav{background:0 0;border-bottom:none;margin:4px 0 2px}.phase-nav__scroller:before{background:linear-gradient(to right, var(--color-surface), transparent)}.phase-nav__scroller:after{background:linear-gradient(to left, var(--color-surface), transparent)}.phase-tab{min-height:40px;box-shadow:none;justify-content:center;padding:7px 15px;font-size:.8125rem;font-weight:600}.phase-tab__name{text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;max-width:15rem;display:inline-block;overflow:hidden}@media (width<=560px){.phase-tab__name{max-width:11rem}}@media (hover:hover) and (pointer:fine){.phase-nav__scroll{padding-left:40px;padding-right:40px}}.phase-tab--active,.phase-nav__arrow{box-shadow:var(--shadow-card)}.hero-card{box-shadow:var(--shadow-hero);border-radius:var(--radius)}.empty-state{color:var(--color-muted)}@media (prefers-reduced-motion:reduce){.plan-card,.dash-task,.contractor-card,.btn{transition:none}.plan-card:hover,.dash-task:hover,.contractor-card:hover{transform:none}}:root,[data-theme=brutalist]{--color-primary:#6b5ce6;--color-primary-dark:#4a3ec2;--color-primary-soft:#e4e1fb;--color-sand:#c9f03c;--color-yellow:#f5e63d;--color-orange:#f26a1b;--color-accent:#ff5a3c;--color-accent-dark:#e23a1e;--color-alert:#e11900;--font-mono:ui-monospace, "SFMono-Regular", "JetBrains Mono", Menlo, Consolas, monospace;--color-bg:#fff;--color-fg:#0b0b0b;--color-surface:#f7f3e7;--color-border:#0b0b0b;--color-muted:#4a4a4a;--color-success:#1f9d55;--color-warning:#e8590c;--color-danger:#e11900;--color-todo:#6b6b6b;--color-in-progress:#e8590c;--color-done:#1f9d55;--color-blocked:#e11900;--radius:6px;--radius-sm:4px;--shadow-card:6px 6px 0 #0b0b0b;--shadow-lift:9px 9px 0 #0b0b0b}body{background:var(--color-surface)}.page-title,.app-header__title,.app-header h1,.side-nav__brand,.dash-project-title,.task-detail-title,.hero-card__pct,.quote-col__company,.dialog-title{text-transform:uppercase;letter-spacing:.01em;font-weight:800}.card,.settings-card,.plan-card,.phase-card,.project-item,.quick-tile,.nextstep-card,.hero-card,.quote-request-card,.quote-col,.quote-fact,.dialog{border:3px solid var(--color-border);box-shadow:var(--shadow-card)}.plan-card:hover,.quick-tile:hover,.nextstep-card:hover{box-shadow:var(--shadow-lift);transform:translate(-1px,-1px)}.app-header{background:var(--color-primary);color:#fff;border-bottom:3px solid var(--color-border);box-shadow:none}.hero-card{background:var(--color-primary)}.nextstep-card{background:var(--color-sand)}.nextstep-card__cta{background:var(--color-accent);color:#0b0b0b;border-radius:var(--radius-sm);border:3px solid var(--color-border)}.nextstep-card__eyebrow{color:#0b0b0b}.btn{border:3px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-fg);box-shadow:var(--shadow-card);text-transform:uppercase;letter-spacing:.02em;background:#fff;font-weight:700}.btn:hover,.btn:focus-visible{background:var(--color-fg);color:#fff}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover,.btn-primary:focus-visible{background:var(--color-primary-dark);color:#fff}.btn-accent{background:var(--color-accent);color:#0b0b0b}.btn-accent:hover,.btn-accent:focus-visible{background:var(--color-accent-dark);color:#fff}.btn:active{box-shadow:1px 1px 0 var(--color-border);transform:translate(3px,3px)}.btn-ghost{box-shadow:none;border-color:#0000}.field input,.field select,.field textarea,.estimate-input,.task-desc-input,.spec-form input,.spec-form select,.subtask-add-form input{border:3px solid var(--color-border)}.bottom-nav{border-top:3px solid var(--color-border);box-shadow:none;background:#fff}.bottom-nav__link--active{color:var(--color-primary)}.side-nav{background:var(--color-yellow);border-right:4px solid var(--color-border)}.side-nav__brand,.side-nav__logo{color:#0b0b0b}.side-nav__link{color:#0b0b0b;text-transform:uppercase;letter-spacing:.02em;border-radius:0;font-weight:800}.side-nav__link:hover{background:#00000014}.side-nav__link--active,.side-nav__link--active:hover{color:#fff;background:#0b0b0b}.phase-tab{border:3px solid var(--color-border);border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.01em;font-weight:800}.phase-tab--active{color:#fff;background:#0b0b0b}.phase-tab--done{opacity:.6}.plan-badge{border-width:2px;font-weight:800}.dash-task-card,.dash-notify{border:3px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-card)}.dash-task-card:hover{box-shadow:var(--shadow-lift);transform:translate(-1px,-1px)}.dash-cb{border:3px solid var(--color-border);border-radius:3px}.page--home{background:var(--color-surface)}.dash-content{padding:18px 20px 24px}.dash-hero{background:var(--color-primary);color:#fff;border:3px solid var(--color-border);box-shadow:var(--shadow-card);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:16px;margin:18px 20px 16px;padding:18px 20px;display:flex}.dash-hero__title{text-transform:uppercase;letter-spacing:.01em;margin:0;font-size:1.6rem;font-weight:800;line-height:1.05}.dash-hero__meta{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:#ffffffd9;margin-top:6px;font-size:.75rem}.dash-hero__add{background:var(--color-yellow);color:#0b0b0b;border:3px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:3px 3px 0 var(--color-border);text-transform:uppercase;letter-spacing:.02em;cursor:pointer;white-space:nowrap;flex-shrink:0;padding:10px 16px;font-weight:800}.dash-hero__add:hover{color:var(--color-yellow);background:#0b0b0b}.dash-hero__add:active{box-shadow:0 0 0 var(--color-border);transform:translate(3px,3px)}.dash-progress{background:var(--color-orange);color:#0b0b0b;border:3px solid var(--color-border);box-shadow:var(--shadow-card);border-radius:var(--radius);margin:0 20px 18px;padding:14px 18px}.dash-progress__top{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.dash-progress__label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;font-weight:700}.dash-progress__pct{font-size:2rem;font-weight:800;line-height:1}.dash-progress__track{border:3px solid var(--color-border);background:#fff;border-radius:0;height:14px;margin:10px 0 8px;overflow:hidden}.dash-progress__fill{background:#0b0b0b;height:100%;transition:width .4s cubic-bezier(.4,0,.2,1)}.dash-progress__count{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;font-weight:700}.dash-section-h{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:#0b0b0b;align-items:center;gap:8px;font-weight:700;display:flex}.dash-section-h__label{min-width:0}.dash-section-h__edit{background:var(--color-surface,#fff);color:#0b0b0b;cursor:pointer;border:2px solid #0b0b0b;flex:none;justify-content:center;align-items:center;width:26px;height:26px;padding:0;display:inline-flex;box-shadow:2px 2px #0b0b0b}.dash-section-h__edit:hover,.dash-section-h__edit:focus-visible{background:var(--color-accent-yellow,#f5e63d)}.dash-section-h__edit:active{box-shadow:none;transform:translate(2px,2px)}.dialog-actions__end{margin-left:auto}.dash-task-card{justify-content:space-between;align-items:center;gap:14px;padding:14px 16px}.dash-task-main{flex:1;align-items:center;gap:14px;min-width:0;display:flex}.dash-task-name{color:#0b0b0b;font-size:1rem;font-weight:700}.dash-task-sub{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;color:var(--color-muted);font-size:.7rem}.dash-task-card--in_progress{background:var(--color-yellow)}.dash-task-card--done{background:#e9e7dd;border-color:#7a776c;box-shadow:3px 3px #b8b5a8}.dash-task-card--done .dash-task-name.done{color:#6f6c62}.dash-task-card--blocked{border-color:var(--color-border)}.dash-task-meta{flex-shrink:0;align-items:center;gap:8px;display:flex}.dash-chip{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;border:2px solid var(--color-border);color:#0b0b0b;white-space:nowrap;border-radius:0;padding:3px 8px;font-size:.68rem;font-weight:700;line-height:1.5}.dash-task-date{font-family:var(--font-mono);letter-spacing:.04em;color:var(--color-muted);text-align:right;min-width:3.5em;font-size:.7rem;font-weight:700}.dash-chip--tr-statik{background:#7fe3ea}.dash-chip--tr-behoerde{background:#f0a6e0}.dash-chip--tr-energie{background:#a8e6a0}.dash-chip--tr-elektro{background:#f5e63d}.dash-chip--tr-heizung{background:#f5a8cd}.dash-chip--tr-schadstoff{background:#d6d3c8}.dash-chip--tr-sanitaer{background:#a6c8f5}.dash-chip--tr-abbruch{background:#f5b96b}.dash-chip--tr-custom,.dash-chip--tag{background:#efe9d6}.dash-chip--primary{background:var(--color-border);color:#efe9d6;border-color:var(--color-border)}.detail-sublabel{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;color:var(--color-muted);margin:12px 0 6px;font-size:.68rem;font-weight:700;display:block}.detail-hint{color:var(--color-muted);margin:0 0 10px;font-size:.8rem}.cat-suggestions,.tag-list{flex-wrap:wrap;gap:8px;display:flex}.cat-chip{cursor:pointer}.cat-chip--active{box-shadow:3px 3px 0 var(--color-border);transform:translate(-1px,-1px)}.tag-chip{align-items:center;gap:6px;display:inline-flex}.tag-primary-btn,.tag-remove-btn{cursor:pointer;color:inherit;background:0 0;border:none;padding:0;font-size:.9rem;line-height:1}.tag-remove-btn{font-size:1.05rem;font-weight:700}.tag-add-form{gap:8px;margin-top:10px;display:flex}.tag-add-form input{flex:1}.dash-chip--st-high{background:var(--color-orange)}.dash-chip--st-normal{background:#fff}.dash-chip--st-low{color:var(--color-muted);background:#fff}.dash-chip--st-in_progress{background:var(--color-primary);color:#fff}.dash-chip--st-done{background:#a8e6a0}.dash-chip--st-blocked{background:var(--color-accent);color:#fff}.dash-task-card--done .dash-chip{color:#6f6c62;background:#dad7cc;border-color:#9a978c}.dash-task-card--done .dash-chip--primary{color:#dad7cc;background:#6f6c62}.dash-add-task{border:3px dashed var(--color-border);border-radius:var(--radius-sm);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;color:#0b0b0b;font-weight:700}.dash-notify{background:#fff}.push-banner{border:3px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-card);z-index:1;background:#fff;margin-bottom:14px;position:relative}[data-theme=calm]{--color-primary:#b04a45;--color-primary-dark:#8a3833;--color-primary-soft:#f3dedb;--color-primary-ink:#7a2e2a;--color-sand:#efe7dc;--color-yellow:#f0e2d1;--color-orange:#c0603f;--color-accent:#c0603f;--color-accent-dark:#a54a2e;--color-alert:#c0603f;--font-mono:"Inter", system-ui, -apple-system, sans-serif;--color-bg:#fff;--color-fg:#232320;--color-surface:#f6f5f2;--color-border:#e5e0d8;--color-muted:#6b665f;--color-success:#5f8a4f;--color-warning:#c0603f;--color-danger:#c0603f;--color-todo:#6b665f;--color-in-progress:#c0603f;--color-done:#5f8a4f;--color-blocked:#c0603f;--radius:12px;--radius-sm:9px;--shadow-card:0 2px 10px #0000000f;--shadow-lift:0 8px 22px #0000001a}[data-theme=calm] .page-title,[data-theme=calm] .app-header__title,[data-theme=calm] .app-header h1,[data-theme=calm] .side-nav__brand,[data-theme=calm] .dash-project-title,[data-theme=calm] .task-detail-title,[data-theme=calm] .hero-card__pct,[data-theme=calm] .quote-col__company,[data-theme=calm] .dialog-title{text-transform:none;letter-spacing:-.015em;font-weight:800}[data-theme=calm] .card,[data-theme=calm] .settings-card,[data-theme=calm] .plan-card,[data-theme=calm] .phase-card,[data-theme=calm] .project-item,[data-theme=calm] .quick-tile,[data-theme=calm] .nextstep-card,[data-theme=calm] .hero-card,[data-theme=calm] .quote-request-card,[data-theme=calm] .quote-col,[data-theme=calm] .quote-fact,[data-theme=calm] .dialog{border:1px solid var(--color-border);box-shadow:var(--shadow-card);border-radius:var(--radius)}[data-theme=calm] .plan-card:hover,[data-theme=calm] .quick-tile:hover,[data-theme=calm] .nextstep-card:hover{box-shadow:var(--shadow-lift);transform:translateY(-1px)}[data-theme=calm] .app-header{background:var(--color-bg);color:var(--color-fg);border-bottom:1px solid var(--color-border);box-shadow:none}[data-theme=calm] .hero-card{background:var(--color-primary-soft);color:var(--color-fg)}[data-theme=calm] .nextstep-card{border-left:4px solid var(--color-primary);background:#fff}[data-theme=calm] .nextstep-card__cta{background:var(--color-primary);color:#fff;border-radius:var(--radius-sm);box-shadow:none;border:none}[data-theme=calm] .nextstep-card__cta:hover{background:var(--color-primary-dark)}[data-theme=calm] .nextstep-card__eyebrow{color:var(--color-primary-ink);text-transform:uppercase;letter-spacing:.06em}[data-theme=calm] .btn{border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-fg);box-shadow:none;text-transform:none;letter-spacing:0;background:#fff;font-weight:600}[data-theme=calm] .btn:hover,[data-theme=calm] .btn:focus-visible{background:var(--color-primary-soft);color:var(--color-primary-ink);border-color:var(--color-primary-soft)}[data-theme=calm] .btn-primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}[data-theme=calm] .btn-primary:hover,[data-theme=calm] .btn-primary:focus-visible{background:var(--color-primary-dark);border-color:var(--color-primary-dark);color:#fff}[data-theme=calm] .btn-accent{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}[data-theme=calm] .btn-accent:hover,[data-theme=calm] .btn-accent:focus-visible{background:var(--color-accent-dark);border-color:var(--color-accent-dark);color:#fff}[data-theme=calm] .btn:active{box-shadow:none;transform:translateY(1px)}[data-theme=calm] .btn-ghost{box-shadow:none;background:0 0;border-color:#0000}[data-theme=calm] .field input,[data-theme=calm] .field select,[data-theme=calm] .field textarea,[data-theme=calm] .estimate-input,[data-theme=calm] .task-desc-input,[data-theme=calm] .spec-form input,[data-theme=calm] .spec-form select,[data-theme=calm] .subtask-add-form input{border:1px solid var(--color-border);border-radius:var(--radius-sm)}[data-theme=calm] .bottom-nav{border-top:1px solid var(--color-border);background:#fff;box-shadow:0 -2px 10px #0000000d}[data-theme=calm] .bottom-nav__link--active{color:var(--color-primary)}[data-theme=calm] .side-nav{border-right:1px solid var(--color-border);background:#f4eeee}[data-theme=calm] .side-nav__brand,[data-theme=calm] .side-nav__logo{color:var(--color-primary)}[data-theme=calm] .side-nav__link{color:var(--color-fg);text-transform:none;letter-spacing:0;border-radius:var(--radius-sm);font-weight:500}[data-theme=calm] .side-nav__link:hover{background:var(--color-primary-soft);color:var(--color-primary-ink)}[data-theme=calm] .side-nav__link--active,[data-theme=calm] .side-nav__link--active:hover{background:var(--color-primary-soft);color:var(--color-primary-ink);box-shadow:inset 3px 0 0 var(--color-primary);font-weight:600}[data-theme=calm] .phase-tab{border:1px solid var(--color-border);text-transform:none;letter-spacing:0;background:#fff;border-radius:999px;font-weight:600}[data-theme=calm] .phase-tab--active{background:var(--color-primary);color:#fff;box-shadow:none;border-color:#0000}[data-theme=calm] .phase-tab--done{opacity:.55}[data-theme=calm] .plan-badge{border-width:1px;border-radius:999px;font-weight:600}[data-theme=calm] .dash-task-card,[data-theme=calm] .dash-notify,[data-theme=calm] .push-banner{border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-card);background:#fff}[data-theme=calm] .dash-task-card:hover{box-shadow:var(--shadow-lift);transform:translateY(-1px)}[data-theme=calm] .dash-cb{border-radius:var(--radius-sm);border:2px solid #c3c8bb}[data-theme=calm] .dash-hero{background:var(--color-primary-soft);color:var(--color-fg);border:1px solid var(--color-border);box-shadow:var(--shadow-card);border-radius:var(--radius)}[data-theme=calm] .dash-hero__title{text-transform:none;letter-spacing:-.015em;color:var(--color-primary-ink)}[data-theme=calm] .dash-hero__meta{text-transform:none;letter-spacing:0;color:var(--color-muted)}[data-theme=calm] .dash-hero__add{background:var(--color-primary);color:#fff;border-radius:var(--radius-sm);box-shadow:none;text-transform:none;letter-spacing:0;border:none}[data-theme=calm] .dash-hero__add:hover{background:var(--color-primary-dark);color:#fff}[data-theme=calm] .dash-hero__add:active{box-shadow:none;transform:translateY(1px)}[data-theme=calm] .dash-progress{color:var(--color-fg);border:1px solid var(--color-border);box-shadow:var(--shadow-card);border-radius:var(--radius);background:#fff}[data-theme=calm] .dash-progress__label{text-transform:none;letter-spacing:.02em;color:var(--color-primary-ink)}[data-theme=calm] .dash-progress__pct{color:var(--color-primary)}[data-theme=calm] .dash-progress__track{background:var(--color-surface);height:12px;box-shadow:inset 0 0 0 1px var(--color-border);border:none;border-radius:999px}[data-theme=calm] .dash-progress__fill{background:var(--color-primary)}[data-theme=calm] .dash-progress__count,[data-theme=calm] .dash-section-h{text-transform:none;letter-spacing:0;color:var(--color-muted)}[data-theme=calm] .dash-task-name{color:var(--color-fg);font-weight:600}[data-theme=calm] .dash-task-sub{text-transform:none;letter-spacing:0;color:var(--color-muted)}[data-theme=calm] .dash-task-card--in_progress{border-color:var(--color-primary);box-shadow:inset 3px 0 0 var(--color-primary), var(--shadow-card);background:#fff}[data-theme=calm] .dash-task-card--in_progress .dash-task-sub{color:var(--color-primary-ink);font-weight:600}[data-theme=calm] .dash-task-card--done{border-color:var(--color-border);box-shadow:var(--shadow-card);opacity:.85;background:#faf9f6}[data-theme=calm] .dash-task-card--done .dash-task-name.done{color:var(--color-muted)}[data-theme=calm] .dash-chip{text-transform:none;letter-spacing:0;color:var(--color-fg);border:none;border-radius:999px;padding:4px 10px}[data-theme=calm] .dash-chip--st-high{background:var(--color-primary-soft);color:var(--color-primary-ink)}[data-theme=calm] .dash-chip--st-in_progress{background:var(--color-primary);color:#fff}[data-theme=calm] .dash-chip--st-blocked{background:var(--color-alert);color:#fff}[data-theme=calm] .dash-task-date{letter-spacing:0;color:var(--color-muted)}[data-theme=calm] .dash-task-card--done .dash-chip{color:var(--color-muted);background:#ece8e1;border-color:#0000}[data-theme=calm] .dash-add-task{border:2px dashed var(--color-border);border-radius:var(--radius-sm);text-transform:none;letter-spacing:0;color:var(--color-primary-ink)}[data-theme=calm] .app-header .settings-link{color:var(--color-muted)}[data-theme=calm] .dash-section-h__edit{border:1px solid var(--color-border);color:var(--color-muted);box-shadow:none;background:#fff;border-radius:8px}[data-theme=calm] .dash-section-h__edit:hover,[data-theme=calm] .dash-section-h__edit:focus-visible{background:var(--color-primary-soft);color:var(--color-primary-ink)}[data-theme=calm] .dash-section-h__edit:active{box-shadow:none;transform:none}[data-theme=calm] .dash-chip--primary{background:var(--color-primary);color:#fff}[data-theme=fluffy]{--color-primary:#f06ba0;--color-primary-dark:#e14e8a;--color-primary-soft:#ffe1ee;--color-sand:#ffe1ee;--color-yellow:#fff3c4;--color-orange:#ffd9a8;--color-accent:#f9739f;--color-accent-dark:#e14e8a;--color-alert:#ef5a7a;--font-mono:"Inter", system-ui, -apple-system, sans-serif;--color-bg:#fff;--color-fg:#5a2a40;--color-surface:#fdeef3;--color-border:#f7d3e1;--color-muted:#875a6f;--color-primary-ink:#bd2e6f;--color-success:#4caf7d;--color-warning:#f0a24b;--color-danger:#ef5a7a;--color-todo:#875a6f;--color-in-progress:#f06ba0;--color-done:#4caf7d;--color-blocked:#ef5a7a;--radius:20px;--radius-sm:14px;--shadow-card:0 10px 26px #f06ba02e;--shadow-lift:0 16px 34px #f06ba042}[data-theme=fluffy] .page-title,[data-theme=fluffy] .app-header__title,[data-theme=fluffy] .app-header h1,[data-theme=fluffy] .side-nav__brand,[data-theme=fluffy] .dash-project-title,[data-theme=fluffy] .task-detail-title,[data-theme=fluffy] .hero-card__pct,[data-theme=fluffy] .quote-col__company,[data-theme=fluffy] .dialog-title{text-transform:none;letter-spacing:-.01em;font-weight:700}[data-theme=fluffy] .card,[data-theme=fluffy] .settings-card,[data-theme=fluffy] .plan-card,[data-theme=fluffy] .phase-card,[data-theme=fluffy] .project-item,[data-theme=fluffy] .quick-tile,[data-theme=fluffy] .nextstep-card,[data-theme=fluffy] .hero-card,[data-theme=fluffy] .quote-request-card,[data-theme=fluffy] .quote-col,[data-theme=fluffy] .quote-fact,[data-theme=fluffy] .dialog{border:1px solid var(--color-border);box-shadow:var(--shadow-card);border-radius:var(--radius)}[data-theme=fluffy] .plan-card:hover,[data-theme=fluffy] .quick-tile:hover,[data-theme=fluffy] .nextstep-card:hover{box-shadow:var(--shadow-lift);transform:translateY(-2px)}[data-theme=fluffy] .app-header{color:#fff;background:linear-gradient(135deg,#f9739f,#f06ba0);border-bottom:none;box-shadow:0 6px 18px #f06ba040}[data-theme=fluffy] .hero-card{background:linear-gradient(135deg,#f9739f,#f06ba0)}[data-theme=fluffy] .nextstep-card{background:var(--color-primary-soft)}[data-theme=fluffy] .nextstep-card__cta{color:#fff;background:linear-gradient(135deg,#f9739f,#f06ba0);border:none;border-radius:999px;box-shadow:0 6px 16px #f06ba04d}[data-theme=fluffy] .nextstep-card__eyebrow{color:var(--color-primary-ink)}[data-theme=fluffy] .btn{border:1px solid var(--color-border);color:var(--color-fg);text-transform:none;letter-spacing:0;background:#fff;border-radius:999px;font-weight:600;box-shadow:0 4px 12px #f06ba024}[data-theme=fluffy] .btn:hover,[data-theme=fluffy] .btn:focus-visible{background:var(--color-primary-soft);color:var(--color-primary-dark)}[data-theme=fluffy] .btn-primary{color:#fff;background:linear-gradient(135deg,#f9739f,#f06ba0);border-color:#0000}[data-theme=fluffy] .btn-primary:hover,[data-theme=fluffy] .btn-primary:focus-visible{color:#fff;background:linear-gradient(135deg,#f06ba0,#e14e8a)}[data-theme=fluffy] .btn-accent{color:#fff;background:linear-gradient(135deg,#f9739f,#f06ba0)}[data-theme=fluffy] .btn-accent:hover,[data-theme=fluffy] .btn-accent:focus-visible{color:#fff;background:linear-gradient(135deg,#f06ba0,#e14e8a)}[data-theme=fluffy] .btn:active{transform:translateY(1px);box-shadow:0 2px 6px #f06ba038}[data-theme=fluffy] .btn-ghost{box-shadow:none;background:0 0;border-color:#0000}[data-theme=fluffy] .field input,[data-theme=fluffy] .field select,[data-theme=fluffy] .field textarea,[data-theme=fluffy] .estimate-input,[data-theme=fluffy] .task-desc-input,[data-theme=fluffy] .spec-form input,[data-theme=fluffy] .spec-form select,[data-theme=fluffy] .subtask-add-form input{border:1px solid var(--color-border);border-radius:var(--radius-sm)}[data-theme=fluffy] .bottom-nav{border-top:1px solid var(--color-border);background:#fff;box-shadow:0 -4px 16px #f06ba01a}[data-theme=fluffy] .bottom-nav__link--active{color:var(--color-primary)}[data-theme=fluffy] .side-nav{border-right:1px solid var(--color-border);background:#fff}[data-theme=fluffy] .side-nav__brand,[data-theme=fluffy] .side-nav__logo{color:var(--color-primary)}[data-theme=fluffy] .side-nav__link{color:var(--color-fg);text-transform:none;letter-spacing:0;border-radius:999px;font-weight:600}[data-theme=fluffy] .side-nav__link:hover{background:var(--color-primary-soft)}[data-theme=fluffy] .side-nav__link--active,[data-theme=fluffy] .side-nav__link--active:hover{color:#fff;background:linear-gradient(135deg,#f9739f,#f06ba0);box-shadow:0 6px 16px #f06ba04d}[data-theme=fluffy] .phase-tab{border:1px solid var(--color-border);text-transform:none;letter-spacing:0;background:#fff;border-radius:999px;font-weight:600}[data-theme=fluffy] .phase-tab--active{color:#fff;background:linear-gradient(135deg,#f9739f,#f06ba0);border-color:#0000;box-shadow:0 6px 16px #f06ba047}[data-theme=fluffy] .phase-tab--done{opacity:.55}[data-theme=fluffy] .plan-badge{border-width:1px;border-radius:999px;font-weight:600}[data-theme=fluffy] .dash-task-card,[data-theme=fluffy] .dash-notify,[data-theme=fluffy] .push-banner{border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-card);background:#fff}[data-theme=fluffy] .dash-task-card:hover{box-shadow:var(--shadow-lift);transform:translateY(-2px)}[data-theme=fluffy] .dash-cb{border:2px solid var(--color-border);border-radius:999px}[data-theme=fluffy] .dash-hero{color:#fff;background:linear-gradient(135deg,#f9739f,#f06ba0);border:none;border-radius:24px;box-shadow:0 12px 30px #f06ba047}[data-theme=fluffy] .dash-hero__title{text-transform:none;letter-spacing:-.01em}[data-theme=fluffy] .dash-hero__meta{text-transform:none;letter-spacing:0;color:#ffffffe6}[data-theme=fluffy] .dash-hero__add{color:var(--color-primary-ink);text-transform:none;letter-spacing:0;background:#fff;border:none;border-radius:999px;box-shadow:0 6px 16px #0000001f}[data-theme=fluffy] .dash-hero__add:hover{background:var(--color-primary-soft);color:var(--color-primary-ink)}[data-theme=fluffy] .dash-hero__add:active{transform:translateY(1px);box-shadow:0 2px 6px #0000001f}[data-theme=fluffy] .dash-progress{background:var(--color-primary-soft);color:var(--color-fg);border:1px solid var(--color-border);box-shadow:var(--shadow-card);border-radius:var(--radius)}[data-theme=fluffy] .dash-progress__label{text-transform:none;letter-spacing:.02em;color:var(--color-primary-ink)}[data-theme=fluffy] .dash-progress__pct{color:var(--color-primary)}[data-theme=fluffy] .dash-progress__track{height:12px;box-shadow:inset 0 0 0 1px var(--color-border);background:#fff;border:none;border-radius:999px}[data-theme=fluffy] .dash-progress__fill{background:linear-gradient(90deg,#f9739f,#f06ba0)}[data-theme=fluffy] .dash-progress__count,[data-theme=fluffy] .dash-section-h{text-transform:none;letter-spacing:0;color:var(--color-muted)}[data-theme=fluffy] .dash-task-name{color:var(--color-fg);font-weight:600}[data-theme=fluffy] .dash-task-sub{text-transform:none;letter-spacing:0;color:var(--color-muted)}[data-theme=fluffy] .dash-task-card--in_progress{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary), var(--shadow-card);background:#fff}[data-theme=fluffy] .dash-task-card--in_progress .dash-task-sub{color:var(--color-primary);font-weight:600}[data-theme=fluffy] .dash-task-card--done{border-color:var(--color-border);box-shadow:var(--shadow-card);opacity:.85;background:#faf3f6}[data-theme=fluffy] .dash-task-card--done .dash-task-name.done{color:var(--color-muted)}[data-theme=fluffy] .dash-chip{text-transform:none;letter-spacing:0;color:var(--color-fg);border:none;border-radius:999px;padding:4px 10px}[data-theme=fluffy] .dash-chip--st-high{background:var(--color-primary-soft);color:var(--color-primary-ink)}[data-theme=fluffy] .dash-chip--st-in_progress{background:var(--color-primary);color:#fff}[data-theme=fluffy] .dash-chip--st-blocked{background:var(--color-alert);color:#fff}[data-theme=fluffy] .dash-task-date{letter-spacing:0;color:var(--color-muted)}[data-theme=fluffy] .dash-task-card--done .dash-chip{color:var(--color-muted);background:#efe4ea;border-color:#0000}[data-theme=fluffy] .dash-add-task{border:2px dashed var(--color-border);border-radius:var(--radius-sm);text-transform:none;letter-spacing:0;color:var(--color-primary-ink)}.theme-picker{flex-direction:column;gap:10px;margin-top:8px;display:flex}.theme-option{text-align:left;cursor:pointer;background:var(--color-bg);width:100%;min-height:56px;color:var(--color-fg);border:2px solid var(--color-border);border-radius:var(--radius);align-items:center;gap:14px;padding:12px 14px;display:flex}.theme-option--active{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary)}.theme-option__text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.theme-option__name{font-weight:700}.theme-option__desc{color:var(--color-muted);font-size:.8rem}.theme-option__check{color:var(--color-primary);flex-shrink:0;font-weight:800}.theme-swatch{border-radius:10px;flex-shrink:0;width:44px;height:44px}.theme-swatch--calm{background:#f6f5f2;border:1px solid #e5e2db;border-radius:10px;box-shadow:inset 4px 0 #b04a45}.theme-swatch--brutalist{background:#f5e63d;border:3px solid #0b0b0b;border-radius:4px;box-shadow:3px 3px #6b5ce6}.theme-swatch--fluffy{background:linear-gradient(135deg,#f9739f,#f06ba0);border:1px solid #f7d3e1;border-radius:999px;box-shadow:0 4px 12px #f06ba059}@media (width<=480px){.dash-hero{flex-direction:column;align-items:stretch;gap:14px}.dash-hero__add{justify-content:center;align-items:center;gap:6px;width:100%;min-height:48px;display:inline-flex}}.app-header__brand{color:inherit;cursor:pointer;align-items:center;min-height:48px;text-decoration:none;display:inline-flex}.app-header__brand:hover,.app-header__brand:focus,.app-header__brand:visited{color:inherit;text-decoration:none}.app-header__brand .app-header__title{margin:0}.side-nav__brand,.side-nav__brand:hover,.side-nav__brand:focus,.side-nav__brand:visited{cursor:pointer;text-decoration:none}.dash-task-card{align-items:stretch;gap:12px;margin-bottom:8px;padding:11px 14px}.dash-task-main{align-items:flex-start;gap:12px}.dash-task-info{flex-direction:column;gap:6px;display:flex}.dash-task-name{overflow-wrap:anywhere;font-size:.95rem;line-height:1.3}.dash-task-meta{flex-wrap:wrap;gap:6px;margin-top:1px}.dash-task-info{container:dashtaskinfo/inline-size}@container dashtaskinfo (width<=360px){.dash-task-meta .dash-chip--tag:not(.dash-chip--primary){display:none}}.dash-chip{padding:2px 7px;font-size:.64rem}.dash-task-date{text-align:right;min-width:0;margin-left:auto;font-size:.66rem}.fallback-screen{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;max-width:420px;min-height:60vh;margin:0 auto;padding:32px 20px;display:flex}.fallback-screen__icon{color:var(--color-muted,#666)}.fallback-screen__code{letter-spacing:.05em;margin:0;font-size:2.5rem;font-weight:700}.fallback-screen__title{margin:0;font-size:1.25rem;font-weight:600}.fallback-screen__text{color:var(--color-muted,#666);margin:0;line-height:1.5}.fallback-screen__detail{background:var(--color-surface-alt,#f2f2f2);width:100%;max-width:100%;color:var(--color-muted,#666);text-align:left;white-space:pre-wrap;word-break:break-word;border-radius:8px;padding:10px 12px;font-size:.8rem;overflow-x:auto}.fallback-screen__action{min-height:48px;margin-top:8px}.app-header .sync-status--error{color:#fff;background:#c0271c;border-radius:6px;align-items:center;gap:8px;padding:4px 8px;font-weight:600;display:inline-flex}.sync-status__retry{color:#fff;cursor:pointer;background:0 0;border:1px solid #fff;border-radius:5px;min-width:48px;min-height:32px;padding:4px 10px;font-size:.75rem;font-weight:600}.sync-status__retry:hover:not(:disabled){background:#ffffff2e}.sync-status__retry:disabled{opacity:.6;cursor:default}.quote-local-banner{border:1px solid var(--color-border,#000);background:var(--color-surface-muted,#f4f4f4);color:var(--color-text,#000);border-left-width:4px;border-radius:6px;align-items:flex-start;gap:.75rem;margin:0 0 1rem;padding:.75rem .875rem;font-size:.875rem;line-height:1.35;display:flex}.quote-local-banner__icon{flex:none;font-size:1.1rem;line-height:1.2}.quote-local-banner__text{flex:auto}.quote-local-banner__dismiss{min-width:48px;min-height:48px;color:inherit;cursor:pointer;background:0 0;border:none;flex:none;margin:-.5rem -.5rem -.5rem 0;font-size:1rem}.next-actions{flex-direction:column;gap:14px;margin-bottom:16px;display:flex}.next-actions__block{background:var(--color-bg,#fff);border:1.5px solid var(--color-border,#e7e1d4);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:12px 12px 8px}.next-actions__head{color:var(--color-primary,#3d7a4f);align-items:center;gap:7px;margin-bottom:8px;display:flex}.next-actions__title{text-transform:uppercase;letter-spacing:.07em;font-size:11px;font-weight:800}.next-steps{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.next-step__link{border-radius:var(--radius-sm);min-height:48px;color:inherit;align-items:center;gap:10px;padding:6px;text-decoration:none;transition:background .12s;display:flex}.next-step__link:hover,.next-step__link:focus-visible{background:var(--color-surface,#f7f4ee)}.next-step__num{border-radius:var(--radius-pill);background:var(--color-primary,#3d7a4f);color:#fff;flex:none;justify-content:center;align-items:center;width:26px;height:26px;font-size:13px;font-weight:800;line-height:1;display:inline-flex}.next-step__body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.next-step__name{color:var(--color-text,#2d2618);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.next-step__reason{text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted,#6b6455);font-size:11px;font-weight:700}.next-step__reason--overdue{color:var(--color-alert,#d1493f)}.next-step__reason--dueSoon{color:#c47a12}.next-step__reason--inProgress{color:var(--color-primary,#3d7a4f)}.next-step__reason--highPriority{color:var(--color-alert,#d1493f)}.next-step__chev{color:var(--color-text-muted,#9a9284);flex:none}.nudge-list{flex-direction:column;gap:4px;display:flex}.nudge-row{border-radius:var(--radius-sm);min-height:48px;color:inherit;border-left:3px solid var(--color-border,#e7e1d4);align-items:center;gap:10px;padding:6px;text-decoration:none;transition:background .12s;display:flex}.nudge-row:hover,.nudge-row:focus-visible{background:var(--color-surface,#f7f4ee)}.nudge-row__icon{flex:none}.nudge-row--deadline{border-left-color:#c47a12}.nudge-row--deadline .nudge-row__icon{color:#c47a12}.nudge-row--payment{border-left-color:var(--color-primary,#3d7a4f)}.nudge-row--payment .nudge-row__icon{color:var(--color-primary,#3d7a4f)}.nudge-row--permit{border-left-color:#5661c4}.nudge-row--permit .nudge-row__icon{color:#5661c4}.nudge-row--overdue{border-left-color:var(--color-alert,#d1493f)}.nudge-row--overdue .nudge-row__icon{color:var(--color-alert,#d1493f)}.nudge-row__body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.nudge-row__title{color:var(--color-text,#2d2618);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.nudge-row__meta{color:var(--color-text-muted,#6b6455);font-size:11px;font-weight:700}.nudge-row--overdue .nudge-row__meta{color:var(--color-alert,#d1493f)}.tl-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.tl-title{color:var(--color-fg);margin:0;font-size:1.35rem;font-weight:700}.tl-sub{color:var(--color-muted);margin:2px 0 0;font-size:.9rem}.tl-warn{background:var(--color-alert,#fde68a);color:var(--color-fg);border:1px solid var(--color-border);border-radius:var(--radius-sm);align-items:center;gap:8px;margin-bottom:12px;padding:10px 12px;font-size:.9rem;display:flex}.tl-cards{grid-template-columns:1fr;gap:12px;margin-bottom:12px;display:grid}@media (width>=640px){.tl-cards{grid-template-columns:1fr 1fr}}.tl-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-card);flex-direction:column;gap:6px;padding:12px 14px;display:flex}.tl-card--risk{border-color:var(--color-danger)}.tl-card__label{text-transform:uppercase;letter-spacing:.03em;color:var(--color-muted);align-items:center;gap:6px;font-size:.78rem;font-weight:700;display:flex}.tl-card__value{color:var(--color-fg);font-size:1.5rem;font-weight:700;line-height:1}.tl-card__meta{color:var(--color-muted);font-size:.85rem}.tl-crit-chain{flex-wrap:wrap;align-items:center;gap:4px 2px;display:flex}.tl-crit-node{align-items:center;gap:2px;display:inline-flex}.tl-crit-arrow{color:var(--color-danger);flex:none}.tl-crit-link{color:var(--color-danger);font-size:.85rem;font-weight:600;text-decoration:none}.tl-crit-link:hover{text-decoration:underline}.tl-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.tl-list__link{min-height:32px;color:var(--color-fg);align-items:center;gap:8px;font-size:.9rem;text-decoration:none;display:flex}.tl-list__link:hover{text-decoration:underline}.tl-list__meta{color:var(--color-muted);white-space:nowrap;margin-left:auto;font-size:.8rem}.tl-list__link--risk{color:var(--color-danger)}.tl-slip{color:var(--color-danger);font-weight:700}.tl-dot{border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.tl-dot--crit{background:var(--color-danger)}.tl-legend{color:var(--color-muted);flex-wrap:wrap;align-items:center;gap:10px 16px;margin-bottom:10px;font-size:.8rem;display:flex}.tl-legend span{align-items:center;gap:6px;display:inline-flex}.tl-swatch{border-radius:2px;width:16px;height:10px;display:inline-block}.tl-swatch--critical{background:var(--color-danger)}.tl-swatch--in_progress{background:var(--color-in-progress)}.tl-swatch--done{background:var(--color-done)}.tl-swatch--blocked{background:var(--color-blocked)}.tl-flag-icon{color:var(--color-primary)}.gantt{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);-webkit-overflow-scrolling:touch;overflow-x:auto}.gantt-inner{position:relative}.gantt-row{border-bottom:1px solid var(--color-border);align-items:stretch;min-height:44px;display:flex}.gantt-row--head{z-index:3;min-height:30px;position:sticky;top:0}.gantt-label{z-index:2;background:var(--color-surface);border:none;border-right:1px solid var(--color-border);text-align:left;font:inherit;color:var(--color-fg);cursor:pointer;flex:none;align-items:center;gap:6px;padding:6px 8px;font-size:.82rem;display:flex;position:sticky;left:0}.gantt-label--head{background:var(--color-bg);cursor:default}.gantt-label__text{text-overflow:ellipsis;white-space:nowrap;line-height:1.2;overflow:hidden}.gantt-track{flex:none;position:relative}.gantt-track--head{background:var(--color-bg)}.gantt-grid{background:var(--color-border);opacity:.5;width:1px;position:absolute;top:0;bottom:0}.gantt-tick{color:var(--color-muted);white-space:nowrap;font-size:.68rem;position:absolute;top:7px;transform:translate(2px)}.gantt-today{background:var(--color-primary);z-index:1;width:2px;position:absolute;top:0;bottom:0}.gantt-today--head{color:#fff;background:var(--color-primary);border-radius:3px;width:auto;height:auto;padding:1px 5px;font-size:.65rem;font-weight:700;top:2px;bottom:auto;transform:translate(-50%)}.gantt-bar{cursor:pointer;color:#fff;z-index:1;border:none;border-radius:5px;align-items:center;height:28px;padding:0 6px;display:flex;position:absolute;top:8px;overflow:hidden}.gantt-bar__text{white-space:nowrap;font-size:.7rem;font-weight:700}.gantt-bar--critical{background:var(--color-danger);box-shadow:0 0 0 1.5px var(--color-danger)}.gantt-bar--in_progress{background:var(--color-in-progress)}.gantt-bar--done{background:var(--color-done)}.gantt-bar--blocked{background:var(--color-blocked)}.gantt-bar--todo{background:var(--color-todo,var(--color-muted))}.gantt-flag{z-index:2;color:var(--color-primary);pointer-events:none;position:absolute;top:6px;transform:translate(-2px)}.gantt-flag--slip{color:var(--color-danger)}.gantt-phase{text-transform:uppercase;letter-spacing:.04em;color:var(--color-muted);background:var(--color-bg);border-bottom:1px solid var(--color-border);padding:5px 8px;font-size:.72rem;font-weight:700;position:sticky;left:0}.wizard{max-width:640px;margin:0 auto}.page-actions-group{flex-wrap:wrap;gap:8px;display:flex}.wizard-empty-hint{color:var(--color-muted);max-width:32ch;margin:8px 0 0;font-size:.9rem}.wizard-progress{gap:8px;margin:4px 0 12px;display:flex}.wizard-progress-dot{background:var(--color-border);border-radius:3px;flex:1;height:6px}.wizard-progress-dot.is-active{background:var(--color-primary)}.wizard-step-count{color:var(--color-muted);margin:0 0 4px;font-size:.85rem}.wizard-hint{color:var(--color-muted);margin:0 0 16px}.wizard-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.wizard-option{border:2px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);min-height:88px;color:var(--color-fg);cursor:pointer;text-align:left;flex-direction:column;align-items:flex-start;gap:6px;padding:16px;transition:border-color .12s,background .12s;display:flex;position:relative}.wizard-option:hover,.wizard-option:focus-visible{border-color:var(--color-fg)}.wizard-option.is-selected{border-color:var(--color-primary);background:var(--color-primary-soft)}.wizard-option-icon{font-size:1.6rem;line-height:1}.wizard-option-name{font-weight:600}.wizard-option-check{color:var(--color-primary);font-weight:700;position:absolute;top:10px;right:12px}.wizard-list{flex-direction:column;gap:12px;display:flex}.wizard-list-option{border:2px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);min-height:56px;color:var(--color-fg);cursor:pointer;text-align:left;flex-direction:column;gap:4px;padding:14px 16px;display:flex}.wizard-list-option:hover,.wizard-list-option:focus-visible{border-color:var(--color-fg)}.wizard-list-option.is-selected{border-color:var(--color-primary);background:var(--color-primary-soft)}.wizard-list-option-name{font-weight:600}.wizard-list-option-desc{color:var(--color-muted);font-size:.85rem}.wizard-plan{flex-direction:column;gap:12px;margin:8px 0 0;padding:0;list-style:none;display:flex}.wizard-plan-phase{border:2px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);padding:12px 14px}.wizard-plan-phase-head{align-items:center;gap:10px;margin-bottom:8px;display:flex}.wizard-plan-phase-num{background:var(--color-primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:.85rem;font-weight:700;display:inline-flex}.wizard-plan-phase-title{font-weight:700}.wizard-plan-tasks{margin:0;padding:0 0 0 36px;list-style:none}.wizard-plan-task{color:var(--color-fg);padding:3px 0;font-size:.92rem;position:relative}.wizard-plan-task:before{content:"·";color:var(--color-muted);position:absolute;left:-14px}.wizard-order-note{border-left:3px solid var(--color-accent);background:var(--color-surface);border-radius:var(--radius-sm);color:var(--color-fg);margin-top:12px;padding:10px 12px;font-size:.88rem}.wizard-actions{border-top:2px solid var(--color-border);justify-content:space-between;gap:12px;margin-top:24px;padding-top:16px;display:flex}.wizard-actions .btn{min-height:48px}@media (width>=640px){.wizard-grid{grid-template-columns:repeat(4,1fr)}}.acc-list{flex-direction:column;gap:12px;display:flex}.acc-card{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);box-shadow:var(--shadow-card);overflow:hidden}.acc-card__head{width:100%;min-height:var(--touch-min);cursor:pointer;text-align:left;font:inherit;color:inherit;background:0 0;border:none;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.acc-card__main{flex-direction:column;gap:4px;min-width:0;display:flex}.acc-card__trade{text-overflow:ellipsis;font-size:1rem;font-weight:700;overflow:hidden}.acc-card__stats{flex-shrink:0;align-items:center;gap:10px;font-size:.82rem;display:flex}.acc-card__defects{color:var(--color-muted);white-space:nowrap}.acc-card__retention{white-space:nowrap;font-weight:700}.acc-card__retention--held{color:var(--color-warning)}.acc-card__chevron{color:var(--color-muted);font-size:.9rem}.acc-status{text-transform:uppercase;letter-spacing:.02em;border-radius:999px;width:fit-content;padding:2px 8px;font-size:.72rem;font-weight:700;display:inline-block}.acc-status--pending{color:var(--color-todo);background:#ececef}.acc-status--accepted{background:var(--color-primary-soft);color:var(--color-primary-dark)}.acc-status--accepted_with_defects{color:var(--color-accent-dark);background:#fbe7d6}.acc-status--rejected{color:var(--color-alert);background:#f7dcd8}.acc-detail{border-top:1px solid var(--color-border);flex-direction:column;gap:18px;padding:4px 14px 14px;display:flex}.acc-block__head{justify-content:space-between;align-items:center;gap:10px;display:flex}.acc-block__title{margin:0 0 8px;font-size:.95rem;font-weight:700}.acc-block__count{color:var(--color-muted);font-size:.85rem;font-weight:600}.acc-checklist{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.acc-check{min-height:var(--touch-min);cursor:pointer;align-items:flex-start;gap:10px;padding:6px 4px;display:flex}.acc-check input{width:22px;height:22px;accent-color:var(--color-primary);flex-shrink:0;margin-top:2px}.acc-check__label{line-height:1.35}.acc-check__label--done{color:var(--color-muted);text-decoration:line-through}.acc-signoff{flex-wrap:wrap;gap:8px;display:flex}.acc-signoff input{min-height:var(--touch-min);border:1px solid var(--color-border);border-radius:var(--radius-sm);font:inherit;flex:160px;padding:0 12px}.acc-signed{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.acc-signed__meta{color:var(--color-muted);font-size:.85rem}.acc-retention{background:var(--color-surface);border-radius:var(--radius-sm);padding:12px 14px}.acc-retention__amount{align-items:baseline;gap:8px;font-size:1.5rem;font-weight:800;display:flex}.acc-retention__pct{color:var(--color-muted);font-size:.8rem;font-weight:600}.acc-retention__held{color:var(--color-warning);margin:6px 0;font-weight:600}.acc-retention__released{color:var(--color-primary-dark);margin:6px 0;font-weight:600}.acc-retention__clear{color:var(--color-muted);margin:6px 0}.defect-list{flex-direction:column;gap:10px;display:flex}.defect-row{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);border-left-width:4px;padding:10px 12px}.defect-row--open{border-left-color:var(--color-alert)}.defect-row--fixed{border-left-color:var(--color-accent)}.defect-row--accepted{border-left-color:var(--color-primary)}.defect-row__head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.defect-row__title{flex:auto;min-width:0;font-weight:600}.defect-row__meta{color:var(--color-muted);margin-top:4px;font-size:.85rem}.defect-row__desc{margin:6px 0 0;line-height:1.4}.defect-row__actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.defect-badge{text-transform:uppercase;border-radius:999px;padding:2px 8px;font-size:.7rem;font-weight:700}.defect-badge--open{color:var(--color-alert);background:#f7dcd8}.defect-badge--fixed{color:var(--color-accent-dark);background:#fbe7d6}.defect-badge--accepted{background:var(--color-primary-soft);color:var(--color-primary-dark)}.defect-sev{font-size:.72rem;font-weight:700}.defect-sev--major{color:var(--color-alert)}.defect-sev--minor{color:var(--color-muted)}.defect-photo-row{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.defect-photo{border-radius:var(--radius-sm);background:var(--color-surface);width:72px;height:72px;position:relative;overflow:hidden}.defect-photo img{object-fit:cover;width:100%;height:100%;display:block}.defect-photo__ph{justify-content:center;align-items:center;width:100%;height:100%;font-size:1.4rem;display:flex}.defect-photo__del{color:#fff;cursor:pointer;background:#0009;border:none;border-radius:999px;width:22px;height:22px;line-height:1;position:absolute;top:2px;right:2px}.defect-capture-btn{border:2px dashed var(--color-border);border-radius:var(--radius-sm);cursor:pointer;background:var(--color-surface);justify-content:center;align-items:center;width:72px;height:72px;font-size:1.4rem;display:flex}.acc-card__foot{padding:0 14px 12px}.diary-count{color:var(--color-muted);white-space:nowrap;font-size:.8125rem;font-weight:600}.diary-tabs{margin-bottom:var(--gap);gap:8px;display:flex}.diary-tab{min-height:var(--touch-min);color:var(--color-fg);background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius);cursor:pointer;-webkit-tap-highlight-color:transparent;flex:1;justify-content:center;align-items:center;gap:6px;padding:10px 12px;font-size:.875rem;font-weight:600;display:flex}.diary-tab--active{color:#fff;background:var(--color-primary);border-color:var(--color-primary)}.diary-timeline{flex-direction:column;gap:24px;display:flex}.diary-day__head{border-bottom:2px solid var(--color-border);justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:12px;padding-bottom:8px;display:flex}.diary-day__date{color:var(--color-fg);text-transform:capitalize;font-size:.9375rem;font-weight:700}.diary-day__count{color:var(--color-muted);white-space:nowrap;font-size:.75rem;font-weight:600}.diary-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.diary-cell{flex-direction:column;gap:6px;margin:0;display:flex}.diary-cell__btn{aspect-ratio:4/3;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;-webkit-tap-highlight-color:transparent;width:100%;padding:0;display:block;position:relative;overflow:hidden}.diary-cell__img{object-fit:cover;width:100%;height:100%;display:block}.diary-cell__cap{color:var(--color-fg);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.75rem;line-height:1.3;display:-webkit-box;overflow:hidden}.diary-cell__task{color:var(--color-primary);font-weight:600;text-decoration:none}.diary-img--placeholder{color:var(--color-muted);background:var(--color-surface);justify-content:center;align-items:center;font-size:1.75rem;display:flex}.diary-cell__btn .photo-upload-state-badge{position:absolute;top:6px;left:6px}.diary-compare__hint{color:var(--color-muted);margin-bottom:var(--gap);font-size:.8125rem;line-height:1.4}.diary-compare__pair{margin-bottom:var(--gap);grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.diary-compare__col{flex-direction:column;gap:8px;min-width:0;display:flex}.diary-compare__label{color:var(--color-fg);justify-content:space-between;align-items:center;gap:6px;font-size:.8125rem;font-weight:700;display:flex}.diary-compare__stamp{color:var(--color-muted);white-space:nowrap;font-size:.6875rem;font-weight:600}.diary-compare__img{aspect-ratio:3/4;object-fit:cover;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:100%;display:block}.diary-compare__select{width:100%;min-height:var(--touch-min);color:var(--color-fg);background:var(--color-bg);border:1.5px solid var(--color-border);border-radius:var(--radius-sm);padding:8px 10px;font-size:.8125rem}.diary-compare__swap{min-height:var(--touch-min);align-items:center;gap:8px;display:inline-flex}@media (width>=640px){.diary-grid{grid-template-columns:repeat(3,1fr)}}@media (width>=1024px){.diary-grid{grid-template-columns:repeat(4,1fr)}}.pitfalls{margin-bottom:16px}.pitfalls__head{color:var(--color-warning,#e8590c);align-items:center;gap:7px;margin-bottom:8px;display:flex}.pitfalls__title{text-transform:uppercase;letter-spacing:.07em;font-size:11px;font-weight:800}.pitfalls__count{font-variant-numeric:tabular-nums;letter-spacing:.04em;opacity:.75;margin-left:auto;font-size:10.5px;font-weight:700}.pitfall-card{text-align:left;width:100%;font:inherit;color:inherit;background:var(--color-bg,#fff);border:1.5px solid var(--color-border,#e7e1d4);border-radius:var(--radius);box-shadow:var(--shadow-card);border-left-width:5px;align-items:flex-start;gap:10px;padding:11px 10px 11px 12px;display:flex}.pitfall-card--tappable{cursor:pointer}.pitfall-card--tappable:hover,.pitfall-card--tappable:focus-visible{border-color:var(--color-fg,#0b0b0b)}.pitfall-card--high{border-left-color:var(--color-danger,#e11900)}.pitfall-card--high .pitfall-card__icon{color:var(--color-danger,#e11900)}.pitfall-card--medium{border-left-color:var(--color-warning,#e8590c)}.pitfall-card--medium .pitfall-card__icon{color:var(--color-warning,#e8590c)}.pitfall-card--low{border-left-color:var(--color-primary,#6b5ce6)}.pitfall-card--low .pitfall-card__icon{color:var(--color-primary,#6b5ce6)}.pitfall-card__icon{flex:none;margin-top:1px}.pitfall-card__body{flex:auto;min-width:0}.pitfall-card__title{color:var(--color-fg,#0b0b0b);margin:0 0 3px;font-size:13.5px;font-weight:700;line-height:1.25}.pitfall-card__text{color:var(--color-muted,#4a4a4a);margin:0;font-size:12.5px;line-height:1.4}.pitfall-card__hint{text-transform:uppercase;letter-spacing:.05em;color:var(--color-muted,#4a4a4a);opacity:.8;margin:6px 0 0;font-size:11px;font-weight:700}.pitfall-card__next{color:var(--color-muted,#4a4a4a);flex:none;align-self:center}.pitfall-card--tappable:hover .pitfall-card__next,.pitfall-card--tappable:focus-visible .pitfall-card__next{color:var(--color-fg,#0b0b0b)}.tips-toggle{cursor:pointer;align-items:center;gap:12px;min-height:48px;display:flex}.tips-toggle input{width:22px;height:22px;accent-color:var(--color-primary,#6b5ce6);flex:none}.glossary-term{font:inherit;color:inherit;cursor:help;text-underline-offset:3px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;text-decoration-thickness:2px;-webkit-text-decoration-color:var(--color-accent,var(--color-primary));text-decoration-color:var(--color-accent,var(--color-primary));padding:0;background:0 0;border:none;margin:0;padding-inline:1px;display:inline}.glossary-term:after{content:"?";vertical-align:super;color:var(--color-accent,var(--color-primary));margin-inline-start:3px;font-size:.62em;font-weight:700;line-height:1;display:inline-block}.glossary-term:hover,.glossary-term:focus-visible,.glossary-term--open{color:var(--color-primary);outline:none;text-decoration-style:solid}.glossary-term:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:2px}.glossary-popover{z-index:1000;background:var(--color-surface,#fff);max-width:min(320px,100vw - 16px);color:var(--color-fg);border:2px solid var(--color-border-strong,var(--color-fg));border-radius:var(--radius,10px);box-shadow:var(--shadow-lift,0 8px 24px #0000002e);min-height:44px;padding:12px 14px;position:fixed}.glossary-popover__term{color:var(--color-primary);margin:0 0 4px;font-size:.95rem;font-weight:700}.glossary-popover__plain{margin:0;font-size:.9rem;line-height:1.4}.glossary-popover:before{content:"";background:var(--color-surface,#fff);border:2px solid var(--color-border-strong,var(--color-fg));width:12px;height:12px;margin-left:-6px;position:absolute;left:50%;transform:rotate(45deg)}.glossary-popover--below:before{border-bottom:none;border-right:none;top:-7px}.glossary-popover--above:before{border-top:none;border-left:none;bottom:-7px}.task-desc-text{min-width:0;display:inline}.glossary-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.glossary-list__item{border:1px solid var(--color-border,#ddd);border-radius:var(--radius-sm,8px);background:var(--content-bg,transparent);padding:10px 12px}.glossary-list__term{color:var(--color-primary);margin:0 0 3px;font-weight:700}.glossary-list__plain{color:var(--color-fg);margin:0;font-size:.9rem;line-height:1.4}.glossary-page{max-width:780px}.glossary-intro{color:var(--color-muted);margin:0 0 16px;font-size:.95rem;line-height:1.5}.glossary-search{align-items:center;margin-bottom:20px;display:flex;position:relative}.glossary-search__icon{color:var(--color-muted);pointer-events:none;position:absolute;top:50%;left:.85rem;transform:translateY(-50%)}.glossary-search__input{width:100%;min-height:48px;color:var(--color-fg);background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius);padding:0 .85rem 0 2.6rem;font-size:1rem}.glossary-search__input:focus{border-color:var(--color-primary);outline:none}.glossary-page .glossary-list{gap:12px}.glossary-page .glossary-list__item{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:14px 16px}.glossary-page .glossary-list__term{letter-spacing:-.01em;color:var(--color-primary);margin:0 0 4px;font-size:1.0625rem;font-weight:700}.glossary-page .glossary-list__plain{color:var(--color-fg);margin:0;font-size:.9375rem;line-height:1.5}.glossary-empty{text-align:center;color:var(--color-muted);margin:24px 0}.guide-page{max-width:780px}.guide-page .page-title{align-items:center;gap:.5rem;display:flex}.guide-intro{color:var(--color-muted);margin:0 0 1rem;line-height:1.5}.guide-search{margin-bottom:.75rem;position:relative}.guide-search__icon{color:var(--color-muted);pointer-events:none;position:absolute;top:50%;left:.85rem;transform:translateY(-50%)}.guide-search__input{border:2px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);width:100%;min-height:48px;color:var(--color-fg);padding:0 .85rem 0 2.6rem;font-size:1rem}.guide-search__input:focus{border-color:var(--color-primary);outline:none}.guide-cats{flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem;display:flex}.guide-cat{border:2px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);min-height:40px;color:var(--color-fg);cursor:pointer;padding:.4rem .85rem;font-size:.9rem;font-weight:600}.guide-cat--active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.guide-list{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.guide-item{border:2px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);overflow:hidden}.guide-item__head{text-align:left;cursor:pointer;width:100%;min-height:48px;color:var(--color-fg);background:0 0;border:none;align-items:flex-start;gap:.75rem;padding:.85rem 1rem;display:flex}.guide-item__titlewrap{flex-direction:column;flex:1;gap:.2rem;display:flex}.guide-item__cat{text-transform:uppercase;letter-spacing:.03em;color:var(--color-primary);font-size:.72rem;font-weight:700}.guide-item__title{font-size:1rem;font-weight:700;line-height:1.3}.guide-item__summary{color:var(--color-muted);font-size:.88rem;line-height:1.4}.guide-item__chevron{color:var(--color-muted);flex-shrink:0;margin-top:.15rem;transition:transform .18s}.guide-item__chevron--open{transform:rotate(180deg)}.guide-item__body{border-top:1px solid var(--color-border);padding:0 1rem 1rem}.guide-points{flex-direction:column;gap:.5rem;margin:.85rem 0 0;padding-left:1.2rem;line-height:1.5;display:flex}.guide-rule{border-radius:var(--radius-sm);background:var(--color-primary-soft,#0000000d);align-items:flex-start;gap:.5rem;margin:1rem 0 0;padding:.7rem .85rem;line-height:1.45;display:flex}.guide-rule svg{color:var(--color-primary);flex-shrink:0;margin-top:.15rem}.guide-ref{font-family:var(--font-mono,monospace);color:var(--color-muted);margin:.75rem 0 0;font-size:.8rem}.guide-empty{color:var(--color-muted);text-align:center;padding:1.5rem 0}.guide-disclaimer{border:1px dashed var(--color-border);border-radius:var(--radius);color:var(--color-muted);margin:2rem 0 0;padding:.85rem 1rem;font-size:.82rem;line-height:1.5}.contract-check{max-width:680px;margin:0 auto}.cc-intro{color:var(--color-muted);max-width:60ch;margin:4px 0 16px;line-height:1.5}.cc-entry{border:2px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);min-height:56px;color:var(--color-fg);align-items:center;gap:12px;margin:0 0 16px;padding:12px 14px;text-decoration:none;transition:border-color .12s,background .12s;display:flex}.cc-entry:hover,.cc-entry:focus-visible{border-color:var(--color-primary);background:var(--color-primary-soft)}.cc-entry__icon{font-size:1.5rem;line-height:1}.cc-entry__body{flex-direction:column;flex:1;min-width:0;display:flex}.cc-entry__title{font-weight:700}.cc-entry__sub{color:var(--color-muted);font-size:.85rem}.cc-entry__chevron{color:var(--color-muted);font-size:1.5rem}.cc-verdict{border-radius:var(--radius);border:2px solid var(--color-border);background:var(--color-surface);align-items:center;gap:12px;margin:0 0 20px;padding:14px 16px;display:flex}.cc-verdict__icon{display:flex}.cc-verdict__body{flex-direction:column;display:flex}.cc-verdict__label{font-size:1.05rem}.cc-verdict__meta{color:var(--color-muted);margin-top:2px;font-size:.85rem}.cc-verdict--solid{border-color:var(--color-success);background:color-mix(in srgb, var(--color-success) 12%, var(--color-surface))}.cc-verdict--solid .cc-verdict__icon{color:var(--color-success)}.cc-verdict--improve{border-color:var(--color-warning);background:color-mix(in srgb, var(--color-warning) 14%, var(--color-surface))}.cc-verdict--improve .cc-verdict__icon{color:var(--color-warning)}.cc-verdict--caution{border-color:var(--color-danger);background:color-mix(in srgb, var(--color-danger) 12%, var(--color-surface))}.cc-verdict--caution .cc-verdict__icon{color:var(--color-danger)}.cc-verdict--incomplete .cc-verdict__icon{color:var(--color-muted)}.cc-list{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.cc-item{border:2px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);padding:14px}.cc-item--risk{border-color:var(--color-danger)}.cc-item--clarify{border-color:var(--color-warning)}.cc-item--ok{border-color:var(--color-success)}.cc-item__head{align-items:flex-start;gap:10px;display:flex}.cc-item__num{background:var(--color-primary-soft);width:26px;height:26px;color:var(--color-primary);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:.85rem;font-weight:700;display:inline-flex}.cc-item__question{margin:2px 0 0;font-weight:600;line-height:1.4}.cc-answers{gap:8px;margin:12px 0 0;display:flex}.cc-answer{border:2px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);min-height:48px;color:var(--color-fg);cursor:pointer;flex:1;padding:8px 10px;font-weight:600;transition:border-color .12s,background .12s}.cc-answer:hover,.cc-answer:focus-visible{border-color:var(--color-fg)}.cc-answer.is-selected{border-color:var(--color-primary);background:var(--color-primary-soft);color:var(--color-primary)}.cc-flag{border-radius:var(--radius);border-left:4px solid var(--color-danger);background:color-mix(in srgb, var(--color-danger) 8%, var(--color-surface));margin:12px 0 0;padding:12px}.cc-flag--medium{border-left-color:var(--color-orange);background:color-mix(in srgb, var(--color-orange) 8%, var(--color-surface))}.cc-flag--clarify{border-left-color:var(--color-warning);background:color-mix(in srgb, var(--color-warning) 10%, var(--color-surface))}.cc-flag__row{margin-bottom:6px}.cc-flag__tag{text-transform:uppercase;letter-spacing:.04em;background:var(--color-danger);color:#fff;border-radius:999px;padding:2px 8px;font-size:.72rem;font-weight:700;display:inline-block}.cc-flag--medium .cc-flag__tag{background:var(--color-orange)}.cc-flag--clarify .cc-flag__tag{background:var(--color-warning);color:var(--color-fg)}.cc-flag__why,.cc-flag__demand{margin:6px 0 0;font-size:.9rem;line-height:1.5}.cc-flag__why strong,.cc-flag__demand strong{color:var(--color-fg)}.cc-item__ok{color:var(--color-success);align-items:center;gap:6px;margin:10px 0 0;font-size:.85rem;display:flex}.cc-disclaimer{color:var(--color-muted);margin:20px 0 0;font-size:.82rem;line-height:1.5}.cc-actions{justify-content:flex-end;margin:16px 0 0;display:flex}@media (width>=720px){.cc-answers{max-width:360px}}.verzug-intro{color:var(--color-muted);margin:-.25rem 0 .75rem;font-size:.9rem;line-height:1.4}.verzug-summary{flex-wrap:wrap;gap:.75rem;margin-bottom:1rem;display:flex}.verzug-summary__stat{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-direction:column;flex:8rem;gap:.15rem;padding:.75rem 1rem;display:flex}.verzug-summary__num{color:var(--color-fg);font-size:1.5rem;font-weight:800}.verzug-summary__lbl{color:var(--color-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.75rem}.verzug-section{margin-bottom:1.25rem}.verzug-section__head{text-transform:uppercase;letter-spacing:.05em;color:var(--color-muted);margin:0 0 .5rem;font-size:.8rem}.verzug-card{background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--color-border);border-radius:var(--radius);margin-bottom:.6rem;overflow:hidden}.verzug-card--delayed,.verzug-card--delivered_late{border-left-color:var(--color-danger)}.verzug-card--at_risk{border-left-color:var(--color-warning)}.verzug-card--on_track,.verzug-card--delivered_on_time{border-left-color:var(--color-done)}.verzug-card__head{width:100%;min-height:var(--touch-min,48px);cursor:pointer;text-align:left;color:inherit;background:0 0;border:none;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.verzug-card__main{flex:1;min-width:0}.verzug-card__titlerow{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.verzug-card__title{color:var(--color-fg);font-weight:700}.verzug-chip{letter-spacing:.04em;border-radius:var(--radius-sm);background:var(--color-primary-soft);color:var(--color-primary-dark);padding:.1rem .4rem;font-size:.65rem;font-weight:700}.verzug-card__dates{color:var(--color-muted);flex-wrap:wrap;gap:.15rem .75rem;margin-top:.25rem;font-size:.8rem;display:flex}.verzug-card__dates b{color:var(--color-fg);font-weight:600}.verzug-card__contractor{font-style:italic}.verzug-badge{white-space:nowrap;border-radius:999px;flex-shrink:0;padding:.25rem .55rem;font-size:.75rem;font-weight:700}.verzug-badge--late{background:var(--color-danger);color:#fff}.verzug-badge--risk{background:var(--color-warning);color:#1a1a1a}.verzug-badge--ok{background:var(--color-done);color:#fff}.verzug-card__body{border-top:1px solid var(--color-border);padding:.25rem 1rem 1rem}.verzug-penalty{background:var(--color-bg);border:1px dashed var(--color-danger);border-radius:var(--radius-sm);justify-content:space-between;align-items:baseline;margin:.75rem 0;padding:.5rem .75rem;display:flex}.verzug-penalty__label{color:var(--color-muted);font-size:.8rem}.verzug-penalty__amount{color:var(--color-danger);font-weight:800}.verzug-penalty__amount em{font-size:.7rem;font-style:normal;font-weight:600}.verzug-rights__head{color:var(--color-fg);margin:.75rem 0 .4rem;font-size:.85rem}.verzug-rights{counter-reset:right;margin:0;padding:0;list-style:none}.verzug-right{border-radius:var(--radius-sm);background:var(--color-bg);flex-direction:column;gap:.15rem;margin-bottom:.4rem;padding:.5rem .5rem .5rem 2rem;display:flex;position:relative}.verzug-right:before{counter-increment:right;content:counter(right);background:var(--color-primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:1.1rem;height:1.1rem;font-size:.7rem;font-weight:700;display:flex;position:absolute;top:.5rem;left:.5rem}.verzug-right--done{opacity:.6}.verzug-right--done:before{background:var(--color-done)}.verzug-right__title{color:var(--color-fg);font-size:.85rem;font-weight:700}.verzug-right__desc{color:var(--color-muted);font-size:.8rem;line-height:1.4}.verzug-right__law{color:var(--color-muted);font-variant-numeric:tabular-nums;opacity:.8;font-size:.7rem}.verzug-rights__none{color:var(--color-muted);margin:.5rem 0;font-size:.85rem}.verzug-card__actions{flex-wrap:wrap;gap:.4rem;margin-top:.75rem;display:flex}.verzug-disclaimer{color:var(--color-muted);border-top:1px solid var(--color-border);margin-top:1rem;padding-top:.6rem;font-size:.72rem;line-height:1.4}.verzug-dialog .field-row{gap:.6rem;display:flex}.verzug-dialog .field-row .field{flex:1}.verzug-dialog .check-row{min-height:var(--touch-min,48px);cursor:pointer;align-items:center;gap:.5rem;margin:.4rem 0;font-size:.85rem;display:flex}.verzug-dialog .check-row input{flex-shrink:0;width:1.15rem;height:1.15rem}.field-hint{color:var(--color-muted);margin-top:.2rem;font-size:.72rem;display:block}.verzug-letter{white-space:pre-wrap;word-break:break-word;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);max-height:40vh;color:var(--color-fg);margin:.5rem 0 .75rem;padding:.75rem;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.78rem;line-height:1.45;overflow-y:auto}.dialog-actions--wrap{flex-wrap:wrap}@media (width<=400px){.verzug-dialog .field-row{flex-direction:column;gap:0}}.decision-banner{border:2px solid var(--color-warning,#b8860b);border-radius:var(--radius,12px);background:var(--color-surface);align-items:center;gap:.75rem;margin:.75rem 0 1rem;padding:.85rem 1rem;display:flex}.decision-banner--passed{border-color:var(--color-success,#2e7d32)}.decision-banner__icon{flex:none;font-size:1.5rem;line-height:1}.decision-banner__body{flex:auto;min-width:0}.decision-banner__title{color:var(--color-fg);font-weight:700;display:block}.decision-banner__text{color:var(--color-muted);margin:.15rem 0 0;font-size:.9rem}.decision-banner__btn{min-height:var(--touch-min,48px);flex:none}.dialog.decision-gate{width:100%;max-width:34rem}.decision-gate__head{align-items:flex-start;gap:.75rem;margin-bottom:.5rem;display:flex}.decision-gate__badge{flex:none;font-size:1.75rem;line-height:1}.decision-gate__lead{color:var(--color-muted);margin:.25rem 0 0;font-size:.92rem}.decision-gate__progress{color:var(--color-fg);margin:.25rem 0 .75rem;font-size:.88rem;font-weight:600}.decision-gate__list{flex-direction:column;gap:.5rem;margin:0 0 1rem;padding:0;list-style:none;display:flex}.decision-item{border:1px solid var(--color-border);border-radius:var(--radius-sm,8px);background:var(--color-bg);transition:border-color .15s,background .15s}.decision-item--checked{border-color:var(--color-success,#2e7d32);background:var(--color-primary-soft,#2e7d3214)}.decision-item__label{min-height:var(--touch-min,48px);cursor:pointer;align-items:flex-start;gap:.7rem;padding:.7rem .85rem;display:flex}.decision-item__check{width:1.4rem;height:1.4rem;accent-color:var(--color-success,#2e7d32);cursor:pointer;flex:none;margin-top:.1rem}.decision-item__text{flex-direction:column;gap:.15rem;display:flex}.decision-item__title{color:var(--color-fg);font-weight:600;line-height:1.3}.decision-item__detail{color:var(--color-muted);font-size:.84rem;line-height:1.35}.decision-gate__ack{margin-bottom:.5rem}.decision-gate__hint{color:var(--color-warning,#b8860b);margin:0 0 .75rem;font-size:.85rem}.decision-gate__confirm:disabled{opacity:.55;cursor:not-allowed}.questions-intro{color:var(--muted,#555);max-width:60ch;margin:0 0 1rem}.questions-page .page-title{align-items:center;gap:.5rem;display:inline-flex}.questions-cat{margin-bottom:1.75rem}.questions-cat__title{letter-spacing:.08em;text-transform:uppercase;color:var(--muted,#666);margin:0 0 .75rem;font-size:.8rem}.questions-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.75rem;display:grid}.pack-card{border:2px solid var(--border,#111);background:var(--card-bg,#fff);min-height:64px;color:inherit;border-radius:12px;align-items:center;gap:.75rem;padding:.75rem 1rem;text-decoration:none;transition:transform 80ms,box-shadow 80ms;display:flex}.pack-card:hover,.pack-card:focus-visible{box-shadow:4px 4px 0 var(--border,#111);transform:translateY(-2px)}.pack-card__icon{flex:none;font-size:1.6rem;line-height:1}.pack-card__body{flex-direction:column;flex:auto;min-width:0;display:flex}.pack-card__label{font-weight:700}.pack-card__tag{color:var(--muted,#666);font-size:.8rem}.pack-card__count{background:var(--border,#111);min-width:28px;height:28px;color:var(--card-bg,#fff);border-radius:999px;flex:none;justify-content:center;align-items:center;font-size:.8rem;font-weight:700;display:inline-flex}.pack-progress{margin:0 0 1rem;font-weight:600}.pack-questions{flex-direction:column;gap:1rem;margin:0;padding:0;list-style:none;display:flex}.pack-q{border:2px solid var(--border,#111);background:var(--card-bg,#fff);border-radius:12px;padding:1rem}.pack-q--asked{opacity:.6}.pack-q__head{cursor:pointer;align-items:flex-start;gap:.6rem;font-weight:600;display:flex}.pack-q__head input[type=checkbox]{width:22px;min-width:22px;height:22px;accent-color:var(--border,#111);cursor:pointer;margin-top:2px}.pack-q__num{font-variant-numeric:tabular-nums;color:var(--muted,#666);flex:none}.pack-q__text{flex:auto}.pack-q--asked .pack-q__text{text-decoration:line-through}.pack-q__answers{grid-template-columns:1fr;gap:.6rem;margin-top:.85rem;display:grid}@media (width>=640px){.pack-q__answers{grid-template-columns:1fr 1fr}}.pack-answer{border:1px solid;border-radius:10px;padding:.65rem .75rem}.pack-answer p{margin:.35rem 0 0;font-size:.92rem;line-height:1.4}.pack-answer__label{letter-spacing:.03em;text-transform:uppercase;align-items:center;gap:.35rem;font-size:.78rem;font-weight:700;display:inline-flex}.pack-answer--good{color:#14532d;background:#e9f7ec;border-color:#1f8a3b}.pack-answer--worry{color:#7a1c14;background:#fdecec;border-color:#c0392b}[data-theme=aurora] .pack-answer--good,[data-theme=dark] .pack-answer--good{color:#7ee2a0;background:#1f8a3b2e}[data-theme=aurora] .pack-answer--worry,[data-theme=dark] .pack-answer--worry{color:#f4a29a;background:#c0392b33}@media print{.no-print,.bottom-nav,.side-nav,.app-header{display:none!important}.pack-q{break-inside:avoid}.pack-answer--good,.pack-answer--worry{background:#fff}}.phase-select{min-height:var(--touch-min);border:2px solid var(--color-border);border-radius:var(--radius);font-size:1rem;font-family:var(--font);background:var(--color-bg);color:var(--color-fg);width:100%;max-width:360px;padding:8px 12px}.project-row{align-items:stretch;gap:8px;margin-bottom:10px;display:flex}.project-row .project-item{flex:1;margin-bottom:0}.project-delete-btn{width:var(--touch-min);min-height:var(--touch-min);border:2px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);color:var(--color-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;flex-shrink:0;justify-content:center;align-items:center;display:flex}.project-delete-btn:hover,.project-delete-btn:focus-visible{border-color:var(--color-danger);color:var(--color-danger);background:var(--color-surface);outline:none}.delete-project-warn{color:var(--color-fg);margin-bottom:var(--gap);font-size:.9375rem;line-height:1.5}.delete-project-warn strong{color:var(--color-danger)}.delete-project-prompt{margin-bottom:8px;font-size:.875rem;font-weight:600}.delete-project-input{width:100%}.side-nav__group{flex-direction:column;gap:4px;display:flex}.side-nav__group-head{color:inherit;text-overflow:ellipsis;white-space:nowrap;padding:4px 14px 8px;font-size:.8125rem;font-weight:800;line-height:1.2;overflow:hidden}.side-nav .section-head.side-nav__section{margin:16px 14px 8px}.side-nav__link--global{opacity:.62}.side-nav__link--global:hover,.side-nav__link--global.side-nav__link--active{opacity:1}.app-header__project{text-overflow:ellipsis;white-space:nowrap;color:#fff;opacity:.85;flex:0 auto;min-width:0;font-size:.9375rem;font-weight:700;overflow:hidden}.app-header__project:before{content:"· ";opacity:.6}.bottom-nav__more{cursor:pointer;font:inherit;background:0 0;border:none}.nav-more-sheet{z-index:30;flex-direction:column;justify-content:flex-end;display:flex;position:fixed;inset:0}.nav-more-sheet__scrim{cursor:pointer;background:#1c1c1e73;border:none;padding:0;animation:.16s ease-out nav-more-fade;position:absolute;inset:0}.nav-more-sheet__panel{background:var(--color-bg);padding:8px 12px calc(12px + env(safe-area-inset-bottom,0));border-top-left-radius:18px;border-top-right-radius:18px;flex-direction:column;gap:2px;animation:.2s ease-out nav-more-rise;display:flex;position:relative;box-shadow:0 -6px 24px #1c1c1e38}.nav-more-sheet__handle{background:var(--color-border);border-radius:2px;width:40px;height:4px;margin:6px auto 4px}.section-head.nav-more-sheet__head{margin:4px 4px 8px}.nav-more-sheet__link{min-height:48px;color:var(--color-fg);-webkit-tap-highlight-color:transparent;border-radius:10px;align-items:center;gap:12px;padding:8px 12px;font-size:1rem;font-weight:500;text-decoration:none;display:flex}.nav-more-sheet__link:hover{background:var(--color-surface)}.nav-more-sheet__link--active{background:var(--color-primary-soft);color:var(--color-primary-dark);font-weight:700}@keyframes nav-more-fade{0%{opacity:0}to{opacity:1}}@keyframes nav-more-rise{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.nav-more-sheet__scrim,.nav-more-sheet__panel{animation:none}}@media (width>=1024px){.nav-more-sheet,.app-header__project{display:none}}.app-header{min-width:0}.app-header__brand,.app-header .sync-status{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:0;overflow:hidden}.app-header .settings-link{flex:none}.app-header .sync-status--error{white-space:normal;text-overflow:clip}.sync-status__retry{flex-shrink:0}.bottom-nav__link{min-width:0;padding-left:2px;padding-right:2px}.bottom-nav__link span{overflow-wrap:break-word;word-break:break-word;-webkit-hyphens:auto;hyphens:auto;min-width:0;max-width:100%;font-size:.625rem;line-height:1.05}@media (width<=360px){.bottom-nav__link span{font-size:.5625rem}}.side-nav__link--global:is(button){text-align:left;cursor:pointer;background:0 0;border:none;width:100%;font-family:inherit}.debug-log__toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.debug-log__filters{flex-wrap:wrap;gap:.375rem;display:flex}.debug-log__chip{border:1px solid var(--border,#d0d0d0);color:var(--text-muted,#666);cursor:pointer;background:0 0;border-radius:999px;padding:.25rem .75rem;font-size:.8125rem;font-weight:500;transition:background .15s,color .15s,border-color .15s}.debug-log__chip:hover{border-color:var(--text,#222)}.debug-log__chip--active{background:var(--text,#1a1a1a);color:var(--bg,#fff);border-color:var(--text,#1a1a1a)}.debug-log__actions{gap:.5rem;display:flex}.debug-log__btn{align-items:center;gap:.375rem;display:inline-flex}.debug-log__btn--danger:not(:disabled){color:#b42318}.debug-log__empty{color:var(--text-muted,#888);text-align:center;padding:2.5rem 1rem;font-size:.9375rem}.debug-log__list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.debug-log__entry{border:1px solid var(--border,#e4e4e4);background:var(--card-bg,#fafafa);border-left-width:3px;border-radius:6px;padding:.5rem .75rem}.debug-log__entry--warn{border-left-color:#d97706}.debug-log__entry--error{border-left-color:#b42318}.debug-log__entry--info{border-left-color:#2563eb}.debug-log__entry--debug{border-left-color:var(--border,#b0b0b0)}.debug-log__meta{align-items:center;gap:.5rem;margin-bottom:.25rem;font-size:.75rem;display:flex}.debug-log__level{text-transform:uppercase;letter-spacing:.03em;font-weight:700}.debug-log__level--warn{color:#d97706}.debug-log__level--error{color:#b42318}.debug-log__level--info{color:#2563eb}.debug-log__level--debug{color:var(--text-muted,#888)}.debug-log__scope{color:var(--text-muted,#666);background:var(--chip-bg,#0000000d);border-radius:4px;padding:0 .375rem;font-family:ui-monospace,SF Mono,Menlo,monospace}.debug-log__time{color:var(--text-muted,#999);font-variant-numeric:tabular-nums;margin-left:auto}.debug-log__message{color:var(--text,#1a1a1a);word-break:break-word;font-size:.875rem}.debug-log__detail{background:var(--chip-bg,#0000000a);white-space:pre-wrap;word-break:break-word;border-radius:4px;margin:.375rem 0 0;padding:.375rem .5rem;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.75rem;overflow-x:auto}.token-budget-fields{flex-wrap:wrap;gap:.75rem;margin-top:.75rem;display:flex}.token-budget-field{flex-direction:column;flex:10rem;gap:.35rem;min-width:8rem;display:flex}.token-budget-input{box-sizing:border-box;width:100%;font:inherit;color:var(--color-text,inherit);background:var(--color-surface,#fff);border:1px solid var(--color-border,#d0d0d0);border-radius:8px;padding:.5rem .65rem}.token-budget-input:focus{border-color:var(--color-accent,#1f9d55);box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent,#1f9d55) 30%, transparent);outline:none}.token-budget-hint{margin-top:.5rem;font-size:.85em}.side-nav__logo--tile{border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:1rem;font-weight:800;line-height:1;display:inline-flex}.side-nav__wordmark{font-weight:800}.side-nav__badge{background:var(--color-primary-soft);min-width:20px;height:20px;color:var(--color-primary-ink);border-radius:999px;justify-content:center;align-items:center;margin-left:auto;padding:0 6px;font-size:.75rem;font-weight:700;line-height:1;display:inline-flex}.side-nav__badge--alert{background:var(--color-danger);color:#fff}.app-header--ctx{justify-content:space-between}.app-header__ctx{align-items:center;gap:12px;min-width:0;display:flex}.app-header__avatar{border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:1rem;font-weight:800;line-height:1;display:inline-flex}.app-header__ctx-text{flex-direction:column;min-width:0;line-height:1.25;display:flex}.app-header__ctx-name{letter-spacing:-.015em;white-space:nowrap;text-overflow:ellipsis;font-size:1.05rem;font-weight:800;overflow:hidden}.app-header__ctx-sub{opacity:.72;white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;overflow:hidden}.app-header__right{flex-shrink:0;align-items:center;gap:12px;margin-left:auto;display:flex}.app-header--ctx .sync-status{margin-left:0}.app-header__date{opacity:.78;white-space:nowrap;font-size:.8125rem}.app-header__user{background:var(--color-primary-soft);width:32px;height:32px;color:var(--color-primary-ink);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:.8125rem;font-weight:700;line-height:1;display:inline-flex}@media (width<=400px){.app-header__date{display:none}}@media (width>=1024px){.app-header--ctx{display:flex}}.cre19-dash{padding:24px 0}.cre19-grid{grid-template-columns:1fr;gap:20px;display:grid}@media (width>=900px){.cre19-grid{grid-template-columns:1.55fr 1fr;align-items:start;gap:24px}}.cre19-todo{flex-direction:column;gap:12px;min-width:0;display:flex}.cre19-todo>.next-actions,.cre19-todo .dash-task-card,.cre19-done .dash-task-card{margin-bottom:0}.cre19-col-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.cre19-col-title{letter-spacing:-.015em;font-size:1.25rem;font-weight:800}.cre19-counter{color:var(--color-muted);white-space:nowrap;font-size:.8125rem}.cre19-done{border-top:1px solid var(--color-border);flex-direction:column;gap:12px;margin-top:6px;padding-top:14px;display:flex}.cre19-done__head{text-transform:uppercase;letter-spacing:.06em;color:var(--color-muted);font-size:.75rem;font-weight:700}.cre19-side{flex-direction:column;gap:12px;min-width:0;display:flex}.cre19-card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:16px}.cre19-card__title{letter-spacing:-.01em;margin-bottom:10px;font-size:1rem;font-weight:800}.cre19-agenda__row{color:inherit;border-top:1px solid var(--color-border);align-items:center;gap:12px;padding:8px 0;text-decoration:none;display:flex}.cre19-agenda__row:first-of-type{border-top:none;padding-top:0}.cre19-agenda__title{color:var(--color-fg);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.9375rem;font-weight:600;overflow:hidden}.cre19-agenda__empty{color:var(--color-muted);font-size:.875rem}.cre19-datechip{border-radius:var(--radius-sm);background:var(--color-surface);border:1px solid var(--color-border);flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;line-height:1.05;display:inline-flex}.cre19-datechip__dow{letter-spacing:.04em;color:var(--color-muted);font-size:.625rem;font-weight:700}.cre19-datechip__day{color:var(--color-fg);font-size:1.05rem;font-weight:800}.cre19-agenda__row:hover .cre19-datechip{border-color:var(--color-primary)}.cre19-agenda__body{flex-direction:column;gap:2px;min-width:0;display:flex}.cre19-agenda__meta{color:var(--color-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;font-weight:600;overflow:hidden}.cre19-agenda__row--overdue .cre19-agenda__meta{color:var(--color-danger)}.cre19-agenda__row--overdue .cre19-datechip{border-color:color-mix(in srgb, var(--color-danger) 45%, var(--color-border));background:color-mix(in srgb, var(--color-danger) 8%, var(--color-surface))}.cre19-agenda__row--overdue .cre19-datechip__day{color:var(--color-danger)}.cre19-footer{border-top:1px solid var(--color-border);color:var(--color-muted);margin-top:16px;padding-top:14px;font-size:.8125rem}.cre23-phase-group{flex-direction:column;gap:12px;min-width:0;display:flex}.cre23-phase-head{text-align:left;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);width:100%;color:var(--color-fg);cursor:pointer;align-items:center;gap:8px;padding:8px 10px;display:flex}.cre23-phase-head:hover{border-color:var(--color-primary)}.cre23-phase-head:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.cre23-phase-chevron{color:var(--color-muted);flex:none;transition:transform .15s;transform:rotate(-90deg)}.cre23-phase-chevron--open{transform:rotate(0)}.cre23-phase-title{letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-size:.9375rem;font-weight:700;overflow:hidden}.cre23-phase-done{color:var(--color-primary);flex:none}.cre23-phase-count{color:var(--color-muted);white-space:nowrap;flex:none;font-size:.8125rem}.cre23-phase-body{flex-direction:column;gap:12px;padding-left:2px;display:flex}.cre23-phase-body .dash-task-card{margin-bottom:0}.cre23-phase-empty{color:var(--color-muted);margin:0;padding:4px 2px 2px;font-size:.8125rem}@media (prefers-reduced-motion:reduce){.cre23-phase-chevron{transition:none}}.deadline-section{margin-top:22px}.deadline-section:first-of-type{margin-top:12px}.deadline-section__heading{text-transform:uppercase;letter-spacing:.06em;color:var(--color-muted);border-left:3px solid var(--color-border);margin-bottom:10px;padding-left:10px;font-size:.75rem;font-weight:800}.deadline-section__heading--overdue{color:var(--color-danger);border-left-color:var(--color-danger)}.deadline-section__heading--today{color:var(--color-warning);border-left-color:var(--color-warning)}.deadline-section__heading--thisWeek{border-left-color:var(--color-primary)}.deadline-section__heading--nextWeek{border-left-color:var(--color-muted)}.deadline-section__heading--later{border-left-color:var(--color-border)}.deadline-row{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-card);align-items:center;gap:12px;margin-bottom:8px;padding:12px 14px;display:flex}.deadline-kind-icon{border-radius:var(--radius-sm);background:var(--color-surface);border:1px solid var(--color-border);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.1rem;line-height:1;display:inline-flex}.deadline-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.deadline-title{color:var(--color-fg);text-overflow:ellipsis;white-space:nowrap;font-size:.9375rem;font-weight:600;overflow:hidden}.deadline-date{color:var(--color-muted);font-size:.8125rem}.deadline-task,.deadline-contractor{color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.deadline-row .btn-danger{opacity:.55;flex-shrink:0}.deadline-row:hover .btn-danger,.deadline-row .btn-danger:focus-visible{opacity:1}a.deadline-row--task,a.deadline-row--link{cursor:pointer;text-decoration:none;transition:border-color .15s,box-shadow .15s}a.deadline-row--task:hover,a.deadline-row--task:focus-visible,a.deadline-row--link:hover,a.deadline-row--link:focus-visible{border-color:var(--color-primary);box-shadow:var(--shadow-card-hover,var(--shadow-card))}.deadline-chevron{color:var(--color-muted);opacity:.55;flex-shrink:0;font-size:1.25rem;line-height:1}a.deadline-row--link:hover .deadline-chevron{opacity:1;color:var(--color-primary)}.deadline-task--from{text-transform:uppercase;letter-spacing:.04em;color:var(--color-primary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;align-self:flex-start;margin-top:2px;padding:1px 7px;font-size:.6875rem;font-weight:700}a.app-header__user{cursor:pointer;text-decoration:none}.profile-page .settings-card--form{flex-direction:column;gap:14px;padding:16px;display:flex}.profile-page .settings-card--form .field{margin-bottom:0}.profile-page .settings-card--form .theme-picker{margin-top:0}.profile-page .settings-card--form>.settings-desc,.profile-page .settings-card--form .field .settings-desc{padding:0}.profile-page .settings-card--form form{flex-direction:column;gap:14px;display:flex}.profile-page .settings-card--form>.btn,.profile-page .settings-card--form form>.btn{align-self:flex-start}.profile-page .profile-toggle{flex-direction:column;gap:4px;display:flex}.profile-page .profile-toggle .tips-toggle{min-height:36px}.profile-page .profile-toggle .settings-desc{padding:0}.profile-page .profile-radio-group{flex-direction:column;gap:2px;display:flex}.profile-page .profile-radio-group .tips-toggle{min-height:40px}.profile-note{margin:0;font-size:.8125rem;line-height:1.4}.profile-note--warn{color:var(--color-warn-ink,#92400e)}.profile-logout{align-items:center;gap:.4rem;display:inline-flex}.td-page .td-header,.td-page .td-card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:18px}.td-header{margin-bottom:16px}.td-header__row{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.td-header__badges{flex-shrink:0;align-items:center;gap:8px;display:flex}.td-header__row--with-icon{justify-content:flex-start;align-items:center}.td-header__row--with-icon .td-title{flex:1}.td-title{letter-spacing:-.015em;cursor:text;overflow-wrap:anywhere;margin:0;font-size:1.4rem;font-weight:800;line-height:1.2}.td-title:hover{color:var(--color-primary)}.td-title-input{letter-spacing:-.015em;border:2px solid var(--color-primary);border-radius:var(--radius-sm);background:var(--color-bg);width:100%;color:var(--color-fg);font-size:1.4rem;font-weight:800;font-family:var(--font);padding:4px 8px}.td-controls{grid-template-columns:1fr;gap:14px;margin-top:16px;display:grid}@media (width>=620px){.td-controls{grid-template-columns:1.34fr 1fr}}.td-control{min-width:0}.td-field-label{text-transform:uppercase;letter-spacing:.7px;color:var(--color-muted);margin-bottom:7px;font-size:.7rem;font-weight:700;display:block}.td-segment{flex-wrap:nowrap;gap:6px;display:flex}.td-segment .status-btn,.td-segment .priority-btn{text-align:center;white-space:normal;flex:1 1 0;min-width:0;padding:6px;font-size:.8rem;line-height:1.15}.td-grid{grid-template-columns:1fr;align-items:start;gap:16px;display:grid}@media (width>=860px){.td-grid{grid-template-columns:1fr 1fr;gap:20px}}.td-col{flex-direction:column;gap:16px;min-width:0;display:flex}.td-card__head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.td-card__title{letter-spacing:-.01em;margin:0;font-size:1rem;font-weight:800}.td-card__head>.photo-upload-label,.td-card__head>.btn{flex-shrink:0}.td-meta-grid{grid-template-columns:1fr 1fr;gap:14px 16px;display:grid}.td-field{min-width:0}.td-field--full{grid-column:1/-1}.td-field .phase-picker-row{flex-wrap:wrap}.td-field .phase-select{flex:150px}.td-field .estimate-wrap,.td-field .deadline-wrap{flex-wrap:wrap;gap:10px;margin-top:2px}.td-danger{border-top:1px solid var(--color-border);margin-top:18px;padding-top:16px}.td-card .detail-hint{margin-top:0;margin-bottom:10px}.td-card .task-desc-view,.td-card .task-desc-input{margin:0}.td-card .subtask-add-form,.td-card .tag-add-form{margin-top:12px}.role-list{margin:0;padding:0;list-style:none}.role-row{padding:12px var(--gap);border-bottom:1px solid var(--color-surface);min-height:var(--touch-min);justify-content:space-between;align-items:center;gap:12px;display:flex}.role-row:last-child{border-bottom:none}.role-user{color:var(--color-fg);text-overflow:ellipsis;font-size:.9375rem;overflow:hidden}.role-you{color:var(--color-muted);font-weight:400}.role-badge{text-transform:uppercase;letter-spacing:.5px;border:1px solid var(--color-border);border-radius:999px;flex-shrink:0;padding:3px 10px;font-size:.75rem;font-weight:700}.role-badge--owner{background:var(--color-accent,var(--color-fg));color:var(--color-bg);border-color:#0000}.role-badge--user{background:var(--color-surface);color:var(--color-muted)}.role-hierarchy{font-weight:600}.role-note--warn{color:var(--color-warning)}.invite-block,.pending-block{margin-top:var(--gap);padding:var(--gap) var(--gap) 4px;border-top:1px solid var(--color-border)}.settings-page .invite-block .settings-desc,.settings-page .pending-block .settings-desc{padding-left:0;padding-right:0}.invite-heading{color:var(--color-fg);margin:0;font-size:.9375rem;font-weight:700}.invite-form{flex-wrap:wrap;align-items:flex-end;gap:10px;margin-top:12px;display:flex}.invite-form__field{flex:240px;min-width:0}.invite-form__field label{color:var(--color-muted);margin-bottom:6px;font-size:.8125rem;font-weight:600;display:block}.invite-form__field input{width:100%;min-height:var(--touch-min);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-fg);padding:8px 12px;font-size:1rem}.invite-form__field input:focus{outline:2px solid var(--color-primary);outline-offset:1px;border-color:var(--color-primary)}.invite-form__field input[aria-invalid=true]{border-color:var(--color-danger)}.invite-form .btn{flex:none}.invite-error{color:var(--color-danger);margin:8px 0 0;font-size:.8125rem}.invite-card{padding:var(--gap);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);margin-top:14px}.invite-card__title{color:var(--color-fg);margin:0 0 12px;font-size:.875rem;font-weight:700}.invite-card__qr{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;width:max-content;max-width:100%;margin:0 auto 14px;padding:12px;box-shadow:0 1px 4px #0000000f}.invite-card__qr svg{width:180px;height:180px;display:block}.invite-link-row{align-items:stretch;gap:8px;display:flex}.invite-link-input{min-width:0;min-height:var(--touch-min);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-muted);flex:auto;padding:8px 12px;font-size:.8125rem}.invite-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.invite-hint{color:var(--color-muted);margin:12px 0 0;font-size:.8125rem;line-height:1.45}.invite-email-note{color:var(--color-muted);margin:8px 0 0;font-size:.8125rem}.pending-list{margin:12px 0 0;padding:0;list-style:none}.pending-row{border-bottom:1px solid var(--color-border);padding:12px 0}.pending-row:first-child{border-top:1px solid var(--color-border)}.pending-row:last-child{border-bottom:none}.pending-row__head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.pending-email{min-width:0;color:var(--color-fg);text-overflow:ellipsis;white-space:nowrap;flex:160px;font-size:.9375rem;overflow:hidden}.pending-actions{flex-shrink:0;gap:8px;display:flex}.pending-detail{margin-top:14px}.pending-detail .invite-card__qr{margin-bottom:12px}.role-row__end{flex-shrink:0;align-items:center;gap:10px;display:flex}.role-remove-btn{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);min-height:36px;color:var(--color-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;flex-shrink:0;justify-content:center;align-items:center;gap:6px;padding:4px 10px;font-size:.8125rem;font-weight:600;transition:border-color .12s,color .12s;display:inline-flex}.role-remove-btn:hover,.role-remove-btn:focus-visible{border-color:var(--color-danger);color:var(--color-danger);outline:none}.remove-note{color:var(--color-muted);margin:8px 0 var(--gap);font-size:.875rem;line-height:1.5}.remove-error{color:var(--color-danger);margin:0 0 8px;font-size:.8125rem}.app-header__search{border:1px solid var(--color-border);background:var(--color-surface);height:32px;color:var(--color-muted);font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:999px;flex-shrink:0;align-items:center;gap:8px;padding:0 10px;font-size:.8125rem;display:inline-flex}.app-header__search:hover{border-color:var(--color-primary);color:var(--color-fg)}.app-header__search-label{white-space:nowrap}.app-header__search-kbd{background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-muted);border-radius:6px;padding:1px 6px;font-size:.6875rem;line-height:1.4}@media (width<=560px){.app-header__search-label,.app-header__search-kbd{display:none}.app-header__search{justify-content:center;width:32px;padding:0}}.search-overlay{z-index:40;flex-direction:column;align-items:center;display:flex;position:fixed;inset:0}.search-overlay__scrim{cursor:pointer;background:#1c1c1e73;border:none;padding:0;animation:.14s ease-out search-fade;position:absolute;inset:0}.search-overlay__panel{background:var(--color-bg);border:1px solid var(--color-border);border-radius:16px;flex-direction:column;width:min(640px,100vw - 24px);max-height:70vh;margin-top:10vh;animation:.18s ease-out search-rise;display:flex;position:relative;overflow:hidden;box-shadow:0 12px 40px #1c1c1e47}.search-overlay__inputrow{border-bottom:1px solid var(--color-border);align-items:center;gap:10px;padding:12px 14px;display:flex}.search-overlay__inputicon{color:var(--color-muted);flex-shrink:0}.search-overlay__input{font:inherit;color:var(--color-fg);background:0 0;border:none;outline:none;flex:1;font-size:1rem}.search-overlay__close{width:30px;height:30px;color:var(--color-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.search-overlay__close:hover{background:var(--color-surface);color:var(--color-fg)}.search-overlay__results{padding:6px;overflow-y:auto}.search-overlay__hint{text-align:center;color:var(--color-muted);padding:24px 16px;font-size:.9375rem}.search-overlay__group{padding:4px 0}.search-overlay__grouphead{text-transform:uppercase;letter-spacing:.04em;color:var(--color-muted);padding:8px 10px 4px;font-size:.75rem;font-weight:700}.search-overlay__option{cursor:pointer;border-radius:10px;align-items:center;gap:12px;padding:8px 10px;display:flex}.search-overlay__option--active{background:var(--color-primary-soft)}.search-overlay__icon{flex-shrink:0;justify-content:center;align-items:center;width:24px;font-size:1.05rem;display:inline-flex}.search-overlay__text{flex-direction:column;min-width:0;display:flex}.search-overlay__title{color:var(--color-fg);white-space:nowrap;text-overflow:ellipsis;font-size:.9375rem;overflow:hidden}.search-overlay__mark{background:var(--color-accent-yellow,var(--color-primary-soft));color:inherit;border-radius:3px;padding:0 1px}.search-overlay__sub{color:var(--color-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;overflow:hidden}.search-overlay__footer{border-top:1px solid var(--color-border);color:var(--color-muted);padding:8px 14px;font-size:.75rem}@keyframes search-fade{0%{opacity:0}to{opacity:1}}@keyframes search-rise{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.search-overlay__scrim,.search-overlay__panel{animation:none}}.settings-page .settings-desc{padding:12px var(--gap)}.settings-page .settings-item-title{padding:12px var(--gap) 0;color:var(--color-fg);margin:0;font-size:.9375rem;font-weight:600}.settings-page .token-budget-fields{padding:0 var(--gap)}.settings-page .token-budget-hint{margin-top:0}.auth-screen{background:var(--color-surface,#f2f2f7);justify-content:center;align-items:center;min-height:100dvh;padding:24px 16px;display:flex}.auth-card{background:var(--color-bg,#fff);border:1px solid var(--color-border,#e2ddd0);border-radius:16px;flex-direction:column;gap:14px;width:100%;max-width:380px;padding:28px 22px 24px;display:flex;box-shadow:0 8px 30px #00000014}.auth-brand{color:var(--color-fg,#1c1c1e);align-items:center;gap:8px;font-size:1.15rem;font-weight:700;display:flex}.auth-logo{color:var(--color-primary,#3d7a4f);font-size:1.3rem;line-height:1}.auth-title{color:var(--color-fg,#1c1c1e);margin:4px 0 0;font-size:1.5rem}.auth-subtitle{color:var(--color-muted,#6b7280);margin:0 0 4px;font-size:.9rem}.auth-field{color:var(--color-fg,#1c1c1e);flex-direction:column;gap:6px;font-size:.85rem;font-weight:600;display:flex}.auth-field input{border:1px solid var(--color-border,#d5d0c4);background:var(--color-bg,#fff);min-height:48px;color:var(--color-fg,#1c1c1e);border-radius:10px;padding:0 14px;font-size:1rem}.auth-field input:focus{outline:2px solid var(--color-primary,#3d7a4f);outline-offset:1px;border-color:var(--color-primary,#3d7a4f)}.auth-hint{color:var(--color-muted,#6b7280);font-size:.78rem;font-weight:400}.auth-error{background:var(--color-primary-soft,#fdece0);color:var(--color-danger,#b3261e);border-radius:8px;margin:0;padding:10px 12px;font-size:.85rem}.auth-submit{background:var(--color-primary,#3d7a4f);color:#fff;cursor:pointer;border:none;border-radius:10px;min-height:48px;margin-top:4px;font-size:1rem;font-weight:700}.auth-submit:disabled{opacity:.6;cursor:default}.auth-switch{text-align:center;color:var(--color-muted,#6b7280);margin:2px 0 0;font-size:.88rem}.auth-link{font:inherit;color:var(--color-primary,#3d7a4f);cursor:pointer;background:0 0;border:none;padding:0;font-weight:700;text-decoration:underline}.auth-invite-note{color:var(--color-muted,#6b7280);text-align:center;margin:4px 0 0;font-size:.82rem}.auth-offline-note{border-top:1px solid var(--color-border,#eee);color:var(--color-muted,#6b7280);text-align:center;margin:8px 0 0;padding-top:12px;font-size:.78rem}.phase-list{flex-direction:column;gap:8px;margin:12px 0 24px;padding:0;list-style:none;display:flex}.phase-row{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-card);z-index:1;align-items:center;gap:12px;padding:10px 14px 10px 6px;transition:border-color .15s,box-shadow .15s;display:flex;position:relative}.phase-row:hover{border-color:var(--color-primary);box-shadow:var(--shadow-card-hover,var(--shadow-card))}.phase-row__grip{min-width:32px;color:var(--color-muted);cursor:grab;touch-action:none;border-radius:var(--radius-sm);-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex:none;justify-content:center;align-self:stretch;align-items:center;padding:0 4px;display:inline-flex}.phase-row__grip:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px;color:var(--color-fg)}.phase-row--dragging .phase-row__grip{cursor:grabbing}.phase-row__link{min-width:0;color:inherit;flex:auto;align-items:center;gap:12px;text-decoration:none;display:flex}.phase-row__icon{border-radius:var(--radius-sm);background:var(--color-surface);border:1px solid var(--color-border);width:36px;height:36px;color:var(--color-muted);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.phase-row:hover .phase-row__icon{color:var(--color-primary)}.phase-row__icon--done{color:var(--color-success,var(--color-primary));border-color:currentColor}.phase-row__info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.phase-row__name{color:var(--color-fg);text-overflow:ellipsis;white-space:nowrap;font-size:.9375rem;font-weight:600;overflow:hidden}.phase-row__meta{color:var(--color-muted);font-size:.8125rem}.phase-row__chevron{color:var(--color-muted);opacity:.55;flex-shrink:0;font-size:1.25rem;line-height:1}.phase-row:hover .phase-row__chevron{opacity:1;color:var(--color-primary)}.phase-row--dragging{box-shadow:var(--shadow-lift,var(--shadow-card));z-index:5;opacity:.96;cursor:grabbing;border-color:var(--color-primary)}.phase-list--dragging .phase-row:not(.phase-row--dragging){transition:transform .16s}@media (prefers-reduced-motion:reduce){.phase-list--dragging .phase-row:not(.phase-row--dragging){transition:none}}.pd-empty{color:var(--color-muted);margin:0;font-size:.875rem}.pd-task-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.pd-task-row{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:inherit;align-items:center;gap:10px;padding:10px 12px;text-decoration:none;transition:border-color .15s;display:flex}.pd-task-row:hover,.pd-task-row:focus-visible{border-color:var(--color-primary);outline:none}.pd-task-dot{border:2px solid var(--color-border);box-sizing:border-box;border-radius:50%;flex:none;width:12px;height:12px}.pd-task-dot--in_progress{background:var(--color-primary);border-color:var(--color-primary)}.pd-task-dot--done{background:var(--color-success,var(--color-primary));border-color:var(--color-success,var(--color-primary))}.pd-task-dot--blocked{background:var(--color-danger);border-color:var(--color-danger)}.pd-task-name{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-size:.9rem;font-weight:500;overflow:hidden}.pd-task-row--done .pd-task-name{color:var(--color-muted);text-decoration:line-through}.pd-task-status{text-transform:uppercase;letter-spacing:.04em;color:var(--color-muted);flex:none;font-size:.72rem;font-weight:700}.pd-add-task{align-self:flex-start;align-items:center;gap:6px;margin-top:12px;display:inline-flex}.invite-authcard{gap:12px}.invite-loading{text-align:center;margin:12px 0}.invite-intro{border-radius:var(--radius-sm,10px);background:var(--color-primary-soft,#eef5ef);color:var(--color-primary-ink,var(--color-fg,#1c1c1e));margin:4px 0 0;padding:12px 14px;font-size:.95rem;font-weight:600;line-height:1.4}.invite-cta{margin:6px 0 0}.invite-authform{flex-direction:column;gap:14px;margin-top:4px;display:flex}
