:root{--accent: #1f2937;--bg: #f4f5f7;--card: #ffffff;--text: #171a20;--muted: #667085;--line: #e4e7ec;--line-soft: #f0f2f5;--danger: #b42318;--ok: #0f7a3a;--warn: #b15c08;--bad: #b42318;--neutral: #98a2b3;--ok-soft: #e6f6ec;--warn-soft: #fef1e0;--bad-soft: #fdeaea;--accent-soft: color-mix(in srgb, var(--accent) 10%, white);--accent-ink: color-mix(in srgb, var(--accent) 80%, black);--radius: 10px;--radius-sm: 7px;--shadow: 0 1px 2px rgba(16, 24, 40, .05), 0 1px 3px rgba(16, 24, 40, .04);--shadow-pop: 0 12px 32px rgba(16, 24, 40, .12), 0 2px 6px rgba(16, 24, 40, .06);--fs-xs: 12px;--fs-sm: 13px;--fs: 14.5px;--fs-md: 16px;--fs-lg: 18px;--fs-xl: 22px;--fs-2xl: 28px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font:var(--fs)/1.5 Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased}a{color:var(--accent-ink)}h1,h2,h3{margin:0;letter-spacing:-.01em;line-height:1.25}h1{font-size:var(--fs-2xl);font-weight:600}h2{font-size:var(--fs-xl);font-weight:600}h3{font-size:var(--fs-md);font-weight:600}p{margin:0 0 10px}strong{font-weight:600}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.shell{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:12px;padding:10px 20px;background:var(--card);border-bottom:1px solid var(--line);box-shadow:inset 0 -3px 0 var(--accent);position:sticky;top:0;z-index:20}.topbar img{height:30px}.topbar .name{font-weight:600;font-size:var(--fs-md)}.topbar .spacer{flex:1}.page{flex:1;width:100%;max-width:1040px;margin:0 auto;padding:20px 20px 48px}.footer{padding:16px;color:var(--muted);font-size:var(--fs-xs);text-align:center}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;margin-bottom:14px;box-shadow:var(--shadow)}.card>h3:first-child,.card .card-h{margin-bottom:12px}.card-h{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.card-h .hint,.hint{color:var(--muted);font-size:var(--fs-sm)}.card.pad0{padding:0}.card.pad0 .body{padding:14px 16px 16px}.grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.row{display:flex;gap:12px;flex-wrap:wrap}.row>*{flex:1 1 160px}.stack{display:grid;gap:14px}.cols-2{display:grid;gap:14px;grid-template-columns:1fr 1fr;align-items:start}@media(max-width:760px){.cols-2{grid-template-columns:1fr}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--accent);color:#fff;border:1px solid transparent;border-radius:var(--radius-sm);padding:9px 14px;font:inherit;font-weight:500;line-height:1.2;cursor:pointer;text-decoration:none;transition:filter .15s ease,background .15s ease,box-shadow .15s ease;white-space:nowrap}.btn:hover{filter:brightness(.94)}.btn:active{filter:brightness(.88)}.btn.secondary{background:var(--card);color:var(--text);border-color:var(--line);box-shadow:var(--shadow)}.btn.secondary:hover{background:var(--line-soft);filter:none}.btn.danger{background:var(--bad)}.btn.sm{padding:6px 10px;font-size:var(--fs-sm)}.btn.ghost{background:transparent;color:var(--accent-ink);border-color:transparent;box-shadow:none;padding:6px 8px}.btn.ghost:hover{background:var(--accent-soft)}.btn:disabled{opacity:.5;cursor:default;filter:none}label{display:block;font-size:var(--fs-sm);color:var(--muted);margin:8px 0 4px}input,select,textarea{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);font:inherit;background:#fff;color:var(--text);transition:border-color .15s ease,box-shadow .15s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}input:disabled,input[readonly]{background:var(--line-soft);color:var(--muted)}input[type=color]{height:40px;padding:2px 4px;cursor:pointer}input[type=file]{padding:7px 10px}input[type=checkbox],input[type=radio]{width:16px;height:16px;accent-color:var(--accent)}.error{color:var(--danger);margin:8px 0;font-size:var(--fs-sm)}.muted{color:var(--muted)}.small{font-size:var(--fs-sm)}.num,td.num,th.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.switch{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-size:var(--fs-sm);color:var(--text);margin:0;-webkit-user-select:none;user-select:none}.switch{position:relative}.switch input{position:absolute;opacity:0;width:36px;height:20px;margin:0;left:0;top:0;cursor:pointer;z-index:1}.switch .knob{width:36px;height:20px;border-radius:999px;background:var(--neutral);position:relative;transition:background .15s ease;flex:0 0 auto}.switch .knob:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .15s ease;box-shadow:0 1px 2px #0003}.switch input:checked+.knob{background:var(--accent)}.switch input:checked+.knob:after{transform:translate(16px)}.switch input:focus-visible+.knob{outline:2px solid var(--accent);outline-offset:2px}.bar{height:8px;background:var(--line);border-radius:4px;overflow:hidden;display:flex}.bar>span{display:block;height:100%;background:var(--accent);border-radius:4px;transition:width .25s ease}.bar.lg{height:12px;border-radius:6px}.pill{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-xs);font-weight:500;padding:2px 9px;border-radius:999px;background:var(--line-soft);color:#475467;text-transform:capitalize;white-space:nowrap;line-height:1.5}.pill.ok{background:var(--ok-soft);color:var(--ok)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.bad{background:var(--bad-soft);color:var(--bad)}.pill.accent{background:var(--accent-soft);color:var(--accent-ink)}.pill.outline{background:transparent;border:1px solid var(--line);color:var(--muted)}.pill .dot{width:6px;height:6px;border-radius:50%;background:currentColor}.c-ok{color:var(--ok)}.c-warn{color:var(--warn)}.c-bad{color:var(--bad)}.c-accent{color:var(--accent-ink)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:var(--fs-xs);font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;border-bottom-color:var(--line)}tbody tr:last-child td{border-bottom:0}tfoot th{text-transform:none;font-size:var(--fs);color:var(--text);border-top:2px solid var(--line);border-bottom:0}.tablewrap{overflow-x:auto}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:18px;overflow-x:auto;white-space:nowrap;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs a{padding:10px 12px;text-decoration:none;color:var(--muted);border-bottom:2px solid transparent;font-weight:500;margin-bottom:-1px;transition:color .15s ease}.tabs a:hover{color:var(--text)}.tabs a.active{color:var(--accent-ink);border-color:var(--accent)}.menu{position:relative}.menu>button{background:var(--card);border:1px solid var(--line);border-radius:999px;padding:6px 12px;font:inherit;font-size:var(--fs-sm);cursor:pointer;color:var(--text)}.menu .pop{position:absolute;right:0;top:40px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);min-width:230px;box-shadow:var(--shadow-pop);padding:6px;z-index:30}.menu .pop a,.menu .pop button{display:block;width:100%;text-align:left;padding:8px 10px;border:0;background:transparent;font:inherit;color:var(--text);text-decoration:none;border-radius:6px;cursor:pointer}.menu .pop a:hover,.menu .pop button:hover{background:var(--bg)}.menu .pop .who{padding:8px 10px;color:var(--muted);font-size:var(--fs-xs);border-bottom:1px solid var(--line);margin-bottom:4px;word-break:break-all}.skel{background:linear-gradient(90deg,var(--line) 25%,#f3f4f6 50%,var(--line) 75%);background-size:200% 100%;animation:skel 1.2s infinite;border-radius:6px}@keyframes skel{0%{background-position:200% 0}to{background-position:-200% 0}}.empty{text-align:center;color:var(--muted);padding:28px 16px;font-size:var(--fs-sm)}.banner{background:var(--warn-soft);color:var(--warn);border:1px solid #f3cf9a;border-radius:var(--radius-sm);padding:9px 12px;margin-bottom:14px;font-size:var(--fs-sm);display:flex;align-items:center;gap:8px}.tiles{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:14px}.tile{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;box-shadow:var(--shadow);min-width:0}.tile .k{font-size:var(--fs-xs);color:var(--muted);font-weight:500;letter-spacing:.02em}.tile .v{font-size:20px;font-weight:600;font-variant-numeric:tabular-nums;margin-top:3px;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tile .v.wrap{white-space:normal;font-size:17px;line-height:1.25}.tile .s{font-size:var(--fs-xs);color:var(--muted);margin-top:3px}.tile.ok{border-color:color-mix(in srgb,var(--ok) 45%,var(--line));background:linear-gradient(180deg,var(--ok-soft),var(--card) 70%)}.tile.warn{border-color:color-mix(in srgb,var(--warn) 45%,var(--line));background:linear-gradient(180deg,var(--warn-soft),var(--card) 70%)}.tile.bad{border-color:color-mix(in srgb,var(--bad) 45%,var(--line));background:linear-gradient(180deg,var(--bad-soft),var(--card) 70%)}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:14px}.kpis .tile .k{text-transform:none}@media(max-width:600px){.tiles,.kpis{grid-template-columns:repeat(2,1fr)}}.status{padding:0;overflow:hidden}.status .top{padding:18px 20px 16px;display:grid;grid-template-columns:1fr auto;gap:16px;align-items:start}.status .lead{font-size:var(--fs-lg);font-weight:600;letter-spacing:-.01em;line-height:1.3}.status .sub{color:var(--muted);margin-top:4px}.status .facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));border-top:1px solid var(--line);background:var(--line-soft)}.status .fact{padding:12px 20px;border-right:1px solid var(--line)}.status .fact:last-child{border-right:0}.status .fact .k{font-size:var(--fs-xs);color:var(--muted)}.status .fact .v{font-weight:600;margin-top:2px;font-variant-numeric:tabular-nums}.status .fact .v.sm{font-size:var(--fs-sm);font-weight:500}.status .ring-wrap{text-align:center;font-size:var(--fs-xs);color:var(--muted)}@media(max-width:600px){.status .facts{grid-template-columns:1fr 1fr}.status .fact{border-right:0;border-bottom:1px solid var(--line)}}.catlist{display:grid;gap:2px}.catlist .r{display:grid;grid-template-columns:minmax(130px,1fr) minmax(0,2fr) auto;gap:14px;align-items:center;padding:7px 0;border-bottom:1px solid var(--line-soft)}.catlist .r:last-child{border-bottom:0}.catlist .n{font-size:var(--fs-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.catlist .amt{font-size:var(--fs-sm);font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right}.catlist .amt .of{color:var(--muted)}.catlist .bar>span.paid{background:var(--accent)}.catlist .bar>span.committed{background:color-mix(in srgb,var(--accent) 35%,white)}.catlist .bar>span.over{background:var(--bad)}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:var(--fs-xs);color:var(--muted);margin-top:10px}.legend span{display:inline-flex;align-items:center;gap:6px}.legend i{width:10px;height:10px;border-radius:3px;display:inline-block}@media(max-width:600px){.catlist .r{grid-template-columns:1fr auto}.catlist .r .bar{grid-column:1 / -1}}.gantt{display:grid;gap:0}.gantt .gr{display:grid;grid-template-columns:150px 1fr;gap:12px;align-items:center;padding:5px 0;border-bottom:1px solid var(--line-soft)}.gantt .gr:last-of-type{border-bottom:0}.gantt .gn{font-size:var(--fs-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;gap:8px;align-items:baseline}.gantt .gn .code{color:var(--muted);font-size:var(--fs-xs);font-variant-numeric:tabular-nums}.gantt .track{position:relative;height:22px;background:var(--line-soft);border-radius:4px}.gantt .seg{position:absolute;height:6px;border-radius:3px}.gantt .seg.planned{top:4px;background:var(--neutral);opacity:.55}.gantt .seg.forecast{top:12px}.gantt .today{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--bad);opacity:.8}.gantt .axis{display:grid;grid-template-columns:150px 1fr;gap:12px}.gantt .axis .ticks{position:relative;height:18px;font-size:var(--fs-xs);color:var(--muted)}.gantt .axis .ticks span{position:absolute;top:2px;transform:translate(-50%);white-space:nowrap}.gantt .axis .ticks span:first-child{transform:none}.gantt .axis .ticks span:last-child{transform:translate(-100%)}.gantt .vd{font-size:var(--fs-xs);white-space:nowrap}@media(max-width:600px){.gantt .gr,.gantt .axis{grid-template-columns:96px 1fr}.gantt .axis .ticks span.mid{display:none}.gantt .gr>div{grid-template-columns:1fr 56px!important}}.card-h{flex-wrap:wrap}.phases{display:grid;gap:0}.phases .pr{display:grid;grid-template-columns:36px 1fr 120px 64px;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line-soft);font-size:var(--fs-sm)}.phases .pr:last-child{border-bottom:0}.phases .pr .code{color:var(--muted);font-size:var(--fs-xs)}.phases .pr .cnt{color:var(--muted);font-variant-numeric:tabular-nums;text-align:right}.phases .pr.cur .nm{font-weight:600}.segs{display:grid;gap:4px;margin-bottom:12px}.segs .seg{height:10px;border-radius:3px;background:var(--line);overflow:hidden}.segs .seg>i{display:block;height:100%;background:var(--accent)}.segs .seg.done>i{background:var(--ok)}@media(max-width:600px){.phases .pr{grid-template-columns:36px 1fr 56px}.phases .pr .bar{grid-column:2 / -1}}.pbd{display:grid}.pbr{border-bottom:1px solid var(--line-soft)}.pbr:last-child{border-bottom:0}.pbr>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:16px 36px 1fr auto 110px 50px;gap:12px;align-items:center;padding:9px 0;font-size:var(--fs-sm)}.pbr .money{font-size:var(--fs-xs);font-variant-numeric:tabular-nums;white-space:nowrap}.pbr>summary::-webkit-details-marker{display:none}.pbr>summary:hover{background:var(--line-soft);margin:0 -8px;padding-left:8px;padding-right:8px;border-radius:6px}.pbr .chev{width:14px;height:14px;color:var(--muted);transition:transform .15s ease}.pbr[open]>summary .chev{transform:rotate(90deg)}.pbr .code{color:var(--muted);font-size:var(--fs-xs);font-variant-numeric:tabular-nums}.pbr .nm.cur{font-weight:600}.pbr .nm small{display:block;font-weight:400;color:var(--muted);font-size:var(--fs-xs);margin-top:1px}.pbr .cnt{color:var(--muted);font-variant-numeric:tabular-nums;text-align:right}.pbr .inner{padding:2px 0 12px 64px}.ms{list-style:none;margin:0;padding:0;display:grid;gap:4px}.ms li{display:flex;gap:8px;align-items:baseline;font-size:var(--fs-sm)}.ms li.done span{color:var(--muted)}.ms li small{color:var(--muted);font-size:var(--fs-xs);margin-left:auto;white-space:nowrap}.tick{width:15px;height:15px;flex:0 0 auto;align-self:center;color:#fff}.tick circle{fill:#fff;stroke:var(--line);stroke-width:1.5}.tick path{display:none}.tick.on circle{fill:var(--ok);stroke:var(--ok)}.tick.on path{display:block}.pups{margin-top:10px;padding-top:8px;border-top:1px dashed var(--line);display:grid;gap:8px}.pup{display:flex;gap:10px;align-items:flex-start}.pup img{width:48px;height:48px;object-fit:cover;border-radius:6px;flex:0 0 auto}@media(max-width:600px){.pbr>summary{grid-template-columns:16px 1fr 50px}.pbr .code,.pbr>summary .bar,.pbr .money{display:none}.pbr .inner{padding-left:28px}}.ph{padding:0}.ph>summary{cursor:pointer;list-style:none;display:grid;grid-template-columns:20px 40px 1fr auto auto auto;gap:12px;align-items:center;padding:14px 18px}.ph .grip{width:16px;height:16px;color:var(--neutral);cursor:grab}.ico{width:14px;height:14px;display:block}.ph.dragging{opacity:.45}.ph.over{box-shadow:0 -3px 0 var(--accent),var(--shadow)}.ph .arrows{display:inline-flex;gap:2px}.ph .x,.check .x{background:transparent;border:0;color:var(--muted);cursor:pointer;padding:4px 6px;border-radius:6px;font:inherit;line-height:1}.ph .x:hover,.check .x:hover{background:var(--line-soft);color:var(--text)}.ph .x:disabled{opacity:.3;cursor:default;background:transparent}.check .actions{opacity:0;transition:opacity .15s ease}.check:hover .actions,.check:focus-within .actions{opacity:1}.check form,form.check{align-items:center}.check input[type=text],form.check input:not([type=checkbox]){width:auto;flex:1;padding:5px 8px}.ph>summary::-webkit-details-marker{display:none}.ph>summary .chev{width:16px;height:16px;color:var(--muted);transition:transform .15s ease}.ph[open]>summary .chev{transform:rotate(90deg)}.ph>summary .code{color:var(--muted);font-size:var(--fs-xs);font-variant-numeric:tabular-nums}.ph>summary .nm{font-weight:600}.ph>summary .nm small{display:block;font-weight:400;color:var(--muted);font-size:var(--fs-xs);margin-top:1px}.ph>summary:hover{background:var(--line-soft)}.ph .inner{border-top:1px solid var(--line);padding:14px 18px 16px}.ph .pbar{width:90px}.sched-edit{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;align-items:end;padding:0 0 14px;border-bottom:1px solid var(--line);margin-bottom:8px}.sched-edit label{margin:0 0 3px}.sched-dates{font-size:var(--fs-sm);color:var(--muted);white-space:nowrap}.check{display:flex;gap:10px;align-items:flex-start;padding:7px 0;border-top:1px solid var(--line-soft);font-size:var(--fs);cursor:pointer}.check:first-of-type{border-top:0}.check input{width:18px;height:18px;margin-top:2px;flex:0 0 auto}.check .done{color:var(--muted);text-decoration:line-through}.check small{color:var(--muted);display:block;font-size:var(--fs-xs)}@media(max-width:600px){.ph>summary{grid-template-columns:20px 1fr auto auto}.ph>summary .code,.ph>summary .pbar{display:none}.check .actions{opacity:1}}.budget-grid{table-layout:fixed}.budget-grid td,.budget-grid th{overflow-wrap:anywhere}.budget-grid input,.budget-grid select{width:100%;min-width:0}.budget-grid .pill{display:inline-flex}.budget-grid.one thead th{background:var(--card)}.budget-grid.one,.budget-grid.editor{min-width:720px}.budget-grid.editor{min-width:880px}.budget-grid.one .cat-row td{background:var(--line-soft);font-weight:600;border-top:1px solid var(--line);padding:9px 10px}.budget-grid.one .cat-row .bar{width:80px;display:inline-flex;vertical-align:middle;margin-left:10px}.budget-grid.one .line-row{cursor:pointer}.budget-grid.one .line-row:hover td{background:#fbfbfc}.budget-grid.one .line-row td{padding:8px 10px}.budget-grid.one .line-name{padding-left:26px;position:relative}.budget-grid.one .line-name:before{content:"";position:absolute;left:12px;top:16px;width:5px;height:5px;border-radius:50%;background:var(--line)}.budget-grid.one .line-row.open .line-name:before{background:var(--accent)}.budget-grid.one .pay-wrap{background:#fbfbfc;padding:10px 10px 10px 26px}.budget-grid.one .pay-wrap table th{font-size:11px}.budget-grid.one .dash{color:var(--neutral)}.budget-grid .amt-sub{display:block;font-size:11px;color:var(--muted);font-weight:400}.editor-bar{position:sticky;top:52px;z-index:6;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:12px 16px;margin-bottom:14px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.editor-bar .tot{display:flex;gap:18px;flex-wrap:wrap;margin-right:auto}.editor-bar .tot div{font-size:var(--fs-sm);color:var(--muted)}.editor-bar .tot strong{display:block;color:var(--text);font-variant-numeric:tabular-nums}.budget-grid.editor td,.budget-grid.editor th{padding:5px}.budget-grid.editor input,.budget-grid.editor select{padding:6px 8px;font-size:var(--fs-sm);background:transparent;border-color:transparent}.budget-grid.editor input:hover,.budget-grid.editor select:hover{border-color:var(--line);background:#fff}.budget-grid.editor input:focus,.budget-grid.editor select:focus{background:#fff}.budget-grid.editor input.changed{background:var(--warn-soft);border-color:#f3cf9a}.budget-grid.editor .cat-head td{background:var(--line-soft);font-weight:600;padding:8px 10px;border-top:1px solid var(--line)}.budget-grid.editor .cat-head .btn{float:right}.budget-grid.editor tr.new td{background:#fffdf5}.budget-grid.editor .x{background:transparent;border:0;color:var(--muted);cursor:pointer;padding:6px;border-radius:6px;font:inherit;line-height:1}.budget-grid.editor .x:hover{background:var(--bad-soft);color:var(--bad)}.tpl td{vertical-align:top}.tpl textarea{font-size:var(--fs-sm);line-height:1.4;resize:vertical}.tpl .actions{white-space:nowrap}.cover{height:128px;background:linear-gradient(135deg,var(--accent-soft),color-mix(in srgb,var(--accent) 24%,white));border-radius:var(--radius) var(--radius) 0 0;display:flex;align-items:center;justify-content:center;color:var(--accent-ink);font-size:26px;font-weight:600;overflow:hidden;letter-spacing:.02em}.cover img{width:100%;height:100%;object-fit:cover}.ring{width:44px;height:44px}.ring text{font-size:11px;fill:var(--text);font-weight:600}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:50;flex-direction:column;gap:12px;padding:16px}.lightbox img{max-width:100%;max-height:80vh;border-radius:6px}.lightbox .lb-nav{display:flex;gap:12px;align-items:center;color:#fff}.lightbox .lb-close{position:absolute;top:12px;right:12px;background:#fff;color:var(--text)}.thumbs{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.thumbs img,.thumbs .ph{width:96px;height:96px;object-fit:cover;border-radius:6px;cursor:pointer;background:var(--line)}.post{white-space:pre-wrap;line-height:1.55}.confirm{display:inline-flex;gap:6px;align-items:center}.actions{white-space:nowrap}.actions>*+*{margin-left:6px}details>summary{cursor:pointer}.proj-head{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;margin:6px 0 14px}.proj-head .meta{color:var(--muted);font-size:var(--fs-sm);margin-top:4px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.crumb{font-size:var(--fs-sm);margin-bottom:4px}.crumb a{text-decoration:none;color:var(--muted)}.crumb a:hover{color:var(--accent-ink)}.pcard .body{display:grid;gap:8px}.pcard .title{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.pcard .title strong{font-size:var(--fs-md);line-height:1.3}.pcard .addr{color:var(--muted);font-size:var(--fs-xs);margin-top:2px}.pcard .line{font-size:var(--fs-sm);display:flex;justify-content:space-between;gap:8px}.pcard .line .muted{font-size:var(--fs-xs)}.auth-page{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);background:var(--card)}.auth-art{position:relative;overflow:hidden;color:#fff;padding:40px 48px 36px;display:flex;flex-direction:column;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 38%,transparent),#080c160d 30%,#080c1694 56%,#080c16e6),url(/auth-hero.jpg) 32% center / cover no-repeat,var(--accent)}.auth-mark{font-size:20px;font-weight:600;letter-spacing:.01em}.auth-logo{height:40px;width:auto;background:#fff;border-radius:8px;padding:6px 10px}.auth-art-copy{margin-top:auto;padding-bottom:88px;max-width:480px}.auth-art-copy h1{font-size:34px;line-height:1.15;margin:0 0 12px;letter-spacing:-.015em}.auth-art-copy p{margin:0 0 16px;color:#fffc}.auth-art-copy ul{margin:0;padding:0;list-style:none;display:grid;gap:8px}.auth-art-copy li{padding-left:24px;position:relative;color:#ffffffeb}.auth-art-copy li:before{content:"";position:absolute;left:0;top:7px;width:10px;height:10px;border-radius:50%;background:#fff;opacity:.85}.auth-form-side{display:flex;align-items:center;justify-content:center;padding:32px 24px}.auth-card{width:100%;max-width:380px}.auth-card h2{margin:0 0 6px;font-size:26px;letter-spacing:-.01em}.auth-eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:12px;color:var(--accent);font-weight:600;margin-bottom:8px}.auth-submit{width:100%;margin-top:16px;padding:12px 14px}.auth-foot{margin-top:32px;text-align:center;font-size:12px;color:var(--muted)}@media(max-width:820px){.auth-page{grid-template-columns:1fr}.auth-art{padding:24px}.auth-art-copy h1{font-size:24px}.auth-art-copy ul{display:none}.auth-art-copy{margin-top:16px;padding-bottom:20px}}@media(max-width:600px){.page{padding:14px 14px 40px}.card{padding:14px}th,td{padding:7px 6px;font-size:var(--fs-sm)}.editor-bar{position:static}}
