body{background:var(--bg)}.app-shell{display:grid;grid-template-columns:210px minmax(0,1fr);min-height:100dvh}.sidebar{background:var(--surface);border-right:1px solid var(--line);padding:28px 18px;display:flex;flex-direction:column;gap:24px}.brand-logo{width:170px;height:42px}.sidebar nav{display:grid;gap:8px}.sidebar nav button{width:100%}.sidebar nav button[aria-current=page]{color:var(--accent);background:var(--accent-soft)}.sidebar .small{margin-top:auto}.app-header{background:var(--surface);border-bottom:1px solid var(--line);padding:18px 28px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.app-header p{font-size:13px}.notice{padding:0 28px;min-height:24px;color:var(--accent);overflow-wrap:anywhere}.notice.error,.field-error{color:#a52d20}.small{font-size:12px;color:var(--muted)}#main{padding:18px 28px 36px;display:grid;gap:22px;min-width:0}.heading,.toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.panel{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:20px;min-width:0}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metric{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px;min-height:110px}.metric b{display:block;font:600 32px Bahnschrift,'Segoe UI',sans-serif}.metric span{font-size:12px;color:var(--muted)}.overdue{color:#a52d20}.future{color:#936000}.done{color:#19764e}.undated{color:var(--muted)}.badge{display:inline-flex;padding:4px 8px;border-radius:7px;background:var(--bg);font-size:12px;align-items:center;gap:6px}.point-row,.walk-row{display:flex;align-items:center;gap:14px;width:100%;border-bottom:1px solid var(--line);padding:16px 0}.point-row>span:first-child,.walk-row>span:first-child{flex:1;min-width:0}.point-row strong,.walk-row strong{display:block;overflow-wrap:anywhere}.point-row small,.walk-row small{display:block;color:var(--muted)}.split{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(220px,1fr);gap:18px}.status-chart{height:12px;border-radius:8px;overflow:hidden;display:flex;background:var(--line);margin:16px 0}.status-chart .overdue{background:#c54b3b}.status-chart .future{background:#edbb45}.status-chart .done{background:#339d73}.status-chart .undated{background:var(--muted)}.legend{display:flex;gap:12px;flex-wrap:wrap;font-size:12px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.fields label{display:grid;gap:6px}.fields .wide{grid-column:1/-1}input,select,textarea{padding:10px;min-height:44px;border:1px solid var(--line);border-radius:9px;width:100%;min-width:0;font:inherit;background:var(--surface);color:var(--text)}input[type=checkbox]{width:20px;min-height:20px}textarea{resize:none}.fields label.check{display:flex;align-items:center}.button{min-height:44px}.plan-stage{position:relative;aspect-ratio:1.5;background:var(--bg);border:1px solid var(--line);border-radius:12px;overflow:hidden;touch-action:pan-y}.plan-plane{position:absolute;transform-origin:0 0}.plan-image{width:100%;height:100%;display:block;object-fit:fill}.plan-marker{position:absolute;width:44px;height:44px;min-height:44px;border:0;border-radius:50%;display:grid;place-items:center;padding:0;transform:translate(-50%,-50%);background:transparent}.plan-marker span{width:27px;height:27px;border-radius:50%;background:currentColor;display:grid;place-items:center;font-weight:700}.plan-marker b{color:white}.plan-marker[data-priority="3"] span{outline:3px solid var(--text);outline-offset:3px}.plan-marker[data-priority="2"] span{outline:2px solid var(--muted);outline-offset:2px}.plan-marker[aria-pressed=true]{outline:3px solid var(--accent);outline-offset:3px}.plan-tools{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}.plan-stage.placing{outline:3px solid var(--accent);outline-offset:3px}.file-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;border-top:1px solid var(--line);padding:12px 0}.file-row>span{flex:1;min-width:130px;overflow-wrap:anywhere}.floating-window .detail-body{overflow:auto}.floating-window .fields{padding:0}.motion-enter{animation:inspections-enter 210ms cubic-bezier(.2,.75,.2,1)}dialog[open]{animation:inspections-enter 180ms ease-out}@keyframes inspections-enter{from{transform:translateY(8px);opacity:.6}to{transform:none;opacity:1}}@media(prefers-reduced-motion:reduce){.motion-enter,dialog[open]{animation:none}*{scroll-behavior:auto!important}}@media(max-width:760px){.app-shell{grid-template-columns:1fr}.sidebar{padding:15px;gap:14px;border-right:0;border-bottom:1px solid var(--line)}.sidebar nav{display:flex;gap:8px;flex-wrap:wrap}.sidebar nav button{width:auto}.sidebar>.small{display:none}.app-header{padding:15px}.notice{padding:0 15px}#main{padding:15px}.metrics{grid-template-columns:1fr 1fr}.split{grid-template-columns:1fr}.fields{grid-template-columns:1fr}.fields .wide{grid-column:auto}.point-row,.walk-row{align-items:flex-start;flex-wrap:wrap}.panel{padding:16px}input,select,textarea{font-size:16px}.plan-stage{aspect-ratio:1}}@media(forced-colors:active){.plan-marker span{border:2px solid CanvasText}.plan-marker b{color:CanvasText}}
@media(max-width:760px){.app-shell>.sidebar{position:static;height:auto;min-height:0;top:auto;align-self:stretch}.app-shell>.sidebar nav{display:flex}.app-shell>.sidebar nav .button{flex:1;white-space:normal}.app-shell>.sidebar .brand-logo{width:155px;height:36px}}
