:root{--bg:#f6f5f2;--panel:#fff;--text:#1d1f1c;--muted:#6b6f68;--line:#e2e0da;--accent:#2f6b4f;--accent-text:#fff;--warn:#b26b00;--error:#b3261e;--radius:10px;color:var(--text);background:var(--bg);font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#161816;--panel:#1f221f;--text:#ecebe6;--muted:#a1a59d;--line:#333731;--accent:#5fae86;--accent-text:#0e1a13}}*{box-sizing:border-box}body{background:var(--bg);margin:0}a{color:var(--accent);text-decoration:none}h1{margin:0 0 1rem;font-size:1.5rem}h2{margin:1.5rem 0 .75rem;font-size:1.1rem}.shell{grid-template-rows:auto 1fr;min-height:100vh;display:grid}.topbar{background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:1.25rem;padding:.75rem 1.25rem;display:flex}.topbar .brand{font-weight:700}.topbar nav{flex:1;gap:1rem;display:flex}.topbar nav a{color:var(--muted)}.topbar nav a.active{color:var(--text);font-weight:600}.topbar .who{color:var(--muted);align-items:center;gap:.75rem;font-size:.9rem;display:flex}main{width:100%;max-width:1200px;margin:0 auto;padding:1.25rem}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1rem}.row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.spacer{flex:1}.muted{color:var(--muted)}.error{color:var(--error);white-space:pre-wrap}.small{font-size:.85rem}button,.button{font:inherit;border:1px solid var(--line);background:var(--panel);color:var(--text);cursor:pointer;border-radius:8px;padding:.45rem .9rem}button.primary,.button.primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}button:disabled{opacity:.5;cursor:default}input,select,textarea{font:inherit;border:1px solid var(--line);background:var(--panel);width:100%;color:var(--text);border-radius:8px;padding:.45rem .6rem}textarea{resize:vertical;min-height:4.5rem}label{color:var(--muted);gap:.3rem;font-size:.9rem;display:grid}.form{gap:.9rem;display:grid}.form-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.9rem;display:grid}.tabs{flex-wrap:wrap;gap:.25rem;margin-bottom:1rem;display:flex}.tabs button{border-radius:999px}.tabs button.active{background:var(--text);color:var(--bg);border-color:var(--text)}.grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;display:grid}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);color:inherit;overflow:hidden}.card .thumb{aspect-ratio:1;background:var(--line);place-items:center;display:grid;overflow:hidden}.card .thumb img{object-fit:cover;width:100%;height:100%}.card .body{gap:.25rem;padding:.6rem .75rem;display:grid}.card .title{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.badge{background:var(--line);color:var(--text);border-radius:999px;width:fit-content;padding:.1rem .5rem;font-size:.75rem}.badge-review{color:#3b1f73;background:#e8d9ff}.badge-approved,.badge-done{color:#1d5236;background:#d6f0df}.badge-processing,.badge-revising,.badge-queued,.badge-leased{color:#6b4a00;background:#fff0cc}.badge-failed,.badge-rejected{color:#7a1a14;background:#fbdad7}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:.45rem .5rem}th{color:var(--muted);font-weight:500}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.table-wrap{overflow-x:auto}.detail{grid-template-columns:minmax(0,3fr) minmax(280px,2fr);gap:1rem;display:grid}@media (width<=860px){.detail{grid-template-columns:1fr}}.viewer{aspect-ratio:4/3;border-radius:var(--radius);background:linear-gradient(#dfe3dc,#c9cfc4);overflow:hidden}.images{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.5rem;display:grid}.images img{border:1px solid var(--line);background:var(--panel);border-radius:8px;width:100%}.stats{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;display:grid}.stat .value{font-size:1.6rem;font-weight:700}.stat .label{color:var(--muted);font-size:.85rem}.center-screen{text-align:center;place-content:center;gap:1rem;min-height:100vh;display:grid}.photos-pick{flex-wrap:wrap;gap:.5rem;display:flex}.photos-pick img{object-fit:cover;border:1px solid var(--line);border-radius:8px;width:96px;height:96px}:root{--step-1:#2a78d6;--step-2:#eb6834;--step-3:#1baf7a;--step-4:#eda100;--step-5:#e87ba4;--step-6:#008300;--grid:#ecebe6;--hover:#f1f0ec;--crit-bg:#fbdad7;--crit-fg:#7a1a14;--ok-bg:#d6f0df;--ok-fg:#1d5236;--shadow:0 10px 40px #0000002e}@media (prefers-color-scheme:dark){:root{--step-1:#3987e5;--step-2:#d95926;--step-3:#199e70;--step-4:#c98500;--step-5:#d55181;--step-6:#2f9a2f;--grid:#2a2e29;--hover:#262a26;--crit-bg:#4a1f1c;--crit-fg:#ffc9c3;--ok-bg:#1c3a2a;--ok-fg:#bfe8cf;--shadow:0 10px 40px #0009}}.overview-head{margin-bottom:1rem}.overview-head h1{margin:0}.seg{border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:2px;display:inline-flex}.seg button{background:0 0;border:0;border-radius:999px;padding:.35rem .9rem}.seg button.active{background:var(--text);color:var(--bg)}.perf-filters{margin-bottom:1rem}.perf-filters label{flex-direction:row;align-items:center;gap:.4rem;font-size:.85rem;display:flex}.perf-filters select{width:auto}.sw{vertical-align:-1px;border-radius:2px;width:10px;height:10px;margin-right:.45rem;display:inline-block}.tag{background:var(--line);color:var(--text);text-align:center;border-radius:2px;min-width:4.6rem;padding:.1rem .45rem;font-size:.72rem;font-weight:500;display:inline-block}.tag.crit{background:var(--crit-bg);color:var(--crit-fg)}.tag.ok{background:var(--ok-bg);color:var(--ok-fg)}.perf-stats{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.perf-stat{position:relative}.perf-stat .label{padding-right:1.4rem}.perf-stat .sub{font-variant-numeric:tabular-nums;margin-top:.25rem;font-size:.85rem}.perf-stat.hot{border-color:var(--step-4)}.perf-info{position:absolute;top:.7rem;right:.7rem}.perf-info button{width:18px;height:18px;color:var(--muted);cursor:help;border-radius:50%;place-items:center;padding:0;font-size:11px;display:grid}.perf-tip{z-index:20;background:var(--panel);border:1px solid var(--line);width:min(280px,80vw);box-shadow:var(--shadow);border-radius:8px;padding:.6rem .75rem;font-size:.82rem;display:none;position:absolute;top:1.6rem;right:0}.perf-info:hover .perf-tip,.perf-info:focus-within .perf-tip{display:block}.perf-bar{border-radius:4px;gap:2px;height:28px;display:flex;overflow:hidden}.perf-bar>div{min-width:2px;position:relative}.perf-bar>.run{background:var(--c)}.perf-bar>.wait{background:repeating-linear-gradient(135deg, var(--c) 0 2px, transparent 2px 6px);box-shadow:inset 0 0 0 1px var(--c)}.perf-bar>div span{color:#fff;white-space:nowrap;place-items:center;font-size:.75rem;font-weight:600;display:grid;position:absolute;inset:0;overflow:hidden}.perf-axis{color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;margin-top:.35rem;font-size:.78rem;display:flex}.perf-legend{color:var(--muted);flex-wrap:wrap;gap:.4rem 1rem;margin-top:.75rem;font-size:.82rem;display:flex}.perf-legend .solid,.perf-legend .hatch{vertical-align:-1px;border-radius:2px;width:14px;height:10px;margin-right:.45rem;display:inline-block}.perf-legend .solid{background:var(--muted)}.perf-legend .hatch{background:repeating-linear-gradient(135deg, var(--muted) 0 2px, transparent 2px 5px);box-shadow:inset 0 0 0 1px var(--muted)}.perf-legend .hatch.fail{background:repeating-linear-gradient(45deg, var(--error) 0 2px, transparent 2px 5px);box-shadow:inset 0 0 0 1px var(--error)}.perf-hover{z-index:50;pointer-events:none;background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);font-variant-numeric:tabular-nums;border-radius:8px;min-width:190px;padding:.55rem .7rem;font-size:.8rem;position:fixed}.perf-hover .r{justify-content:space-between;gap:1rem;display:flex}.perf-hover b{margin-bottom:.25rem;display:block}table.perf-steps td,table.perf-steps th{white-space:nowrap;vertical-align:middle}tr.click{cursor:pointer}tr.click:hover td{background:var(--hover)}tr.click:focus-visible,th.sortable:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.caret{width:1rem;color:var(--muted);transition:transform .15s;display:inline-block}tr.open .caret,.perf-collapse[aria-expanded=true] .caret{transform:rotate(90deg)}tr.sub td{background:var(--bg);white-space:normal}.perf-detail{gap:.75rem;padding:.25rem 0 .5rem;display:grid}tr.total td{border-top:2px solid var(--line);border-bottom:0;font-weight:700}.perf-share{justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.perf-share .track{background:var(--grid);border-radius:2px;width:90px;height:8px;overflow:hidden}.perf-share .track div{border-radius:0 2px 2px 0;height:100%}.perf-chart{height:220px;margin:.5rem 0 0 3.6rem;position:relative}.perf-chart .gl{border-top:1px solid var(--grid);position:absolute;left:0;right:0}.perf-chart .gl.base{border-top-color:var(--line)}.perf-chart .gl span{color:var(--muted);white-space:nowrap;font-size:.72rem;position:absolute;top:-.55rem;right:calc(100% + .4rem)}.perf-chart .cols{align-items:flex-end;gap:3px;display:flex;position:absolute;inset:0}.perf-chart .col{flex-direction:column-reverse;flex:1;gap:1px;height:100%;display:flex;position:relative}.perf-chart .col>div:last-child{border-radius:3px 3px 0 0}.perf-chart .col:hover:after{content:"";background:var(--text);opacity:.06;position:absolute;inset:0 -1px}.perf-xlabels{color:var(--muted);gap:3px;margin-top:.3rem;margin-left:3.6rem;font-size:.72rem;display:flex}.perf-xlabels span{text-align:center;white-space:nowrap;flex:1;overflow:hidden}.perf-collapse{font:inherit;background:0 0;border:0;align-items:baseline;gap:.4rem;padding:0;font-weight:700;display:inline-flex}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}th.sortable:hover{color:var(--text)}th .arrow{font-size:.7rem}.table-wrap.loading tbody{opacity:.45}.perf-mini{background:var(--grid);border-radius:2px;gap:1px;width:160px;height:10px;display:flex;overflow:hidden}.perf-pager{color:var(--muted);margin-top:.75rem;font-size:.85rem}.perf-pager label{flex-direction:row;align-items:center;gap:.4rem;display:flex}.perf-pager select{width:auto;padding:.3rem .5rem}.perf-pager button{padding:.3rem .7rem}.perf-pager .pg{color:var(--text);font-variant-numeric:tabular-nums}.perf-scrim{z-index:30;background:#00000040;position:fixed;inset:0}.perf-drawer{z-index:31;background:var(--panel);border-left:1px solid var(--line);width:min(620px,100vw);box-shadow:var(--shadow);grid-template-rows:auto 1fr;display:grid;position:fixed;top:0;bottom:0;right:0}.perf-drawer header{border-bottom:1px solid var(--line);gap:.4rem;padding:1rem 1.1rem;display:grid}.perf-drawer .title{font-size:1.1rem}.perf-drawer .content{align-content:start;gap:1rem;padding:1rem 1.1rem;display:grid;overflow:auto}.perf-drawer td,.perf-drawer th{white-space:normal}.perf-kv{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.75rem;display:grid}.perf-kv div{gap:.1rem;display:grid}.perf-kv .k{color:var(--muted);font-size:.78rem}.perf-kv .v{font-variant-numeric:tabular-nums;font-weight:600}.perf-gantt{grid-template-columns:7.5rem minmax(0,1fr);align-items:center;gap:4px .6rem;font-size:.8rem;display:grid}.perf-gantt .lbl{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.perf-gantt .lane{background:var(--grid);border-radius:2px;height:16px;position:relative}.perf-gantt .lane>div{min-width:2px;position:absolute;top:0;bottom:0}.perf-gantt .lane>.run{background:var(--c);border-radius:2px}.perf-gantt .lane>.wait{background:repeating-linear-gradient(135deg, var(--c) 0 2px, transparent 2px 5px);box-shadow:inset 0 0 0 1px var(--c)}.perf-gantt .lane>.fail{background:repeating-linear-gradient(45deg, var(--error) 0 2px, transparent 2px 5px);box-shadow:inset 0 0 0 1px var(--error)}.gantt-axis{margin-left:8.1rem}@media (width<=700px){.perf-drawer{border-left:0;border-top:1px solid var(--line);border-radius:14px 14px 0 0;width:100vw;height:85vh;top:auto}}
