@font-face{font-family:Raleway;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/200388358b398524-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Raleway;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/6e67fad4fa881005-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Raleway;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/10dadb2e82d03733-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Raleway;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/95d1875af7c44e92-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Raleway;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/630c17af355fa44e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Raleway;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/200388358b398524-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Raleway;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/6e67fad4fa881005-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Raleway;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/10dadb2e82d03733-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Raleway;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/95d1875af7c44e92-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Raleway;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/630c17af355fa44e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Raleway;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/200388358b398524-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Raleway;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/6e67fad4fa881005-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Raleway;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/10dadb2e82d03733-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Raleway;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/95d1875af7c44e92-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Raleway;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/630c17af355fa44e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Raleway;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/200388358b398524-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Raleway;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/6e67fad4fa881005-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Raleway;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/10dadb2e82d03733-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Raleway;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/95d1875af7c44e92-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Raleway;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/630c17af355fa44e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Raleway;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/200388358b398524-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Raleway;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/6e67fad4fa881005-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Raleway;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/10dadb2e82d03733-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Raleway;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/95d1875af7c44e92-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Raleway;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/630c17af355fa44e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Raleway Fallback;src:local("Arial");ascent-override:90.51%;descent-override:22.53%;line-gap-override:0.00%;size-adjust:103.86%}.__className_504afd{font-family:Raleway,Raleway Fallback;font-style:normal}.__variable_504afd{--font-raleway:"Raleway","Raleway Fallback"}:root{--brand:#518abe;--brand-600:#456f9c;--brand-700:#3a5c81;--brand-dark:#233748;--brand-50:#f0f5fa;--brand-100:#dbe7f2;--brand-200:#bcd0e6;--accent:#e86820;--accent-600:#d25a15;--ink:#2b333d;--text:#5f6b76;--muted:#8a97a3;--surface:#ffffff;--surface-alt:#f7f9fc;--bg:#f4f6f9;--line:#e5e8ec;--line-soft:#eef1f5;--success:#36c06a;--danger:#e5484d;--danger-600:#cf3b40;--danger-bg:#fdeced;--danger-border:#f3b4b6;--danger-text:#b3261e;--font-sans:var(--font-raleway),ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--radius-btn:3px;--radius-card:6px;--radius-panel:8px;--shadow-sm:0 1px 3px rgba(35,55,72,0.08);--shadow-card:0 4px 14px rgba(35,55,72,0.08);--shadow-panel:0 6px 20px rgba(35,55,72,0.12)}*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);overflow:hidden}.app{display:flex;width:100vw;height:100vh}.viewport{position:relative;flex:1 1;height:100%}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-family:inherit;font-size:13px;font-weight:600;line-height:1.2;border:1px solid transparent;border-radius:var(--radius-btn);padding:8px 14px;cursor:pointer;white-space:nowrap;transition:background .14s ease,border-color .14s ease,color .14s ease}.btn:disabled{opacity:.5;cursor:default}.btn--primary{background:var(--brand);color:#fff;border-color:var(--brand)}.btn--primary:hover:not(:disabled){background:var(--brand-600);border-color:var(--brand-600)}.btn--secondary{background:var(--brand-50);color:var(--brand);border-color:var(--brand-100)}.btn--secondary:hover:not(:disabled){background:var(--brand-100);border-color:var(--brand-200)}.btn--ghost{background:transparent;color:var(--brand);border-color:var(--brand-200)}.btn--ghost:hover:not(:disabled){background:var(--brand-50);border-color:var(--brand)}.btn--danger{background:var(--danger);color:#fff;border-color:var(--danger)}.btn--danger:hover:not(:disabled){background:var(--danger-600);border-color:var(--danger-600)}.btn-arrow{transition:transform .14s ease}.btn--arrow:hover:not(:disabled) .btn-arrow{transform:translateX(3px)}.palette{width:348px;height:100%;flex-shrink:0;border-right:1px solid var(--line);box-shadow:2px 0 12px rgba(35,55,72,.04);flex-direction:column;z-index:2}.palette,.palette-brand{background:var(--surface);display:flex}.palette-brand{align-items:center;justify-content:center;padding:16px 18px;border-bottom:1px solid var(--line-soft)}.palette-brand .brand-logo-img{height:52px;width:auto}.step-badge{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--brand);color:#fff;font-size:12px;font-weight:700;flex-shrink:0}.room-field{display:flex;flex-direction:column;gap:4px}.room-field-top{display:flex;justify-content:space-between;font-size:12px;color:var(--text)}.room-val{display:inline-flex;align-items:center;gap:3px}.room-val,.room-val-input{font-weight:600;color:var(--ink)}.room-val-input{width:46px;text-align:right;font-family:inherit;font-size:12px;background:var(--surface-alt);border:1px solid var(--line);border-radius:4px;padding:1px 4px}.room-val-input:focus{outline:none;border-color:var(--brand)}.room-field input[type=range]{width:100%;accent-color:var(--brand)}.palette-steps{flex:1 1;overflow-y:auto;display:flex;flex-direction:column}.step-section{border-bottom:1px solid var(--line-soft)}.step-head{display:flex;align-items:center;gap:10px;width:100%;padding:13px 16px;border:none;background:none;text-align:left;cursor:pointer;color:inherit;font:inherit}.step-head:hover:not(:disabled){background:var(--surface-alt)}.step-titles{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1 1}.step-title{font-size:13.5px;font-weight:700;color:var(--ink)}.step-sub{font-size:11px;color:var(--muted)}.step-chevron{color:var(--muted);font-size:12px;flex-shrink:0}.step-section.locked .step-head{cursor:default;opacity:.45}.step-badge.done{background:var(--success)}.step-body{gap:10px;padding:2px 16px 14px}.floor-config,.step-body{display:flex;flex-direction:column}.floor-config{gap:8px;padding:10px 12px 12px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface-alt)}.floor-config-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--brand)}.step-continue{margin-top:4px;width:100%;padding:11px 14px;text-transform:uppercase;letter-spacing:.04em}.stepper-field{justify-content:space-between;font-size:12px;color:var(--text)}.stepper,.stepper-field{display:flex;align-items:center}.stepper{gap:2px;border:1px solid var(--line);border-radius:var(--radius-btn);overflow:hidden}.stepper button{width:28px;height:28px;border:none;background:var(--surface-alt);color:var(--ink);font-size:16px;cursor:pointer}.stepper button:hover:not(:disabled){background:var(--line-soft)}.stepper button:disabled{color:#c2c8d0;cursor:default}.stepper-val{min-width:26px;text-align:center;font-weight:600;color:var(--ink)}.module-config-bar{position:absolute;top:16px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;gap:8px;max-width:calc(100% - 220px);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-panel);box-shadow:var(--shadow-panel);padding:10px 14px;z-index:4}.mcb-head{gap:14px;border-bottom:1px solid var(--line-soft);padding-bottom:6px}.mcb-head,.mcb-head-actions{display:flex;align-items:center}.mcb-head-actions{margin-left:auto;gap:8px}.mcb-title{font-size:13px;font-weight:700;color:var(--ink);white-space:nowrap}.mcb-tabs{display:flex;gap:2px}.mcb-tab{padding:4px 10px 6px;background:none;border:none;border-bottom:2px solid transparent;color:var(--muted);font-family:inherit;font-size:12.5px;font-weight:600;cursor:pointer;white-space:nowrap}.mcb-tab:hover:not(.active){color:var(--text)}.mcb-tab.active{color:var(--ink);border-bottom-color:var(--brand)}.mcb-body{display:flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:10px 14px;min-height:34px}.mcb-stack{gap:8px}.mcb-stack,.mcb-subtabs-wrap{display:flex;flex-direction:column;align-items:center}.mcb-subtabs-wrap{gap:6px;width:100%;padding-top:6px;border-top:1px dashed var(--line-soft)}.mcb-subtabs{display:flex;gap:4px}.mcb-subtab{padding:3px 11px;border:1px solid var(--line);border-radius:999px;background:var(--surface-alt);color:var(--muted);font-family:inherit;font-size:11.5px;font-weight:600;cursor:pointer;white-space:nowrap}.mcb-subtab:hover:not(.active){color:var(--text);border-color:var(--brand-200)}.mcb-subtab.active{background:var(--brand-50);border-color:var(--brand-100);color:var(--brand)}.mcb-subbody{display:flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:10px 14px;min-height:30px}.mcb-field{width:150px;flex-shrink:0}.mcb-fixed{font-size:12px;color:var(--muted);white-space:nowrap}.mcb-textfield{display:flex;align-items:center;gap:8px;flex-shrink:0}.mcb-text-input{width:150px;font-family:inherit;font-size:12px;font-weight:600;color:var(--ink);background:var(--surface-alt);border:1px solid var(--line);border-radius:4px;padding:5px 8px}.mcb-text-input::placeholder{color:var(--muted);font-weight:400}.mcb-text-input:focus{outline:none;border-color:var(--brand)}.mcb-seg{display:flex;gap:0;border:1px solid var(--line);border-radius:var(--radius-btn);overflow:hidden;flex-shrink:0}.mcb-seg-btn{padding:6px 10px;border:none;background:var(--surface-alt);color:var(--text);font-family:inherit;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}.mcb-seg-btn+.mcb-seg-btn{border-left:1px solid var(--line)}.mcb-seg-btn:hover:not(.active){background:var(--line-soft)}.mcb-seg-btn.active{background:var(--brand);color:#fff}.mcb-motor{display:flex;align-items:center;gap:8px;flex-shrink:0}.mcb-cap{font-size:12px;font-weight:600;color:var(--text);white-space:nowrap}.mcb-close,.mcb-reset{flex-shrink:0}.mcb-close{width:26px;height:26px;border:1px solid var(--line);border-radius:var(--radius-btn);background:var(--surface-alt);color:var(--text);font-size:12px;cursor:pointer}.mcb-close:hover{background:var(--line-soft)}.floor-selector{position:absolute;top:16px;right:16px;display:flex;flex-direction:column;gap:6px;background:rgba(255,255,255,.92);border:1px solid var(--line);border-radius:var(--radius-panel);padding:8px;box-shadow:var(--shadow-card);z-index:3}.floor-selector--offset{top:64px}.floor-selector-title{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);text-align:center;margin-bottom:2px}.floor-btn{padding:7px 14px;border:1px solid var(--line);border-radius:var(--radius-btn);background:var(--surface-alt);color:var(--text);font-family:inherit;font-size:12px;font-weight:600;cursor:pointer;transition:all .1s ease}.floor-btn:hover{border-color:var(--brand-200)}.floor-btn.active{background:var(--brand);border-color:var(--brand);color:#fff}.history-btn{position:absolute;top:16px;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--line);border-radius:50%;background:rgba(255,255,255,.88);color:var(--muted);cursor:pointer;box-shadow:var(--shadow-card);transition:color .12s ease,background .12s ease,border-color .12s ease;z-index:5}.history-btn:hover{background:#fff;border-color:var(--brand-200);color:var(--ink)}.history-btn:active{transform:translateY(1px)}.history-undo{left:16px}.history-redo{right:16px}.palette-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;grid-auto-rows:max-content;grid-gap:12px;gap:12px}.module-card{display:flex;flex-direction:column;align-items:stretch;min-width:0;min-height:0;text-align:left;padding:0;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface-alt);color:inherit;cursor:-webkit-grab;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none;transition:transform .08s ease,box-shadow .12s ease,border-color .12s ease}.module-card:hover{border-color:var(--brand-200);box-shadow:var(--shadow-card);transform:translateY(-1px)}.module-card:active{cursor:-webkit-grabbing;cursor:grabbing;transform:scale(.99)}.module-thumb{position:relative;width:100%;height:132px;flex-shrink:0;background:linear-gradient(180deg,#ffffff,#eef1f5);border-bottom:1px solid var(--line-soft);pointer-events:none}.module-thumb-canvas{display:block;width:100%!important;height:100%!important;pointer-events:none}.module-text{display:flex;flex-direction:column;min-width:0;padding:9px 10px 11px}.module-label{font-size:13.5px;font-weight:600;color:var(--ink);line-height:1.25}.module-soon{position:absolute;top:8px;right:8px;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:rgba(238,240,244,.9);padding:3px 6px;border-radius:6px}.palette-foot{flex-shrink:0;padding:14px 16px;border-top:1px solid var(--line);background:var(--surface)}.export-recap{padding:12px 14px}.export-recap,.export-step{width:100%;text-transform:uppercase;letter-spacing:.04em}.export-step{margin-top:8px;padding:11px 14px}.export-hint{display:block;margin-top:8px;font-size:11px;line-height:1.35;color:var(--muted);text-align:center}.recap-portal{position:fixed;inset:0;z-index:60;flex-direction:column;overflow-y:auto;background:rgba(23,32,42,.55);padding-bottom:40px}.recap-portal,.recap-toolbar{display:flex;align-items:center}.recap-toolbar{position:-webkit-sticky;position:sticky;top:0;align-self:stretch;justify-content:space-between;gap:16px;padding:12px 20px;background:var(--surface);border-bottom:1px solid var(--line);box-shadow:var(--shadow-card);z-index:2}.recap-toolbar-hint{flex:1 1;text-align:center;font-size:12px;color:var(--muted)}.recap-sheet{width:min(820px,calc(100% - 32px));margin:28px 0;padding:40px 44px;background:#fff;color:var(--ink);border-radius:var(--radius-card);box-shadow:0 12px 40px rgba(20,28,36,.28);-webkit-print-color-adjust:exact;print-color-adjust:exact}.recap-head{display:flex;align-items:center;gap:20px;padding-bottom:18px;margin-bottom:22px;border-bottom:3px solid var(--brand)}.recap-logo{height:44px;width:auto}.recap-head-meta{flex:1 1;min-width:0}.recap-title{margin:0;font-size:20px;font-weight:800;color:var(--ink)}.recap-date{margin:4px 0 0;font-size:12.5px;color:var(--muted)}.recap-figure{margin:0 0 24px;border:1px solid var(--line);border-radius:var(--radius-card);overflow:hidden;background:var(--surface-alt)}.recap-figure img{display:block;width:100%;height:auto}.recap-figure figcaption{padding:8px;border-top:1px solid var(--line-soft);font-size:11.5px;color:var(--muted);text-align:center}.recap-nofigure{margin:0 0 20px;font-size:12px;font-style:italic;color:var(--muted)}.recap-section{margin-bottom:24px}.recap-h2{margin:0 0 12px;padding-bottom:6px;border-bottom:1px solid var(--line);font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--brand-700)}.recap-count{color:var(--muted);font-weight:600;letter-spacing:0}.recap-h3{margin:14px 0 8px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--brand)}.recap-floors{display:flex;flex-wrap:wrap;gap:10px}.recap-floor-chip{display:flex;flex-direction:column;gap:2px;min-width:150px;padding:10px 14px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface-alt)}.recap-floor-name{font-size:12px;font-weight:700;color:var(--ink)}.recap-floor-dims{font-size:13px;font-weight:600;color:var(--brand)}.recap-floor-count{font-size:11px;color:var(--muted)}.recap-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.recap-item{display:flex;gap:14px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-card);background:#fff}.recap-item-num{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;padding:0 6px;border-radius:999px;background:var(--brand);color:#fff;font-size:12.5px;font-weight:700}.recap-item-body{flex:1 1;min-width:0}.recap-item-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:8px}.recap-item-type{font-size:14px;font-weight:700;color:var(--ink)}.recap-item-title{font-size:12.5px;font-weight:600;color:var(--brand)}.recap-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));grid-gap:6px 18px;gap:6px 18px;margin:0}.recap-field{display:flex;justify-content:space-between;gap:10px;padding-bottom:3px;border-bottom:1px dotted var(--line-soft);font-size:12px}.recap-field dt{margin:0;color:var(--text)}.recap-field dd{margin:0;color:var(--ink);font-weight:700;text-align:right;white-space:nowrap}.recap-empty{margin:0;font-size:12px;font-style:italic;color:var(--muted)}.recap-summary-list{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:0}.recap-summary-list li{display:flex;justify-content:space-between;gap:14px;padding:7px 0;border-bottom:1px solid var(--line-soft);font-size:13px}.recap-summary-list span{color:var(--text)}.recap-summary-list strong{color:var(--ink)}.recap-bytype{display:flex;flex-wrap:wrap;gap:8px}.recap-bytype-chip{padding:4px 12px;border:1px solid var(--brand-100);border-radius:999px;background:var(--brand-50);font-size:12px;font-weight:600;color:var(--brand)}.recap-foot{display:flex;justify-content:space-between;gap:14px;margin-top:28px;padding-top:14px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}@media print{body,html{overflow:visible!important;height:auto!important}body>:not(.recap-portal){display:none!important}.recap-portal{position:static!important;inset:auto!important;display:block!important;overflow:visible!important;padding:0!important;background:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.recap-toolbar{display:none!important}.recap-sheet{width:auto!important;max-width:none!important;margin:0!important;padding:0!important;border-radius:0!important;box-shadow:none!important}.recap-figure,.recap-floor-chip,.recap-head,.recap-item,.recap-summary{page-break-inside:avoid;break-inside:avoid}.recap-h2,.recap-h3{page-break-after:avoid;break-after:avoid}@page{size:A4;margin:14mm}}@media (max-width:720px){.recap-toolbar-hint{display:none}}.selection-toolbar{position:absolute;left:50%;bottom:20px;transform:translateX(-50%);display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-panel);border-radius:var(--radius-panel);padding:10px 14px;z-index:3}.sel-label{font-size:13px;font-weight:600;color:var(--ink)}.sel-hint{font-size:12px;color:var(--muted)}.rotation-panel{position:absolute;left:16px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:10px;width:148px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-panel);border-radius:var(--radius-panel);padding:14px 12px;z-index:4}.rot-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink)}.rot-presets{display:flex;gap:8px}.rot-btn{flex:1 1}.rot-field{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:600;color:var(--text)}.rot-input{display:flex;align-items:center;gap:5px}.rot-input input{width:100%;font-size:14px;font-weight:600;color:var(--ink);text-align:right;padding:7px 8px;border:1px solid var(--line);border-radius:var(--radius-btn);background:var(--surface-alt)}.rot-input input:focus{outline:none;border-color:var(--brand);background:#fff}.rot-unit{font-size:13px;font-weight:600;color:var(--text)}.rot-hint{font-size:11px;line-height:1.35;color:var(--muted)}.trash-zone{position:absolute;right:20px;bottom:20px;display:flex;flex-direction:column;align-items:center;gap:4px;width:116px;padding:12px 10px;border-radius:var(--radius-panel);background:rgba(255,255,255,.85);border:1px dashed #c7ccd4;color:var(--muted);pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:3;opacity:.55;transition:transform .12s ease,opacity .12s ease,background .12s ease,border-color .12s ease,color .12s ease}.trash-zone .trash-icon{font-size:26px;line-height:1}.trash-zone .trash-label{font-size:11px;text-align:center}.trash-zone.active{opacity:1;border-color:var(--danger-border);background:var(--surface);box-shadow:var(--shadow-panel)}.trash-zone.over{border-color:var(--danger);color:#c0392b;transform:scale(1.1)}.notice,.trash-zone.over{background:var(--danger-bg)}.notice{position:absolute;left:50%;bottom:78px;transform:translateX(-50%);display:flex;align-items:center;gap:8px;max-width:82%;color:var(--danger-text);border:1px solid var(--danger-border);box-shadow:0 6px 20px rgba(60,20,20,.14);border-radius:var(--radius-panel);padding:10px 14px;font-size:13px;font-weight:600;z-index:5;pointer-events:none;animation:notice-in .18s ease-out}.notice-icon{font-size:15px;line-height:1}@keyframes notice-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.login{position:fixed;inset:0;background:var(--bg)}.login__scroll{position:absolute;inset:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.login__grid{display:grid;grid-template-columns:1.05fr 1fr;grid-gap:18px;gap:18px;min-height:100%;padding:18px}.login__hero{position:relative;overflow:hidden;min-height:440px;border-radius:var(--radius-card);background:var(--brand-dark)}.login__hero-img{object-fit:cover;object-position:center}.login__hero-scrim{position:absolute;inset:0;background:linear-gradient(0deg,rgba(15,26,38,.92) 0,rgba(15,26,38,.6) 24%,rgba(15,26,38,.12) 48%,rgba(15,26,38,0) 66%)}.login__hero-overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:48px}.login__hero-title{margin:0;max-width:15ch;color:#fff;font-size:clamp(28px,3.4vw,50px);font-weight:800;line-height:1.06;letter-spacing:-.01em;text-shadow:0 1px 24px rgba(0,0,0,.35)}.login__panel{display:flex;flex-direction:column;padding:30px 40px 40px;background:var(--surface);border-radius:var(--radius-card);box-shadow:var(--shadow-sm)}.login__brandbar{display:flex;align-items:center;gap:14px;flex-shrink:0}.login__brandbar-logo{height:30px;width:auto}.login__brandbar-sep{width:1px;height:22px;background:var(--line)}.login__brandbar-label{font-size:13px;font-weight:600;color:var(--muted)}.login__body{flex:1 1;display:grid;place-items:center;padding:24px 0}.login__card{width:100%;max-width:400px}.login__title{margin:0 0 6px;font-size:26px;font-weight:800;letter-spacing:-.01em;color:var(--ink)}.login__sub{margin:0 0 28px;font-size:14px;line-height:1.5;color:var(--text)}.field{margin-bottom:18px}.field__row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.field__label{display:block;margin-bottom:7px;font-size:13px;font-weight:600;color:var(--ink)}.field__link{padding:0;font-family:inherit;font-size:12px;font-weight:600;color:var(--brand);background:none;border:none;cursor:pointer}.field__link:hover{color:var(--brand-600);text-decoration:underline}.field__link:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:2px}.field__wrap{position:relative}.field__input{width:100%;height:46px;padding:0 13px;font-family:inherit;font-size:15px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-btn);transition:border-color .14s ease,box-shadow .14s ease}.field__wrap .field__input{padding-right:46px}.field__input::placeholder{color:var(--muted)}.field__input:hover{border-color:var(--brand-200)}.field__input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(81,138,190,.22)}.field__input[aria-invalid=true]{border-color:var(--danger)}.field__input[aria-invalid=true]:focus{box-shadow:0 0 0 3px rgba(229,72,77,.22)}.field__toggle{position:absolute;top:50%;right:4px;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0;color:var(--muted);background:none;border:none;border-radius:var(--radius-btn);cursor:pointer;transition:color .14s ease,background .14s ease}.field__toggle:hover{color:var(--brand);background:var(--brand-50)}.field__toggle:focus-visible{outline:none;color:var(--brand);box-shadow:0 0 0 3px rgba(81,138,190,.22)}.field__toggle svg{display:block;width:20px;height:20px}.login__msg{min-height:20px;margin:2px 0 14px;font-size:13px;line-height:1.4}.login__msg--error{color:var(--danger-text)}.login__msg--info{color:var(--text)}.login__submit{width:100%;height:46px;font-size:14px}.login__submit .btn-arrow{transition:transform .14s ease,color .14s ease}.login__submit:hover:not(:disabled) .btn-arrow{color:var(--accent)}.login__foot{margin:22px 0 0;font-size:13px;text-align:center;color:var(--muted)}.login__foot-link{color:var(--brand);font-weight:600;text-decoration:none}.login__foot-link:hover{text-decoration:underline}@media (max-width:900px){.login__grid{grid-template-columns:1fr;gap:12px;padding:12px}.login__hero{min-height:190px;max-height:230px}.login__hero-overlay{padding:26px}.login__hero-title{font-size:clamp(24px,6vw,32px)}.login__panel{padding:26px 22px 34px}.field__input{font-size:16px}}@media (prefers-reduced-motion:reduce){.field__input,.field__toggle,.login__submit .btn-arrow{transition:none}}