*,:before,:after{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;margin:0}#root{height:100dvh}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f7f2ea;--surface:#fffef8;--border:#ddd4c4;--text:#2c2218;--text-muted:#7d6d5f;--primary:#9b5c3a;--primary-light:#f6ebe0;--accent:#5c7d5f;--accent-light:#e5eee6;--nav-bg:#2d1f14;--nav-text:#f0e8d8;--nav-active-bg:#f0e8d81f;--nav-active-text:#e8956d;--nav-width:220px;--radius:12px}body{background-color:var(--bg);color:var(--text);background-image:repeating-linear-gradient(45deg,#9b5c3a09 0 1px,#0000 0 50%),repeating-linear-gradient(-45deg,#9b5c3a09 0 1px,#0000 0 50%);background-size:8px 8px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.5}button{cursor:pointer;border:none;font-family:inherit;font-size:15px}.app{background:var(--bg);flex-direction:column;height:100dvh;display:flex}.app-main{flex:1;min-height:0;overflow-y:auto}.app-nav{background:var(--nav-bg);z-index:100;flex-direction:row;flex-shrink:0;align-items:stretch;display:flex}.nav-brand{color:var(--nav-text);letter-spacing:.3px;border-bottom:1px solid #ffffff14;margin-bottom:12px;padding:0 20px 24px;font-family:Georgia,Times New Roman,serif;font-size:22px;font-weight:700;display:none}.nav-tabs{scrollbar-width:none;flex-direction:row;flex:1;display:flex;overflow-x:auto}.nav-tabs::-webkit-scrollbar{display:none}.nav-tab{color:var(--nav-text);opacity:.55;white-space:nowrap;background:0 0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;min-width:56px;padding:10px 14px;transition:opacity .15s;display:flex}.nav-tab:hover{opacity:.8}.nav-tab.active{opacity:1;color:var(--nav-active-text)}.nav-icon{font-size:19px;line-height:1}.nav-label{letter-spacing:.4px;text-transform:uppercase;font-size:9px;font-weight:700}.nav-label-full,.nav-signout{display:none}@media (width>=768px){.app{flex-direction:row}.app-nav{width:var(--nav-width);flex-direction:column;flex-shrink:0;align-items:stretch;height:100dvh;padding:28px 0 20px;position:sticky;top:0;overflow-y:auto}.nav-brand{display:block}.nav-tabs{flex-direction:column;flex:1;gap:2px;padding:0 10px;overflow-x:visible}.nav-tab{border-radius:8px;flex-direction:row;flex:none;justify-content:flex-start;align-items:center;gap:12px;min-width:0;padding:11px 14px}.nav-tab.active{background:var(--nav-active-bg)}.nav-icon{flex-shrink:0;font-size:17px}.nav-label{text-transform:none;letter-spacing:0;white-space:normal;text-align:left;font-size:13px;font-weight:600}.nav-label-short{display:none}.nav-label-full{display:block}.nav-signout{color:var(--nav-text);opacity:.45;text-align:left;background:0 0;margin-top:auto;padding:12px 24px;font-size:13px;transition:opacity .15s;display:block}.nav-signout:hover{opacity:.8}.app-main{height:100dvh;overflow-y:auto}}.screen-content{padding-bottom:32px}@media (width>=768px){.screen-content{max-width:760px;margin:0 auto;padding-bottom:48px}.app-header{padding:36px 32px 16px}.card{margin:0 32px 20px}.stash-actions{padding:8px 32px 16px}.yarn-list{padding:0 32px}.action-grid{grid-template-columns:repeat(4,1fr);padding:0 32px}.home-greeting{padding:36px 32px 16px}.step-indicator{padding:16px 32px 4px}.result-actions{padding:0 32px}.chat-messages,.chat-input-bar{padding:12px 32px 20px}.patterns-empty,.placeholder-screen{padding:80px 32px}}.app-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:2px;padding:20px 20px 12px;display:flex}.app-title{color:var(--primary);letter-spacing:-.3px;font-family:Georgia,Times New Roman,serif;font-size:22px;font-weight:700}.chat-context-note{color:var(--accent);opacity:.8;margin:0;font-size:12px}.icon-btn{background:0 0;border:none;padding:4px;font-size:20px}.btn-primary{background:var(--primary);color:#fff;border-radius:8px;padding:10px 18px;font-weight:600}.btn-primary:hover{background:#7d4a2e}.btn-secondary{background:var(--surface);color:var(--primary);border:1.5px solid var(--primary);border-radius:8px;padding:9px 16px;font-weight:600}.btn-secondary:hover{background:var(--primary-light)}.btn-small{background:var(--primary-light);color:var(--primary);border-radius:6px;padding:5px 12px;font-size:13px;font-weight:600}.btn-danger{color:#c0392b;background:#fdecea}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin:0 16px 16px;padding:16px;box-shadow:0 2px 10px #2c221812}.botanical-banner{text-align:center;letter-spacing:.15em;opacity:.65;-webkit-user-select:none;user-select:none;padding:4px 0 16px;font-size:20px}.section-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.6px;margin-bottom:10px;font-size:12px;font-weight:700}.home-greeting{padding:22px 20px 16px}.home-greeting-text{color:var(--text);font-family:Georgia,Times New Roman,serif;font-size:26px;font-weight:700;line-height:1.3}.home-greeting-sub{color:var(--text-muted);margin-top:3px;font-size:14px}.active-project{margin-top:4px}.project-name{font-size:16px;font-weight:600}.project-pattern{color:var(--text-muted);margin-top:2px;font-size:13px}.progress-bar-track{background:var(--border);border-radius:99px;height:8px;margin:14px 0 6px;overflow:hidden}.progress-bar-fill{background:var(--accent);border-radius:99px;height:100%;transition:width .5s}.progress-label{color:var(--text-muted);margin-bottom:12px;font-size:12px}.row-counter{justify-content:center;align-items:center;gap:1.25rem;margin:4px 0 12px;display:flex}.row-counter-label{text-align:center;min-width:5rem;font-size:1.1rem;font-weight:600}.action-grid{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px;padding:0 16px;display:grid}.action-btn{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-align:left;color:var(--text);padding:16px 14px;font-size:13px;line-height:1.4;transition:all .15s}.action-btn:hover{background:var(--primary-light);border-color:var(--primary)}.action-btn-icon{margin-bottom:6px;font-size:22px;display:block}.action-btn-sub{color:var(--text-muted);margin-top:4px;font-size:11px;display:block}.screen-privacy-note{color:var(--text-muted);margin:0;padding:0 16px 4px;font-size:12px}.stash-summary{justify-content:space-between;align-items:center;display:flex}.patterns-empty{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:56px 24px;display:flex}.patterns-empty-icon{font-size:52px}.patterns-empty-text{color:var(--text);font-family:Georgia,Times New Roman,serif;font-size:20px;font-weight:700}.patterns-empty-sub{color:var(--text-muted);max-width:280px;margin-bottom:6px;font-size:14px;line-height:1.65}.stash-actions{align-items:center;gap:10px;padding:8px 16px 16px;display:flex}.yarn-list{flex-direction:column;gap:12px;padding:0 16px;display:flex}.yarn-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:12px;padding:14px;display:flex}.yarn-icon{flex-shrink:0;font-size:28px}.yarn-details{flex:1}.yarn-name{font-size:15px;font-weight:600}.yarn-meta{color:var(--text-muted);margin-top:3px;font-size:13px}.yarn-actions{flex-direction:column;gap:6px;display:flex}.pattern-card .yarn-details{flex:1;min-width:0}.pattern-pdf-actions{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.btn-pdf{background:var(--primary-light);border-color:var(--primary);color:var(--primary)}.btn-ghost{border-color:var(--border);color:var(--text-muted);background:0 0;font-size:11px}.search-panel{margin-bottom:16px}.search-form{gap:8px;margin-bottom:12px;display:flex}.search-input{border:1.5px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;flex:1;padding:10px 14px;font-family:inherit;font-size:15px}.search-input:focus{border-color:var(--primary);outline:none}.search-results{flex-direction:column;gap:10px;max-height:340px;display:flex;overflow-y:auto}.search-result-row{align-items:center;gap:10px;display:flex}.yarn-thumb{object-fit:cover;border-radius:6px;flex-shrink:0;width:44px;height:44px}.yarn-thumb-lg{object-fit:cover;border-radius:8px;flex-shrink:0;width:52px;height:52px}.step-indicator{justify-content:space-between;gap:4px;padding:12px 16px 4px;display:flex}.step{color:var(--text-muted);flex-direction:column;flex:1;align-items:center;gap:4px;font-size:11px;font-weight:500;display:flex}.step.active{color:var(--primary);font-weight:700}.step.done{color:var(--accent)}.step-dot{border:2px solid var(--border);background:var(--bg);border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:11px;font-weight:700;display:flex}.step.active .step-dot{border-color:var(--primary);color:var(--primary)}.step.done .step-dot{border-color:var(--accent);background:var(--accent-light);color:var(--accent)}.checker-step,.selected-item{margin-top:12px}.selected-row{align-items:center;gap:10px;display:flex}.selected-yarn-confirm{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;margin-top:14px;padding-top:14px;display:flex}.input-mode-toggle{border:1.5px solid var(--border);border-radius:8px;gap:0;margin-bottom:14px;display:flex;overflow:hidden}.mode-btn{color:var(--text-muted);background:0 0;border:none;flex:1;padding:9px 12px;font-size:14px;font-weight:500;transition:all .15s}.mode-btn.active{background:var(--primary-light);color:var(--primary);font-weight:700}.pdf-upload-area{flex-direction:column;gap:12px;display:flex}.pdf-drop-btn{border:2px dashed var(--border);background:var(--bg);color:var(--text-muted);border-radius:10px;flex-direction:column;align-items:center;gap:6px;width:100%;padding:28px 16px;font-size:14px;transition:border-color .15s;display:flex}.pdf-drop-btn:hover{border-color:var(--primary);color:var(--primary)}.pdf-icon{font-size:32px}.pdf-sub{color:var(--text-muted);font-size:12px}.pdf-loading{text-align:center;color:var(--text-muted);padding:24px;font-size:15px}.pdf-result{flex-direction:column;gap:10px;display:flex}.pdf-fields{background:var(--bg);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:8px;padding:12px;display:flex}.pdf-actions{flex-wrap:wrap;gap:8px;display:flex}.pdf-error{color:#c0392b;text-align:center;padding:12px;font-size:14px}.size-grid{flex-wrap:wrap;gap:8px;margin-bottom:4px;display:flex}.size-btn{background:var(--bg);border:1.5px solid var(--border);color:var(--text);text-align:left;border-radius:8px;padding:8px 14px;font-size:14px;font-weight:500;transition:all .15s}.size-btn:hover{border-color:var(--primary);color:var(--primary)}.size-btn.selected{background:var(--primary-light);border-color:var(--primary);color:var(--primary);font-weight:700}.result-screen{flex-direction:column;gap:12px;padding:0 0 24px;display:flex}.result-header{border-width:2px;align-items:center;gap:14px;margin-top:12px;display:flex}.result-icon{flex-shrink:0;font-size:32px}.result-title{margin-bottom:2px;font-size:16px;font-weight:700}.result-details{flex-direction:column;gap:12px;display:flex}.result-row{justify-content:space-between;align-items:flex-start;gap:12px;font-size:14px;display:flex}.result-label{color:var(--text-muted);flex-shrink:0;font-weight:600}.result-sizes{text-align:right;color:var(--text-muted);max-width:200px;font-size:13px}.advice-card{background:#fffbf0;border-color:#e8d5a0}.advice-item{color:var(--text);margin-top:6px;font-size:14px;line-height:1.5}.result-actions{gap:10px;padding:0 16px;display:flex}.chat-screen{flex-direction:column;height:100%;display:flex}.chat-messages{flex-direction:column;flex:1;gap:12px;padding:8px 16px 16px;display:flex;overflow-y:auto}.chat-welcome{flex-direction:column;align-items:center;gap:6px;padding:32px 0 16px;display:flex}.chat-welcome-icon{font-size:58px}.chat-welcome-text{color:var(--text);text-align:center;font-family:Georgia,Times New Roman,serif;font-size:18px;font-weight:700}.chat-welcome-sub{color:var(--text-muted);text-align:center;font-size:14px}.starter-prompts{flex-direction:column;gap:8px;width:100%;margin-top:10px;display:flex}.starter-btn{background:var(--surface);border:1px solid var(--border);text-align:left;color:var(--text);border-radius:10px;padding:12px 16px;font-size:14px;transition:background .15s}.starter-btn:hover{background:var(--primary-light)}.chat-bubble{flex-direction:column;max-width:85%;display:flex}.chat-bubble.user{align-self:flex-end;align-items:flex-end}.chat-bubble.assistant{align-self:flex-start;align-items:flex-start}.bubble-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:3px;font-size:11px;font-weight:600}.bubble-text{white-space:pre-wrap;border-radius:16px;padding:10px 14px;font-size:15px;line-height:1.5}.chat-bubble.user .bubble-text{background:var(--primary);color:#fff;border-bottom-right-radius:4px}.chat-bubble.assistant .bubble-text{background:var(--surface);border:1px solid var(--border);color:var(--text);border-bottom-left-radius:4px}.typing-indicator{gap:4px;display:flex;padding:14px 18px!important}.typing-indicator span{color:var(--text-muted);font-size:18px;line-height:1;animation:1.2s infinite bounce}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes bounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-4px)}}.pdf-detected-bar{background:var(--accent-light);color:var(--accent);border-top:1px solid var(--border);justify-content:space-between;align-items:center;padding:8px 16px;font-size:13px;font-weight:600;display:flex}.pdf-remove-btn{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:15px}.attach-btn{opacity:.6;background:0 0;border:none;align-self:flex-end;padding:4px 6px;font-size:20px;transition:opacity .15s}.attach-btn:hover{opacity:1}.chat-input-bar{border-top:1px solid var(--border);background:var(--bg);gap:8px;padding:10px 16px 16px;display:flex}.chat-input{border:1.5px solid var(--border);background:var(--surface);color:var(--text);resize:none;border-radius:20px;flex:1;padding:10px 14px;font-family:inherit;font-size:15px;line-height:1.4}.chat-input:focus{border-color:var(--primary);outline:none}.chat-send-btn{background:var(--primary);color:#fff;border:none;border-radius:20px;align-self:flex-end;padding:10px 18px;font-size:15px;font-weight:600;transition:opacity .15s}.chat-send-btn:disabled{opacity:.4}.placeholder-screen{flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:80px 20px;display:flex}.placeholder-icon{font-size:48px}.placeholder-text{color:var(--text);font-size:20px;font-weight:700}.placeholder-sub{color:var(--text-muted);font-size:14px}
