:root{--ink: #1c1915;--muted: #5e574c;--paper: #efeae2;--panel: #f7f4ee;--white: #fffdf9;--line: #e3dcd0;--line-strong: #cfc6b6;--accent: #c44722;--accent-dark: #8e3016;--green: #1f6a56;--green-soft: #e7f3ee;--warn: #8d2b2b;--warn-soft: #f8e8e4;--sidebar: #1c1915;--side-text: #f4efe6;--side-dim: #b3aa9d;--shadow: 0 16px 40px rgba(48, 36, 18, .08);--sans: "Outfit", system-ui, sans-serif;--serif: "Newsreader", Georgia, serif;--mono: "IBM Plex Mono", ui-monospace, monospace;color:var(--ink);background:var(--paper);font-family:var(--sans);font-size:15px;line-height:1.45}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:var(--paper)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--sidebar);color:var(--side-text);display:flex;flex-direction:column;padding:22px 16px 16px;position:sticky;top:0;height:100vh}.brand{display:flex;gap:12px;align-items:center;padding:0 8px 22px}.brand strong{font-family:var(--serif);font-size:28px;font-weight:500;letter-spacing:-.03em;display:block;line-height:1}.brand span{color:var(--side-dim);font-size:12px}.mark{width:34px;height:34px;flex:none}.nav{display:flex;flex-direction:column;gap:4px}.nav-btn,.side-link{background:transparent;color:var(--side-text);border:0;text-align:left;border-radius:10px;padding:10px 12px}.nav-btn.on,.nav-btn:hover,.side-link:hover{background:#ffffff0f}.nav-btn.on{background:#c4472238}.nav-btn small,.side-link small{display:block;color:var(--side-dim);font-size:12px}.side-session{margin-top:auto;display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:14px 8px 0;color:var(--side-dim);font-size:12px}.side-session span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-session button{background:transparent;border:0;color:var(--side-text);padding:0;flex:none}.side-footer{margin-top:8px;padding:0 8px;color:var(--side-dim);font-size:12px;display:flex;flex-direction:column;gap:8px}.side-credit{margin:10px 8px 0;color:var(--side-dim);font-size:12px}.side-footer button{background:transparent;border:0;color:var(--side-text);text-align:left;padding:0}.workspace.locked input,.workspace.locked select,.workspace.locked textarea{pointer-events:none}.side-worker{display:flex;flex-direction:column;gap:4px;color:var(--side-dim);font-size:12px}.side-worker select{background:transparent;color:var(--side-text);border:1px solid rgba(255,255,255,.28);border-radius:8px;padding:6px 8px}.company-card h2{font-family:var(--serif);font-size:28px;font-weight:500;margin:0 0 8px}.worker-row{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(180px,1.2fr) auto auto auto;gap:12px;align-items:center;margin:8px 0}.worker-row label{display:flex;gap:6px;align-items:center}.main{min-width:0;padding:22px 28px 48px}.notice{background:var(--ink);color:var(--side-text);padding:10px 14px;border-radius:10px;margin-bottom:14px}.hero{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;margin-bottom:22px}.hero h1,.topbar h1{font-family:var(--serif);font-weight:500;font-size:42px;letter-spacing:-.03em;margin:0;line-height:1}.lede{max-width:460px;color:var(--muted);margin:8px 0 0}.modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:8px 0 22px}.mode-card{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:14px 16px}.mode-card strong{display:block;margin-bottom:4px}.mode-card p{margin:0;color:var(--muted);font-size:13px}.job-grid,.library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.job-card,.lib-card,.mat-card,.sheet-card,.quote,.panel{background:var(--white);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.job-card,.lib-card{padding:16px 16px 14px;text-align:left;width:100%}.job-card{display:flex;flex-direction:column;gap:8px}.job-card h2,.lib-card h2,.mat-card h2{margin:0;font-size:20px;font-family:var(--serif);font-weight:500}.meta{color:var(--muted);font-size:13px}.stat-row{display:flex;flex-wrap:wrap;gap:8px}.pill{font-family:var(--mono);font-size:12px;background:var(--paper);border-radius:999px;padding:4px 8px}.pill.good{background:var(--green-soft);color:var(--green)}.card-actions{display:flex;gap:8px}.card-hit{background:none;border:0;padding:0;text-align:left;width:100%}.topbar{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:14px}.title-edit,.text-input,.num,.select,textarea{background:var(--white);border:1px solid var(--line-strong);border-radius:10px;padding:8px 10px}.title-edit{font-family:var(--serif);font-size:34px;font-weight:500;width:min(520px,100%);letter-spacing:-.03em}.inline-fields{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.customer-field{position:relative;min-width:min(100%,280px);flex:1}.customer-field>.text-input{width:100%}.customer-menu{position:absolute;z-index:30;top:calc(100% + 4px);left:0;width:min(460px,86vw);background:var(--white);border:1px solid var(--line-strong);border-radius:12px;box-shadow:var(--shadow);max-height:340px;overflow:auto;padding:6px}.customer-menu .hit{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;text-align:left;background:transparent;border:0;border-radius:8px;padding:8px 10px}.customer-menu .hit.on,.customer-menu .hit:hover{background:var(--paper)}.menu-label{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:8px 10px 2px}.menu-note,.hit-sub{color:var(--muted);font-size:12px}.menu-note{padding:6px 10px 8px}.hit-sub{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.requisites{margin-top:8px}.customer-add{padding:16px;margin-bottom:16px;display:flex;flex-direction:column;gap:12px}.customer-list{display:flex;flex-direction:column;gap:14px}.customer-card{padding:16px;display:flex;flex-direction:column;gap:10px}.customer-card-head{display:flex;gap:8px;align-items:center}.customer-card-head .text-input{flex:1;font-size:18px}.customer-card .text-input{width:100%}.customer-card label,.span-2{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.span-2{grid-column:span 2}.pill{border:0}.tabs{display:flex;gap:6px;margin-bottom:14px}.tab{border:1px solid transparent;background:transparent;border-radius:999px;padding:7px 12px;color:var(--muted)}.tab.on{background:var(--ink);color:#fff}.toolbar,.split,.stats{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.toolbar,.stats{margin-bottom:12px}.btn{border:1px solid var(--line-strong);background:var(--white);border-radius:999px;padding:8px 12px}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-dark)}.btn.ghost{background:transparent}.btn.warn{color:var(--warn)}.btn:disabled{opacity:.45;cursor:not-allowed}.grow{flex:1;min-width:160px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px;background:var(--white)}table{width:100%;border-collapse:collapse;min-width:860px}th{text-align:left;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-weight:500}th,td{padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:middle}tr.group td{background:#f3eee6;font-weight:600}.name-cell{display:flex;gap:8px;align-items:center}.thumb{width:28px;height:28px;flex:none}.thumb path{fill:var(--accent);fill-rule:evenodd}.num{width:88px;font-family:var(--mono);font-size:13px}.figure-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin-bottom:12px;padding:10px;background:var(--white);border:1px solid var(--line);border-radius:16px}.figure-bar label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.qty-step{display:flex;align-items:center;gap:4px}.qty-step .num{width:52px;text-align:center}.qty-step button{width:26px;height:26px;border-radius:8px;border:1px solid var(--line-strong);background:var(--white);padding:0}.select{max-width:180px}.checks{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--muted)}.edges{display:grid;grid-template-columns:repeat(4,22px);gap:3px}.edge{width:22px;height:22px;border-radius:6px;border:1px solid var(--line-strong);background:var(--white);font-family:var(--mono);font-size:11px;padding:0}.edge.on{background:var(--ink);color:#fff;border-color:var(--ink)}.icon-btn{border:0;background:transparent;padding:4px 6px;color:var(--muted)}.details{background:#fbf8f3}.detail-grid{display:grid;grid-template-columns:220px 1fr 1fr;gap:16px;padding:8px}.shape-editor{background:var(--paper);border-radius:12px;padding:8px}.shape-editor svg{width:100%;height:180px;background:#fff;border-radius:8px}.hole-row{display:flex;gap:6px;margin-bottom:6px}.banner{background:var(--green-soft);color:var(--green);border-radius:12px;padding:10px 12px;margin-bottom:12px}.banner.warn{background:var(--warn-soft);color:var(--warn)}.segment{display:inline-flex;background:var(--white);border:1px solid var(--line);border-radius:999px;padding:3px}.seg{border:0;background:transparent;border-radius:999px;padding:6px 10px;color:var(--muted)}.seg.on{background:var(--ink);color:#fff}.stat b{font-family:var(--mono);font-weight:500}.layout-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:14px;align-items:start}.sheet-stage{background-color:#d5ddd8;background-image:linear-gradient(rgba(255,255,255,.35) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.35) 1px,transparent 1px);background-size:22px 22px;border-radius:16px;padding:16px;overflow:auto;border:1px solid #c5d0ca}.sheet-svg{display:block;background:#fff;box-shadow:var(--shadow)}.thumbs{display:flex;gap:8px;overflow:auto;padding-bottom:8px}.thumb-btn{border:1px solid var(--line);background:var(--white);border-radius:12px;padding:6px;min-width:96px}.thumb-btn.on{border-color:var(--accent)}.thumb-btn svg{width:100%;height:64px;display:block}.thumb-btn span{display:block;font-size:11px;color:var(--muted);margin-top:4px}.cut-list{background:var(--white);border:1px solid var(--line);border-radius:16px;padding:12px}.cut-list h3{margin:0 0 8px;font-family:var(--serif);font-weight:500;font-size:22px}.cut-list ol,.cut-list ul{margin:0;padding-left:18px}.cut-list li{margin:4px 0;font-family:var(--mono);font-size:12px}.remnants{display:flex;flex-direction:column;gap:6px;margin-top:10px}.compare{width:100%;border-collapse:collapse;min-width:0}.compare td,.compare th{border-bottom:1px solid var(--line);font-size:13px}.quote{max-width:820px;padding:32px 36px 40px}.quote header{display:flex;justify-content:space-between;gap:16px;border-bottom:3px solid var(--accent);padding-bottom:12px}.quote h2{font-family:var(--serif);font-size:36px;margin:0;font-weight:500}.company-id{display:flex;gap:14px;align-items:center}.company-logo{width:56px;height:56px;object-fit:contain;background:#fff;border-radius:8px}.logo-preview{display:flex;gap:12px;align-items:center}.field .select{width:100%;max-width:none}.quote table{min-width:0}.quote .total{font-size:22px}.quote-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:16px 0}.quote-form label,.stack label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.stack{display:flex;flex-direction:column;gap:8px}textarea{min-height:72px;width:100%;resize:vertical}.labels{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}.label{border:1px dashed var(--line-strong);border-radius:12px;background:#fff;padding:10px 12px;break-inside:avoid;display:grid;grid-template-columns:1fr 64px;gap:8px;min-height:118px}.label .shop{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.label strong{display:block;font-size:16px}.label .dims{font-family:var(--mono);font-size:13px}.mat-grid{display:flex;flex-direction:column;gap:14px}.mat-card{padding:16px}.stock-table input{width:100%}.swatch{width:36px;height:36px;border:0;padding:0;background:transparent}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c191575;display:grid;place-items:center;padding:20px;z-index:20}.modal{width:min(760px,100%);max-height:min(88vh,860px);overflow:auto;background:var(--panel);border-radius:18px;padding:18px}.modal h2{font-family:var(--serif);font-weight:500;margin:0 0 12px}.material-library{padding:16px;margin-bottom:22px}.material-library h2,.section-title{font-family:var(--serif);font-weight:500;margin:0}.section-title{font-size:28px;margin:8px 0 12px}.material-library .text-input{min-width:min(100%,240px)}.preset-head{display:flex;gap:10px;align-items:center}.preset-swatch{width:18px;height:18px;border-radius:6px;border:1px solid var(--line-strong);flex:none}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.field .text-input{width:100%;color:var(--ink);font-size:15px}.span-all{grid-column:1 / -1}.company-card{padding:16px;display:flex;flex-direction:column;gap:14px}.company-search{position:relative;max-width:560px}.company-search .customer-menu{width:min(560px,86vw)}.quote h3{font-family:var(--serif);font-weight:500;font-size:22px;margin:22px 0 8px}.preview{margin-top:12px;font-family:var(--mono);font-size:12px}.import-list{display:grid;gap:8px;margin-top:12px}.import-card{display:grid;grid-template-columns:88px 1fr;gap:10px;align-items:center;font-family:var(--mono);font-size:12px}.import-card svg{width:88px;height:64px;background:var(--white);border:1px solid var(--line);border-radius:8px}.import-card path{fill:var(--accent);fill-opacity:.35;stroke:var(--ink);stroke-width:1.5px;vector-effect:non-scaling-stroke;fill-rule:evenodd}.empty{border:1px dashed var(--line-strong);border-radius:16px;padding:28px;background:#ffffff73;color:var(--muted)}@media (max-width: 980px){.app{grid-template-columns:1fr}.sidebar{position:sticky;top:0;height:auto;z-index:5;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px;overflow:visible}.brand{padding:0 8px 0 0}.brand span,.side-footer,.nav-btn small{display:none}.side-session{margin-top:0;margin-left:auto;padding:0 8px}.side-credit{margin:0 8px}.brand strong{font-size:22px}.nav{flex-direction:row;flex-wrap:wrap}.nav-btn{padding:8px 10px}.hero,.topbar,.layout-grid,.detail-grid,.quote-form,.form-grid,.worker-row{display:block}.span-all{grid-column:auto}.modes{grid-template-columns:1fr}.title-edit{font-size:28px}.main{padding:16px}}.account-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:28px 16px;background:#e7eef2}.account-card{width:min(440px,100%);background:var(--white);border-radius:28px;box-shadow:0 24px 60px #1c28301f;padding:36px 32px 28px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px}.account-card h1{font-family:var(--sans);font-size:34px;font-weight:700;margin:0;letter-spacing:-.03em}.account-brand{width:72px;height:72px;border-radius:18px;background:var(--ink);color:var(--side-text);display:flex;align-items:center;justify-content:center}.account-brand .mark{width:40px;height:40px}.account-kicker{margin:0;font-weight:650}.account-offer{margin:0;color:var(--green);font-weight:650}.account-card .lede,.account-foot,.account-version,.account-hint p{margin:0}.account-card .lede,.account-foot,.account-hint p{color:var(--muted)}.account-tabs{display:grid;grid-template-columns:1fr 1fr;width:100%;background:#eef3f6;border-radius:14px;padding:4px;gap:4px}.account-tabs button{border:0;background:transparent;border-radius:11px;min-height:42px;color:var(--muted);font-weight:650}.account-tabs button.on{background:var(--white);color:var(--ink);box-shadow:0 1px 2px #1c283014}.account-email,.account-go,.code-digits,.account-hint,.account-code{width:100%}.account-email input{width:100%;min-height:48px}.account-go{min-height:48px;border-radius:12px;font-weight:650}.account-code{margin:0;padding:12px;background:var(--green-soft);border-radius:12px;color:var(--green);font-weight:650}.account-hint{background:#f3fbf7;border:1px solid #d7eee4;border-radius:14px;padding:14px 16px;text-align:center}.account-hint strong{color:var(--green)}.account-foot,.account-version{font-size:13px}.account-card .notice{width:100%;text-align:left}.signin-wrap{display:flex;justify-content:center}.signin-card{width:min(440px,100%);display:flex;flex-direction:column;gap:14px}.signin-card h1{font-family:var(--serif);font-size:36px;font-weight:500;margin:0}.signin-code{margin:0;padding:12px;background:var(--green-soft);border-radius:12px;color:var(--green);font-weight:650}.code-digits{display:flex;gap:8px}.code-digits input{width:48px;text-align:center;font-size:24px;padding:8px 0}.plan-sheet{margin-top:12px;max-width:1100px}.plan-table input,.plan-table select{width:100%;max-width:none}.plan-table select{min-width:180px}.plan-table input[type=date]{min-width:148px}.plan-table tr.done{opacity:.55}.plan-table tr.packed{background:#f6f1e4}.plan-table tr.pickup{background:var(--green-soft)}.plan-table tr.rush{background:var(--warn-soft)}.plan-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0 12px}.plan-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.plan-day{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:8px;min-height:148px;display:flex;flex-direction:column;gap:8px}.plan-day.today{border-color:var(--accent)}.plan-day.on{box-shadow:inset 0 0 0 2px var(--accent)}.plan-day-head{background:transparent;border:0;text-align:left;padding:0;display:flex;justify-content:space-between;align-items:baseline}.plan-day-head span{color:var(--muted);font-size:12px}.plan-day-head strong{font-family:var(--serif);font-size:22px;font-weight:500}.plan-chip{background:var(--paper);border-radius:10px;padding:8px;display:flex;flex-direction:column;gap:4px;align-items:flex-start}.plan-chip button{background:transparent;border:0;padding:0;text-align:left;font-weight:650}.plan-chip .btn{font-weight:500}.plan-chip.rush{background:var(--warn-soft)}.plan-chip.high{background:#f6f1e4}.plan-chip.quiet{opacity:.7}.plan-unscheduled{margin-top:14px}.plan-unscheduled h2{font-family:var(--serif);font-weight:500;font-size:22px;margin:0 0 8px}.plan-unscheduled .plan-chip{display:inline-flex;margin:0 8px 8px 0}@media (max-width: 980px){.plan-week{grid-template-columns:1fr}}.printonly{display:none}.quote header.printonly{display:none}@media print{.noprint{display:none!important}.printonly{display:inline}.quote header.printonly{display:flex}.app{display:block}.main{padding:0}body{background:#fff}.sheet-card,.label,.quote{box-shadow:none}.sheet-page{break-after:page}.sheet-stage{background:#fff;border:0;padding:0;zoom:1!important}}
