.theme-toggle{background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;padding:6px 12px;font-size:20px;cursor:pointer;line-height:1;color:var(--text-primary);transition:background .2s,border-color .2s,color .2s}.theme-toggle:hover{border-color:var(--accent)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:var(--bg-panel);border-radius:10px;padding:24px;min-width:300px;max-width:400px;box-shadow:0 8px 32px #0003;position:relative}.modal-close{position:absolute;top:12px;right:12px;background:none;border:none;font-size:20px;line-height:1;color:var(--text-muted);cursor:pointer;padding:4px 8px;border-radius:4px}.modal-close:hover{color:var(--text-primary);background:var(--bg-hover)}.modal-content h3{margin:0 0 12px;font-size:16px}.modal-content p{margin:0 0 16px;font-size:14px;color:var(--text-secondary)}.modal-actions{display:flex;gap:8px}.modal-actions button{flex:1;white-space:nowrap}.panel-input{flex:0 0 380px;position:sticky;top:24px;max-height:calc(100vh - 48px);overflow-y:auto}.panel-input h2{margin-bottom:8px}.panel-input h2~h2,.panel-input .section-header~.section-header,.panel-input .section-header~h2,.panel-input h2~.section-header{margin-top:25px}.section-header{display:flex;align-items:center;justify-content:space-between}.section-header h2{margin:0}.section-header .btn-reset{background:none;color:var(--text-muted);font-size:12px;padding:2px 8px;gap:4px}.section-header .btn-reset:hover{color:#fff;background:var(--danger)}.pieces-list{margin:8px 0}.piece-row{display:flex;align-items:flex-end;gap:6px;padding:4px 0;border-bottom:1px solid var(--border-row)}.piece-row .btn-remove{margin-bottom:4px}.piece-row:last-child{border-bottom:none}.piece-x{font-size:14px;color:var(--text-faint);padding-bottom:6px}.piece-error{font-size:11px;color:var(--danger);padding:0 0 4px}@media(max-width:600px){.panel-input{padding:14px!important}.form-row,.piece-row{flex-wrap:wrap}}.btn-add{background:var(--accent);color:#fff;height:40px;padding:0 16px;font-size:14px;margin-top:4px;width:100%}.btn-add:hover{background:var(--accent-hover)}.btn-calculate{background:var(--success);color:#fff;height:40px;padding:0 16px;font-size:14px;margin-top:12px;width:100%}.btn-calculate:hover{background:var(--success-hover)}.btn-remove{background:none;color:var(--btn-remove);padding:2px 6px;font-size:16px;line-height:1}.btn-remove:hover{color:var(--danger)}.roll-layout{margin-top:25px;margin-bottom:24px}.roll-header{font-size:15px;font-weight:600;margin-bottom:8px;color:var(--text-secondary)}.roll-svg{border:1px solid var(--border-light);border-radius:4px;background:var(--bg-svg);width:60%;height:auto}.roll-layout.roll-compact .roll-svg{width:48%}.piece-rect{stroke:var(--piece-stroke);stroke-width:1}.piece-label{font-size:14px;fill:var(--piece-label);text-anchor:middle;dominant-baseline:central;pointer-events:none}.cut-line{stroke:var(--danger);stroke-width:1;stroke-dasharray:4 2}.cut-line-major{stroke:var(--danger-hover);stroke-width:2.5;stroke-dasharray:8 3}.roll-boundary{fill:none;stroke:var(--piece-stroke);stroke-width:2}.used-area{fill:none;stroke:var(--success);stroke-width:2;stroke-dasharray:6 3}.result-column{flex:1;min-width:0;background:var(--bg-panel);border-radius:8px;padding:16px;box-shadow:var(--shadow)}.result-column.result-highlight{box-shadow:var(--shadow-highlight);border:1px solid var(--success)}.result-column.result-editing{box-shadow:var(--shadow-editing);border:1px solid var(--accent)}.result-header{margin-bottom:8px}.result-header h3{font-size:16px;margin-bottom:2px}.result-subtitle{font-size:14px;color:var(--success);font-weight:500}.result-subtitle-warning{font-size:14px;color:var(--danger);font-weight:500}.stats{margin-top:8px;margin-bottom:12px;padding:10px;background:var(--bg-stats);border-radius:6px;font-size:14px;line-height:1.8}.stats strong{color:var(--text-strong)}.edit-hint{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-muted);margin:8px 0 4px}.edit-toolbar{display:flex;gap:6px;margin:8px 0;flex-wrap:wrap;align-items:stretch}.btn-edit{background:var(--accent);color:#fff;height:40px;padding:0 16px;font-size:14px}.btn-edit:hover{background:var(--accent-hover)}.btn-action{background:var(--accent);color:#fff;font-size:14px;height:40px;padding:0 16px}.btn-action:hover{background:var(--accent-hover)}.btn-reset{background:var(--danger);color:#fff;font-size:14px;height:40px;padding:0 16px}.btn-reset:hover{background:var(--danger-hover)}.btn-done{background:var(--success);color:#fff;font-size:14px;height:40px;padding:0 16px}.btn-done:hover{background:var(--success-hover)}@media(max-width:600px){.result-column{padding:12px}.edit-toolbar{gap:4px}.edit-toolbar button{font-size:13px;padding:0 10px;height:36px}}.segmented-control{display:none;background:var(--bg-stats);border-radius:10px;padding:3px;gap:2px;margin-bottom:12px}.segmented-btn{flex:1;padding:8px 12px;border:none;border-radius:8px;font-size:13px;font-weight:500;background:transparent;color:var(--text-muted);cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:6px;height:auto}.segmented-btn.segmented-active{background:var(--bg-panel);color:var(--text-primary);box-shadow:0 1px 3px #0000001a;font-weight:600}.segmented-badge{font-size:11px;padding:1px 6px;border-radius:10px;background:var(--success);color:#fff;font-weight:600}@media(max-width:1024px){.segmented-control{display:flex}}.app{max-width:1600px;margin:0 auto;padding:24px}.app-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.app-title{display:flex;align-items:center;gap:12px}.app-logo{height:36px;width:auto}.app-header h1{font-size:24px}.panels{display:flex;gap:24px;align-items:flex-start}.panel-results{flex:1;min-width:0}.results-compare{display:flex;gap:16px}.result-tab{flex:1;min-width:0;display:flex}.result-tab>*{flex:1;min-width:0}@media(max-width:1024px){.app{padding:16px}.app-header{margin-bottom:16px}.panels{flex-direction:column}.panel-input{position:static!important;flex:none!important;width:100%!important}.results-compare{flex-direction:column;gap:0}.result-tab{display:none}.result-tab.result-tab-active{display:flex}}@media(max-width:600px){.app{padding:10px}.app-header h1{font-size:20px}.app-header{margin-bottom:12px}}:root{--bg-page: #f5f5f5;--bg-panel: #fff;--bg-stats: #f0f7ff;--bg-svg: #fafafa;--bg-roll: #fff;--text-primary: #333;--text-secondary: #555;--text-muted: #888;--text-placeholder: #999;--text-faint: #aaa;--text-strong: #2c3e50;--border: #ccc;--border-light: #ddd;--border-row: #f0f0f0;--accent: #4a90d9;--accent-hover: #3a7bc8;--accent-focus-ring: rgba(74, 144, 217, .2);--success: #27ae60;--success-hover: #219a52;--success-highlight: rgba(39, 174, 96, .3);--danger: #e74c3c;--danger-hover: #c0392b;--danger-ring: rgba(231, 76, 60, .2);--danger-fill: rgba(231, 76, 60, .4);--btn-remove: #ccc;--shadow: 0 1px 3px rgba(0, 0, 0, .1);--shadow-highlight: 0 1px 6px var(--success-highlight);--shadow-editing: 0 1px 6px var(--accent-focus-ring);--piece-stroke: #333;--piece-label: #333;--piece-label-muted: #888;--dimension-label: #666}[data-theme=dark]{--bg-page: #1a1a2e;--bg-panel: #16213e;--bg-stats: #1a2744;--bg-svg: #0f1a2e;--bg-roll: #1c2a45;--text-primary: #e0e0e0;--text-secondary: #b0b0b0;--text-muted: #808080;--text-placeholder: #666;--text-faint: #666;--text-strong: #c8d6e5;--border: #3a4a5e;--border-light: #2a3a4e;--border-row: #2a3a4e;--accent: #5a9fe6;--accent-hover: #4a8fd6;--accent-focus-ring: rgba(90, 159, 230, .3);--success: #2ecc71;--success-hover: #27ae60;--success-highlight: rgba(46, 204, 113, .25);--danger: #e74c3c;--danger-hover: #c0392b;--danger-ring: rgba(231, 76, 60, .25);--danger-fill: rgba(231, 76, 60, .4);--btn-remove: #555;--shadow: 0 1px 3px rgba(0, 0, 0, .3);--shadow-highlight: 0 1px 6px var(--success-highlight);--shadow-editing: 0 1px 6px var(--accent-focus-ring);--piece-stroke: #aaa;--piece-label: #222;--piece-label-muted: #555;--dimension-label: #999}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Montserrat,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-page);color:var(--text-primary);transition:background .2s,color .2s}h2{font-size:18px;margin-bottom:12px}button{padding:6px 14px;border:none;border-radius:4px;font-size:14px;cursor:pointer;transition:background .15s;display:inline-flex;align-items:center;justify-content:center;gap:4px}.form-row{display:flex;gap:12px;margin-bottom:12px;align-items:end}.form-group{display:flex;flex-direction:column;gap:4px}.form-group label{font-size:12px;color:var(--text-muted)}.form-group input{width:80px;padding:5px 6px;border:1px solid var(--border);border-radius:4px;font-size:14px;background:var(--bg-panel);color:var(--text-primary);transition:background .2s,border-color .2s,color .2s}.form-group input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-focus-ring)}.input-error{border-color:var(--danger)!important;box-shadow:0 0 0 2px var(--danger-ring)!important}.panel{background:var(--bg-panel);border-radius:8px;padding:20px;box-shadow:var(--shadow)}
