.confirm-delete{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.confirm-delete__question{font-weight:500}.confirm-delete__button{min-width:var(--touch-min);min-height:var(--touch-min)}.empty-state{justify-items:center;gap:var(--space-3);max-width:34rem;margin:var(--space-6) auto;padding:var(--space-7) var(--space-5);text-align:center;background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);display:grid}.empty-state__frame{width:5.5rem;height:6.5rem;margin-bottom:var(--space-2);position:relative}.empty-state__hook{background:var(--color-ink-muted);border-radius:50%;width:.5rem;height:.5rem;position:absolute;top:0;left:50%;transform:translate(-50%)}.empty-state__frame:before{content:"";background:linear-gradient(to top right, transparent calc(50% - .5px), var(--color-ink-muted) 50%, transparent calc(50% + .5px)) left / 50% 100% no-repeat, linear-gradient(to top left, transparent calc(50% - .5px), var(--color-ink-muted) 50%, transparent calc(50% + .5px)) right / 50% 100% no-repeat;height:1.2rem;position:absolute;top:.25rem;left:.6rem;right:.6rem}.empty-state__canvas{border:.35rem solid var(--color-ink);background:linear-gradient(160deg, var(--color-accent-soft), var(--color-wall));box-shadow:var(--shadow-md);position:absolute;inset:1.4rem 0 0}.empty-state__title{font-size:var(--text-xl);margin:0}.empty-state__body{max-width:28rem;color:var(--color-ink-muted);margin:0}.empty-state__action{margin-top:var(--space-3)}.length-field__row{align-items:center;gap:var(--space-2);display:flex}.length-field__help{margin:var(--space-1) 0 0;font-size:var(--text-sm);color:var(--color-ink-muted)}.length-field__unit{min-width:2rem;color:var(--color-ink-muted)}.new-plan-form{gap:var(--space-4);max-width:30rem;padding:var(--space-5);border:1px solid var(--color-line);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-md);display:grid}@media (width<=40rem){.new-plan-form{padding:var(--space-4)}}.new-plan-form h2{margin:0}.new-plan-form__units{gap:var(--space-2) var(--space-4);flex-wrap:wrap;display:flex}.new-plan-form__units legend{width:100%}.new-plan-form__radio{align-items:center;gap:var(--space-2);min-height:var(--touch-min);min-width:var(--touch-min);margin:0;font-weight:400;display:flex}.new-plan-form__actions{gap:var(--space-3);padding-top:var(--space-2);flex-wrap:wrap;display:flex}.plans-screen{gap:var(--space-4);display:grid}.plans-screen__header{gap:var(--space-1);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-line);display:grid}.plans-screen__header h1{margin:0}.plans-screen__eyebrow{font-size:var(--text-sm);letter-spacing:.12em;text-transform:uppercase;color:var(--color-ink-muted);margin:0;font-weight:500}.plans-screen__note{padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--color-warning-soft);color:var(--color-warning);border-left:3px solid;margin:0;font-weight:500}.plans-screen__import{align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.plans-screen__status{font-size:var(--text-sm);color:var(--color-ink-muted);margin:0}.plans-screen__action{min-width:var(--touch-min);min-height:var(--touch-min)}.plans-screen__list{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.plans-screen__list li{align-items:center;gap:var(--space-2);padding:var(--space-2);padding-right:var(--space-3);border:1px solid var(--color-line);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm);transition:border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-base) var(--ease-out), transform var(--duration-base) var(--ease-out);grid-template-columns:minmax(0,1fr) auto auto;display:grid}.plans-screen__list li:hover{border-color:var(--color-line-strong);box-shadow:var(--shadow-md)}.plans-screen__link{gap:var(--space-1);min-width:0;min-height:var(--touch-min);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--color-ink);text-decoration:none;display:grid}.plans-screen__link:hover{color:var(--color-ink)}.plans-screen__link:hover .plans-screen__name{color:var(--color-accent);text-underline-offset:.2em;text-decoration:underline;text-decoration-thickness:1px}.plans-screen__name{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;line-height:var(--leading-tight);overflow-wrap:anywhere}.plans-screen__meta{font-size:var(--text-sm);color:var(--color-ink-muted);font-variant-numeric:tabular-nums}.plans-screen__list li .confirm-delete{justify-content:flex-end}@media (width<=40rem){.plans-screen__list li{padding:var(--space-2);flex-wrap:wrap;display:flex}.plans-screen__link{flex:1 0 100%}.plans-screen__list li .confirm-delete{justify-content:flex-start}}.wall-panel{gap:var(--space-4);display:grid}.wall-panel__units{gap:var(--space-2) var(--space-4);flex-wrap:wrap;display:flex}.wall-panel__units legend{width:100%}.wall-panel__radio{align-items:center;gap:var(--space-2);min-height:var(--touch-min);min-width:var(--touch-min);margin:0;font-weight:400;display:flex}.elevation{height:auto;max-height:75vh;font-family:var(--font-ui);display:block}.elevation__wall{fill:var(--color-wall);stroke:var(--color-line)}.elevation__floor{stroke:var(--color-line-strong);stroke-linecap:round}.elevation__eye-line{stroke:var(--color-accent)}.elevation__label{fill:var(--color-ink-muted)}.elevation__work rect{fill:var(--color-surface);stroke:var(--color-ink)}.elevation__title{fill:var(--color-ink)}.elevation__work--problem rect{fill:var(--color-warning-soft);stroke:var(--color-warning)}.elevation__work:focus{outline:none}.elevation__work:focus-visible rect{stroke:var(--color-focus);stroke-width:1.5%}.elevation--movable{touch-action:none}.elevation--movable .elevation__work{cursor:grab}.elevation--movable .elevation__work:active{cursor:grabbing}.elevation__work rect{transition:fill var(--duration-fast) var(--ease-out), stroke var(--duration-fast) var(--ease-out)}.elevation__work:hover rect{stroke:var(--color-accent)}.elevation__work--problem:hover rect{stroke:var(--color-warning)}.elevation-panel{background:var(--color-surface-sunken);border-radius:var(--radius-md);padding:var(--space-3)}.elevation-panel__hint{margin:var(--space-2) 0 0;color:var(--color-ink-muted);font-size:var(--text-sm)}.arrange-panel{gap:var(--space-4);display:grid}.arrange-panel__modes{gap:var(--space-2) var(--space-4);flex-wrap:wrap;display:flex}.arrange-panel__modes legend{width:100%}.arrange-panel__radio{align-items:center;gap:var(--space-2);min-height:var(--touch-min);min-width:var(--touch-min);margin:0;font-weight:400;display:flex}.arrange-panel__hint{margin:0}.works-panel{gap:var(--space-4);display:grid}.works-panel__list{border-top:1px solid var(--color-line);margin:0;padding:0;list-style:none}.works-panel__row{align-items:center;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--color-line);display:flex}.works-panel__label{flex:12rem;min-width:0;display:flex}.works-panel__title{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.works-panel__size{white-space:nowrap;color:var(--color-ink-muted);flex:none}.works-panel__hint{margin:var(--space-2) 0 0;font-size:var(--text-sm);color:var(--color-ink-muted)}.works-panel__form{gap:var(--space-4);padding:var(--space-4);border:1px solid var(--color-line);border-radius:var(--radius-md);background:var(--color-surface-sunken);display:grid}.works-panel__hanging{gap:var(--space-2) var(--space-4);flex-wrap:wrap;display:flex}.works-panel__hanging legend{width:100%}.works-panel__radio{align-items:center;gap:var(--space-2);min-height:var(--touch-min);min-width:var(--touch-min);margin:0;font-weight:400;display:flex}.works-panel__actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.works-panel__row{flex-wrap:wrap}.works-panel__actions-row{gap:var(--space-2);flex-wrap:wrap;display:flex}.works-panel__row .button{min-width:var(--touch-min);min-height:var(--touch-min)}.works-panel__btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}.checks__list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.checks__item,.checks__ok{align-items:baseline;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);border-left:3px solid;margin:0;display:flex}.checks__item{background:var(--color-warning-soft);color:var(--color-warning)}.checks__ok{background:var(--color-accent-soft);color:var(--color-accent-strong)}.checks__ok:before{content:"✓";content:"✓" / "";font-weight:700}.checks__icon{flex:none}.hook-table{max-width:100%;overflow-x:auto}.hook-table table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.hook-table caption{text-align:left;color:var(--color-ink-muted);padding-bottom:var(--space-2)}.hook-table th,.hook-table td{padding:var(--space-2) var(--space-3);text-align:left;border-bottom:1px solid var(--color-line);white-space:nowrap}.hook-table th{white-space:normal;vertical-align:bottom;border-bottom-color:var(--color-line-strong);font-weight:600}.hook-table th:nth-child(n+4){min-width:6.5em}.hook-table tbody tr{transition:background-color var(--duration-fast) var(--ease-out)}.hook-table tbody tr:hover{background:var(--color-surface-sunken)}.hook-table tbody tr:last-child td{border-bottom:0}.editor__header{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.editor__links{gap:var(--space-3);flex-wrap:wrap;display:flex}.editor__header h1{overflow-wrap:anywhere;min-width:0;margin:0}.editor__status{min-height:1.5em;margin:var(--space-2) 0 var(--space-3);font-size:var(--text-sm);color:var(--color-ink-muted)}.editor__columns{gap:var(--space-5);grid-template-columns:1fr;display:grid}@media (width>=60rem){.editor__columns{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start}}.editor__main,.editor__side{gap:var(--space-5);min-width:0;display:grid}.editor__panel{min-width:0;padding:var(--space-5);border:1px solid var(--color-line);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm)}.editor__panel h2{margin-top:0;margin-bottom:var(--space-4);font-size:var(--text-xl)}.editor>h1{margin-bottom:var(--space-4)}@media (width<=40rem){.editor__panel{padding:var(--space-4)}.editor__columns,.editor__main,.editor__side{gap:var(--space-4)}}.sheet{gap:var(--space-5);display:grid}.sheet__header{gap:var(--space-2);display:grid}.sheet__details{color:var(--color-ink-muted);margin:0}.sheet__actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.sheet__header h1{overflow-wrap:anywhere;margin:0}.sheet__notice{border:1px solid var(--color-warning);border-radius:var(--radius-sm);background:var(--color-warning-soft);color:var(--color-ink);padding:var(--space-3) var(--space-4);border-left-width:3px}.sheet__notice p{color:var(--color-warning)}.sheet__elevation,.sheet .hook-table{padding:var(--space-4);border:1px solid var(--color-line);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm)}.sheet__notice p{margin:0 0 var(--space-2);font-weight:600}.sheet__notice ul{padding-left:var(--space-5);margin:0}@page{size:landscape}@media print{.shell__skip,.shell__header,.shell__nav,.sheet__actions{display:none!important}body,.shell,.shell__main,.sheet{color:#000!important;background:#fff!important}.sheet *,.sheet svg text{color:#000!important}.sheet__notice{background:#fff;border-color:#000}.sheet__elevation,.sheet .hook-table{box-shadow:none;background:#fff;border:0;padding:0}.sheet__elevation svg,.sheet .hook-table,.sheet table{width:100%;max-width:100%}.sheet .hook-table{overflow:visible}.sheet thead{display:table-header-group}.sheet tr{break-inside:avoid}}.not-found{justify-items:start;gap:var(--space-3);max-width:32rem;padding-block:var(--space-7);display:grid}.not-found h1{margin:0}.not-found__mark{font-family:var(--font-display);font-size:var(--text-3xl);color:var(--color-ink-muted);letter-spacing:.05em;margin:0;line-height:1}.not-found__body{margin:0 0 var(--space-2);color:var(--color-ink-muted)}.shell{flex-direction:column;min-height:100vh;display:flex}.shell__skip{top:var(--space-2);left:var(--space-2);z-index:10;min-height:var(--touch-min);padding:0 var(--space-4);background:var(--color-ink);color:var(--color-wall);border-radius:var(--radius-sm);transition:transform var(--duration-fast) var(--ease-out);align-items:center;display:inline-flex;position:absolute;transform:translateY(-200%)}.shell__skip:focus,.shell__skip:focus-visible{color:var(--color-wall);transform:translateY(0)}.shell__header{z-index:5;background:color-mix(in srgb, var(--color-wall) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--color-line);position:sticky;top:0}.shell__bar{justify-content:space-between;align-items:center;gap:var(--space-4);max-width:var(--content-max);padding:var(--space-2) var(--space-5);margin:0 auto;display:flex}.shell__wordmark{align-items:center;gap:var(--space-3);min-height:var(--touch-min);min-width:var(--touch-min);color:var(--color-ink);font-family:var(--font-display);font-size:var(--text-lg);line-height:1.1;text-decoration:none;display:inline-flex}.shell__wordmark:hover{color:var(--color-ink)}.shell__logo{flex:none;width:1.4rem;height:1.75rem;overflow:visible}.shell__logo-canvas{fill:var(--color-accent-soft)}.shell__logo-eye{stroke:var(--color-accent)}.shell__logo-piece{transform-box:view-box;transform-origin:16px 3px;transition:transform var(--duration-base) var(--ease-out)}.shell__wordmark:hover .shell__logo-piece{transform:rotate(-4deg)}.shell__nav ul{gap:var(--space-1);margin:0;padding:0;list-style:none;display:flex}.shell__nav a{min-height:var(--touch-min);min-width:var(--touch-min);padding:0 var(--space-3);border-radius:var(--radius-sm);color:var(--color-ink-muted);transition:color var(--duration-fast) var(--ease-out), background-color var(--duration-fast) var(--ease-out);justify-content:center;align-items:center;font-weight:500;text-decoration:none;display:inline-flex}.shell__nav a:hover{color:var(--color-ink);background:var(--color-surface-sunken)}.shell__nav a[aria-current=page]{color:var(--color-ink);box-shadow:inset 0 -2px 0 var(--color-accent)}.shell__main{width:100%;max-width:var(--content-max);padding:var(--space-6) var(--space-5) var(--space-8);flex:1;margin:0 auto}.shell__main:focus:not(:focus-visible){outline:none}.shell__main:focus-visible{outline-offset:calc(var(--focus-width) * -1);border-radius:var(--radius-md)}.shell__main>*{animation:shell-enter var(--duration-slow) var(--ease-out) both}@keyframes shell-enter{0%{opacity:0;transform:translateY(6px)}}@media (width<=40rem){.shell__bar{padding-inline:var(--space-4)}.shell__wordmark{font-size:var(--text-base)}.shell__main{padding:var(--space-5) var(--space-4) var(--space-7)}}@media print{.shell__skip,.shell__header{display:none}.shell__main{max-width:none;padding:0}.shell__main>*{animation:none}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--font-display:"Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, "Times New Roman", serif;--font-ui:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.25rem;--text-xl:1.5rem;--text-2xl:2rem;--text-3xl:2.75rem;--leading-tight:1.15;--leading-body:1.55;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4.5rem;--content-max:72rem;--color-wall:#f5f1ea;--color-surface:#fcfaf6;--color-surface-sunken:#ebe5da;--color-line:#d9d1c3;--color-line-strong:#8f877a;--color-ink:#23211e;--color-ink-muted:#5c564d;--color-accent:#1d4f5c;--color-accent-strong:#153d48;--color-accent-soft:#d5e4e6;--color-on-accent:#fff;--color-warning:#a8321a;--color-warning-soft:#f7e0d8;--color-focus:#1d4f5c;--radius-sm:4px;--radius-md:8px;--radius-lg:14px;--shadow-sm:0 1px 2px #23211e14;--shadow-md:0 2px 4px #23211e0f, 0 8px 24px #23211e1a;--shadow-lg:0 4px 8px #23211e0f, 0 18px 40px #23211e24;--radius-pill:999px;--duration-fast:.12s;--duration-base:.22s;--duration-slow:.36s;--ease-out:cubic-bezier(.2, .7, .2, 1);--focus-width:3px;--focus-ring:var(--focus-width) solid var(--color-focus);--touch-min:44px}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--color-wall:#1a1917;--color-surface:#23221f;--color-surface-sunken:#2c2a27;--color-line:#3d3a35;--color-line-strong:#7d766b;--color-ink:#efe9df;--color-ink-muted:#b5ad9f;--color-accent:#8fc5d1;--color-accent-strong:#b0d8e0;--color-accent-soft:#24414a;--color-on-accent:#10191c;--color-warning:#f39a80;--color-warning-soft:#4a2219;--color-focus:#8fc5d1;--shadow-sm:0 1px 2px #0006;--shadow-md:0 2px 4px #0000004d, 0 8px 24px #0006;--shadow-lg:0 4px 8px #00000059, 0 18px 40px #00000080}}@media (prefers-reduced-motion:reduce){:root{--duration-fast:0s;--duration-base:0s;--duration-slow:0s}*,:before,:after{scroll-behavior:auto!important;transition-duration:0s!important;animation-duration:0s!important}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-ui);font-size:var(--text-base);line-height:var(--leading-body);color:var(--color-ink);background:var(--color-wall);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:var(--leading-tight);color:var(--color-ink);margin:0 0 var(--space-3);text-wrap:balance}h1{font-size:var(--text-3xl);letter-spacing:-.01em}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}h4{font-size:var(--text-lg)}p{margin:0 0 var(--space-4)}a{color:var(--color-accent);text-underline-offset:.2em;text-decoration-thickness:1px}a:hover{color:var(--color-accent-strong)}a:not(p a,li p a,td a){min-height:var(--touch-min);align-items:center;display:inline-flex}:focus-visible{outline:var(--focus-ring);outline-offset:2px}button,.button{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--touch-min);min-width:var(--touch-min);padding:0 var(--space-4);font:inherit;color:var(--color-ink);background:var(--color-surface);border:1px solid var(--color-line-strong);border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);font-weight:500;text-decoration:none;display:inline-flex}button:hover,.button:hover{color:var(--color-ink);background:var(--color-surface-sunken);border-color:var(--color-ink-muted)}button:active,.button:active{transform:translateY(1px)}.button--primary{color:var(--color-on-accent);background:var(--color-accent);border-color:var(--color-accent);box-shadow:var(--shadow-sm)}.button--primary:hover{color:var(--color-on-accent);background:var(--color-accent-strong);border-color:var(--color-accent-strong)}.button--danger{color:var(--color-warning);border-color:var(--color-warning)}.button--danger:hover{color:var(--color-warning);background:var(--color-warning-soft);border-color:var(--color-warning)}button[aria-disabled=true],button:disabled{cursor:not-allowed;opacity:.55;transform:none}button[aria-disabled=true]:hover,button:disabled:hover{background:var(--color-surface);border-color:var(--color-line-strong)}label{margin-bottom:var(--space-1);font-weight:500;display:block}input,select,textarea{font:inherit;color:var(--color-ink);background:var(--color-surface);border:1px solid var(--color-line-strong);border-radius:var(--radius-sm);min-height:var(--touch-min);padding:var(--space-2) var(--space-3);width:100%;max-width:100%;transition:border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out)}input:hover,select:hover,textarea:hover{border-color:var(--color-ink-muted)}input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--color-accent)}input[type=radio],input[type=checkbox]{width:1.25rem;height:1.25rem;min-height:1.25rem;accent-color:var(--color-accent);padding:0}input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--color-warning);box-shadow:inset 0 0 0 1px var(--color-warning)}.field-hint{margin:var(--space-1) 0 0;font-size:var(--text-sm);color:var(--color-ink-muted)}.field-error{margin:var(--space-1) 0 0;font-size:var(--text-sm);color:var(--color-warning);font-weight:500}fieldset{border:0;margin:0;padding:0}legend{padding:0;font-weight:500}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}caption{text-align:left;padding-bottom:var(--space-2);font-weight:600}th,td{text-align:left;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-line);vertical-align:top}th{font-size:var(--text-sm);color:var(--color-ink-muted);border-bottom-color:var(--color-line-strong);font-weight:600}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=40rem){h1{font-size:var(--text-2xl)}h2{font-size:var(--text-xl)}}
