:root{--bg: #f7f2e8;--surface: #fffdf8;--ink: #3c2a21;--ink-soft: #7a6a5d;--line: #e3d9c8;--accent: #8a4f5f;--accent-ink: #fff6f0;--danger: #a04030;--good: #4c7a4c;--radius: 10px;--shadow: 0 2px 10px rgba(70, 50, 30, .08)}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{font-family:Georgia,Times New Roman,serif;background:var(--bg);color:var(--ink);font-size:17px;line-height:1.45;overscroll-behavior:none}button,input,select{font:inherit;color:inherit}h1{font-size:1.7rem;margin:0}h2{font-size:1.05rem;margin:0}.muted{color:var(--ink-soft)}.small{font-size:.85rem}.hint{font-size:.82rem;color:var(--ink-soft);margin:.5rem 0 0}.hint.warn{color:var(--danger)}.btn{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius);padding:.45rem .9rem;cursor:pointer;transition:background .12s ease}.btn:hover:not(:disabled){background:#f3ead9}.btn:disabled{opacity:.45;cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-primary:hover:not(:disabled){background:#7a4353}.btn-danger{color:var(--danger)}.btn-small{padding:.2rem .6rem;font-size:.85rem}.btn-block{width:100%}.btn-link{border:none;background:none;color:var(--accent);cursor:pointer;text-decoration:underline;padding:.25rem;margin-top:.75rem}.btn-icon{border:none;background:none;cursor:pointer;padding:.3rem .45rem;border-radius:6px;color:var(--ink-soft)}.btn-icon:hover{background:#f3ead9;color:var(--ink)}.centered-page{min-height:100%;display:flex;align-items:center;justify-content:center;padding:1.5rem}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:2.2rem 2.4rem;max-width:400px;width:100%;text-align:center}.login-logo{display:inline-grid;grid-template-columns:26px 26px;gap:4px;margin-bottom:.8rem;transform:rotate(45deg)}.login-logo span{width:26px;height:26px;border-radius:4px;border:1px solid rgba(60,42,33,.2)}.login-card form{text-align:left;margin-top:1.2rem;display:flex;flex-direction:column;gap:.9rem}.login-card label,.dialog label{display:flex;flex-direction:column;gap:.3rem;font-size:.92rem}.login-card input,.dialog input:not([type=color]):not([type=radio]),.dialog select{border:1px solid var(--line);border-radius:8px;padding:.55rem .7rem;background:#fff}.form-error{color:var(--danger);background:#f9e8e2;border-radius:8px;padding:.5rem .8rem;margin:0;font-size:.9rem}.page{max-width:1080px;margin:0 auto;padding:1.4rem 1.6rem 3rem}.app-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.4rem;flex-wrap:wrap}.header-actions{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}.user-email{font-size:.88rem}.quilt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.1rem}.quilt-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column}.quilt-card-new{cursor:pointer;align-items:center;justify-content:center;gap:.4rem;min-height:220px;color:var(--ink-soft);border-style:dashed;background:transparent;box-shadow:none}.quilt-card-new:hover:not(:disabled){color:var(--ink);background:var(--surface)}.new-plus{font-size:2.4rem;line-height:1}.quilt-thumb-button{border:none;padding:.9rem .9rem 0;background:none;cursor:pointer}.quilt-thumb{width:100%;max-height:150px;display:block}.quilt-card-body{padding:.7rem .95rem .95rem;display:flex;flex-direction:column;gap:.15rem}.quilt-card-body h2{font-size:1.1rem}.quilt-card-body p{margin:0}.quilt-card-actions{display:flex;gap:.45rem;margin-top:.6rem}.empty-hint{grid-column:1 / -1}.editor-page{height:100%;display:flex;flex-direction:column;padding:.9rem 1.1rem;gap:.8rem;padding-left:max(1.1rem,env(safe-area-inset-left));padding-right:max(1.1rem,env(safe-area-inset-right));padding-bottom:max(.9rem,env(safe-area-inset-bottom))}.editor-header{margin-bottom:0}.quilt-name-input{flex:1;min-width:160px;max-width:430px;border:1px solid transparent;border-radius:8px;background:transparent;font-size:1.25rem;font-family:inherit;padding:.35rem .6rem}.quilt-name-input:hover,.quilt-name-input:focus{border-color:var(--line);background:var(--surface);outline:none}.save-status{font-size:.85rem;color:var(--ink-soft)}.save-saved{color:var(--good)}.save-error{color:var(--danger);display:inline-flex;align-items:center;gap:.5rem;max-width:340px}.editor-layout{flex:1;display:flex;gap:1rem;min-height:0}.editor-sidebar{width:320px;flex-shrink:0;overflow-y:auto;display:flex;flex-direction:column;gap:.8rem;padding-bottom:1rem}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:.85rem 1rem}.panel-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.panel-toggle{width:100%;border:none;background:none;cursor:pointer;padding:0}.fabric-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.2rem}.fabric-list li{display:flex;align-items:center;gap:.2rem}.fabric-row{flex:1;display:flex;align-items:center;gap:.6rem;border:1px solid transparent;border-radius:8px;background:none;padding:.35rem .5rem;cursor:pointer;text-align:left}.fabric-row:hover{background:#f3ead9}.fabric-row.selected{border-color:var(--accent);background:#f6e9e4}.fabric-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fabric-count{font-size:.8rem;color:var(--ink-soft);background:var(--bg);border-radius:99px;padding:.1rem .5rem}.fabric-swatch{flex-shrink:0;display:block}.eraser-row{margin-top:.4rem;width:100%}.eraser-swatch{width:28px;height:28px;border-radius:5px;border:1px dashed var(--ink-soft);background:repeating-linear-gradient(45deg,#fff,#fff 4px,#eee6d6 4px,#eee6d6 8px);flex-shrink:0}.tool-buttons{display:flex;flex-wrap:wrap;gap:.45rem}.cut-tools{margin-top:.7rem;border-top:1px solid var(--line);padding-top:.6rem}.cut-tools-label{display:block;font-size:.85rem;color:var(--ink-soft);margin-bottom:.35rem}.cut-buttons{display:flex;flex-wrap:wrap;gap:.3rem}.cut-btn{min-width:2.4rem;padding:.35rem .5rem;font-size:1.05rem;line-height:1}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-top:.6rem}.dim-field-wide,.settings-grid .hint{grid-column:1 / -1}.dim-field{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem}.dim-field input,.dim-field select{border:1px solid var(--line);border-radius:8px;padding:.4rem .5rem;background:#fff;width:100%}.grid-area{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:.5rem}.grid-scroll{flex:1;min-height:0;width:100%;display:flex;align-items:flex-start;justify-content:center;overflow:auto;padding:.4rem}.quilt-editor-svg{max-width:100%;max-height:calc(100vh - 160px);max-height:calc(100dvh - 160px);height:auto;cursor:crosshair;background:var(--surface);box-shadow:var(--shadow);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.grid-hint{margin:0}.totals-table{width:100%;border-collapse:collapse;font-size:.88rem}.totals-table th,.totals-table td{padding:.35rem .4rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.totals-table thead th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft)}.totals-table .num{text-align:right;font-variant-numeric:tabular-nums}.totals-table tfoot td{font-weight:700;border-bottom:none}.col-swatch{width:26px;padding-right:0}.cut-size{display:block}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#32231966;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:20}.dialog{background:var(--surface);border-radius:14px;box-shadow:0 12px 40px #28190f40;padding:1.4rem 1.6rem;width:100%;max-width:440px;max-height:90vh;overflow-y:auto}.dialog h2{font-size:1.25rem;margin-bottom:.9rem}.dialog form{display:flex;flex-direction:column;gap:.9rem}.dialog input[type=color]{width:64px;height:40px;padding:2px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer}.pattern-picker{border:1px solid var(--line);border-radius:var(--radius);padding:.6rem .7rem .7rem}.pattern-search{width:100%;border:1px solid var(--line);border-radius:8px;padding:.5rem .7rem;background:#fff;margin-bottom:.5rem}.pattern-chips{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.5rem}.pattern-chips .btn{text-transform:capitalize}.pattern-grid{display:flex;flex-wrap:wrap;gap:.4rem;max-height:40vh;overflow-y:auto}.color2-field{display:flex;align-items:center;gap:.7rem}.auto-toggle{display:inline-flex;align-items:center;gap:.3rem;font-size:.9rem;cursor:pointer}.my-colors{border:1px solid var(--line);border-radius:var(--radius);padding:.6rem .7rem .7rem}.my-colors-header{display:flex;align-items:center;gap:.6rem;margin-bottom:.45rem}.my-colors-edit{margin:0;padding:.1rem .3rem;font-size:.85rem}.my-colors-swatches{display:flex;flex-wrap:wrap;gap:.4rem}.my-color-wrap{position:relative;display:inline-block}.my-color-swatch{width:32px;height:32px;border-radius:8px;border:2px solid rgba(60,42,33,.25);cursor:pointer;padding:0}.my-color-swatch.selected{border-color:var(--ink);box-shadow:0 0 0 2px var(--accent)}.my-color-remove{position:absolute;top:-7px;right:-7px;width:20px;height:20px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--danger);font-size:.7rem;line-height:1;cursor:pointer;padding:0}.pattern-picker legend{font-size:.85rem;padding:0 .3rem}.pattern-option{display:flex;flex-direction:column;align-items:center;gap:.2rem;font-size:.72rem;padding:.35rem;border:1px solid transparent;border-radius:8px;cursor:pointer;text-transform:capitalize}.pattern-option.selected{border-color:var(--accent);background:#f6e9e4}.pattern-option input{position:absolute;opacity:0;pointer-events:none}.photo-section{display:flex;flex-direction:column;gap:.45rem;border:1px solid var(--line);border-radius:var(--radius);padding:.7rem .8rem}.photo-label{font-size:.85rem}.visually-hidden-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.photo-preview-row{display:flex;align-items:center;gap:.8rem}.photo-preview{width:84px;height:84px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}.photo-preview-actions{display:flex;flex-direction:column;gap:.4rem}.photo-buttons{display:flex;flex-wrap:wrap;gap:.5rem}.draw-dialog{max-width:420px}.draw-canvas{width:min(76vw,340px);height:min(76vw,340px);border:1px solid var(--line);border-radius:10px;background:#fff;cursor:crosshair;display:block;margin:0 auto .8rem;image-rendering:auto}.draw-colors{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.6rem}.draw-color{width:30px;height:30px;border-radius:8px;border:2px solid rgba(60,42,33,.25);cursor:pointer;padding:0}.draw-color.selected{border-color:var(--ink);box-shadow:0 0 0 2px var(--accent)}.draw-color-custom{position:relative;overflow:hidden;display:inline-block}.draw-color-custom input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.draw-color-custom span{position:absolute;top:3px;right:3px;bottom:3px;left:3px;border-radius:5px;pointer-events:none;background-image:conic-gradient(#c0392b,#d9a441,#3d6b52,#4a5a8a,#7b5d7e,#c0392b)}.draw-tools{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.6rem}.dialog-actions{display:flex;align-items:center;gap:.5rem}.dialog-actions-spacer{flex:1}.library-save-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.panel-title-actions{display:flex;gap:.35rem}.library-dialog{max-width:480px}.library-list{list-style:none;margin:0 0 .8rem;padding:0;max-height:55vh;overflow-y:auto;display:flex;flex-direction:column;gap:.2rem}.library-list li{display:flex;align-items:center;gap:.2rem}.print-only{display:none}@media print{body{background:#fff}.no-print{display:none!important}.print-only{display:block}.editor-page{height:auto;padding:0}.editor-layout,.grid-area{display:block}.grid-scroll{overflow:visible;padding:0}.quilt-editor-svg{max-height:60vh;box-shadow:none}.print-report{margin-top:1rem}.print-report .panel{border:none;padding:0}}@media(max-width:820px){.editor-page{height:auto}.editor-layout{flex-direction:column-reverse}.editor-sidebar{width:100%}.quilt-editor-svg{max-height:70vh}}
