:root{--bg:#fafaf8;--card-bg:#ffffff;--text:#2d2d2d;--text-light:#6b6b6b;--accent:#d4763c;--accent-light:#fdf0e8;--border:#e8e5e0;--green:#4a7c59;--green-light:#eef5f0;--warn:#b45309;--warn-light:#fdf3e0;--shadow:0 1px 3px rgba(0,0,0,0.06)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;-webkit-text-size-adjust:100%}a{color:var(--accent)}details.app-menu{position:fixed;top:.5rem;right:.5rem;z-index:1000}details.app-menu>summary{list-style:none;cursor:pointer;width:2.5rem;height:2.5rem;border-radius:50%;background:rgba(255,255,255,.92);border:1px solid rgba(0,0,0,.08);box-shadow:0 1px 4px rgba(0,0,0,.12);display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}details.app-menu>summary::-webkit-details-marker{display:none}details.app-menu>summary:before{content:"";display:block;width:1.1rem;height:.85rem;background-image:linear-gradient(#2d2d2d,#2d2d2d),linear-gradient(#2d2d2d,#2d2d2d),linear-gradient(#2d2d2d,#2d2d2d);background-size:100% 2px;background-position:top,50%,bottom;background-repeat:no-repeat}details.app-menu[open]>summary:before{background-image:linear-gradient(var(--accent),var(--accent)),linear-gradient(var(--accent),var(--accent)),linear-gradient(var(--accent),var(--accent))}details.app-menu>.app-menu-panel{position:absolute;top:2.9rem;right:0;min-width:11rem;background:#ffffff;border:1px solid rgba(0,0,0,.08);border-radius:10px;box-shadow:0 6px 18px rgba(0,0,0,.14);overflow:hidden}details.app-menu>.app-menu-panel a{display:block;padding:.75rem 1rem;color:#2d2d2d;text-decoration:none;font-size:.95rem;font-weight:500}details.app-menu>.app-menu-panel a+a{border-top:1px solid rgba(0,0,0,.06)}details.app-menu>.app-menu-panel a:active,details.app-menu>.app-menu-panel a:hover{background:var(--accent-light);color:var(--accent)}details.app-menu>.app-menu-panel .app-menu-alerts{display:block;width:100%;text-align:left;padding:.75rem 1rem;border:none;border-top:1px solid rgba(0,0,0,.06);background:transparent;color:#2d2d2d;font-size:.95rem;font-weight:500;font-family:inherit;cursor:pointer}details.app-menu>.app-menu-panel .app-menu-alerts:disabled{color:var(--text-light);cursor:default}details.app-menu>.app-menu-panel .app-menu-alerts:not(:disabled):hover{background:var(--accent-light);color:var(--accent)}details.app-menu>.app-menu-panel .app-menu-build{padding:.5rem 1rem;border-top:1px solid rgba(0,0,0,.06);font-size:.75rem;color:var(--text-light);text-align:left}.header{background:var(--card-bg);border-bottom:1px solid var(--border);padding:1.5rem 1rem;text-align:center;position:-webkit-sticky;position:sticky;top:0;z-index:100}.header h1{font-size:1.25rem;font-weight:700;color:var(--text);letter-spacing:-.01em}.header .subtitle{font-size:.85rem;color:var(--text-light);margin-top:.25rem}.toc{padding:1rem;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;background:var(--card-bg);border-bottom:1px solid var(--border)}.toc a{display:inline-block;padding:.5rem 1rem;background:var(--accent-light);color:var(--accent);text-decoration:none;border-radius:2rem;font-size:.85rem;font-weight:600;transition:background .2s}.toc a:active{background:var(--accent);color:white}.recipe{background:var(--card-bg);margin:1rem;border-radius:12px;box-shadow:var(--shadow);overflow:hidden;border:1px solid var(--border)}.recipe-photo{display:block;width:100%;aspect-ratio:3/2;object-fit:cover}.recipe-header,.recipe-photo{border-bottom:1px solid var(--border)}.recipe-header{padding:1.25rem 1.25rem 1rem}.recipe-header h2{font-size:1.35rem;font-weight:700;color:var(--text);line-height:1.3;letter-spacing:-.01em}.recipe-meta{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.75rem}.meta-tag{font-size:.8rem;color:var(--text-light);display:flex;align-items:center;gap:.3rem}.meta-tag .icon{font-size:.9rem}.toddler-note{margin:1rem 1.25rem 0;padding:.75rem 1rem;background:var(--green-light);border-radius:8px;font-size:.85rem;color:var(--green)}.toddler-note strong{font-weight:700}.lowcarb-note{margin:.75rem 1.25rem 0;padding:.75rem 1rem;background:var(--accent-light);border-radius:8px;font-size:.85rem;color:var(--accent)}.lowcarb-note strong{font-weight:700}.ingredients{padding:1.25rem;border-bottom:1px solid var(--border)}.ingredients h3,.instructions h3{font-size:1rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);margin-bottom:.75rem}.ingredient-group h4{font-size:.85rem;font-weight:600;color:var(--text-light);margin:1rem 0 .5rem;font-style:italic}.ingredients ul{list-style:none}.ingredients li{padding:.5rem 0;border-bottom:1px solid #f0eeeb;font-size:1rem;display:flex;align-items:baseline}.ingredients li:last-child{border-bottom:none}.ingredient-qty{font-weight:600;min-width:5.5rem;color:var(--accent);flex-shrink:0}.ingredient-name{flex:1 1}.instructions{padding:1.25rem}.step{display:flex;gap:1rem;padding:1rem 0;border-bottom:1px solid #f0eeeb;align-items:flex-start}.step:last-child{border-bottom:none}.step-num{flex-shrink:0;width:2rem;height:2rem;background:var(--accent);color:white;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem;margin-top:.1rem}.step-text{font-size:1.05rem;line-height:1.65;flex:1 1}.back-to-top{display:block;text-align:center;padding:1rem;color:var(--accent);text-decoration:none;font-weight:600;font-size:.9rem}.footer{text-align:center;padding:2rem 1rem;color:var(--text-light);font-size:.8rem}@media (min-width:768px){.recipe{margin:1.5rem auto}.recipe,.toc{max-width:640px}.toc{margin:0 auto;padding:1.25rem}.header h1{font-size:1.5rem}}@media print{details.app-menu{display:none}.header{position:static}.toc{display:none}.recipe{page-break-inside:avoid;break-inside:avoid;box-shadow:none;border:1px solid #ccc}}details.shopping-list-embed{margin:1rem;background:var(--card-bg);border-radius:12px;box-shadow:var(--shadow);border:1px solid var(--border);overflow:hidden}details.shopping-list-embed>summary{padding:1rem 1.25rem;font-weight:700;cursor:pointer;color:var(--accent);text-transform:uppercase;letter-spacing:.05em;font-size:.9rem}details.shopping-list-embed>.shopping-list-embed-body{padding:0 1rem 1rem}.embed-section{margin-top:1rem}.embed-section h4{font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);margin-bottom:.5rem}.embed-section ul{list-style:none}.embed-section li{display:flex;align-items:baseline;padding:.4rem 0;border-bottom:1px solid #f0eeeb;font-size:.95rem}.embed-section li .embed-detail{color:var(--text-light);font-size:.85rem;margin-left:auto;padding-left:1rem}.embed-open{display:block;text-align:center;margin-top:1rem;padding:.75rem;color:var(--accent);text-decoration:none;font-weight:600;border-top:1px solid var(--border)}@media (min-width:768px){details.shopping-list-embed{max-width:640px;margin:1.5rem auto}}.shop-page{padding:1rem;max-width:600px;margin:0 auto}.shop-section-header{display:flex;align-items:center;margin:1.25rem 0 .5rem;padding-bottom:.25rem;border-bottom:1px solid var(--border)}.shop-section-header h2{font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin:0;flex:1 1}.shop-section-header .section-action{background:none;border:none;color:var(--text-light);font-size:.8rem;cursor:pointer;padding:.2rem .4rem}.shop-item{display:flex;align-items:center;gap:.5rem;padding:.75rem;background:var(--card-bg);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:8px;margin-bottom:6px;cursor:pointer;transition:all .15s;min-height:44px}.shop-item:active{background:var(--accent-light)}.shop-item.acquired{background:var(--bg);box-shadow:none;opacity:.65}.shop-item.acquired .shop-label{text-decoration:line-through;color:var(--text-light)}.shop-checkbox{width:28px;height:28px;border:2px solid var(--accent);border-radius:6px;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .15s}.shop-item.acquired .shop-checkbox{background:var(--accent)}.shop-item.acquired .shop-checkbox:after{content:"✓";color:white;font-weight:700;font-size:16px}.shop-mode-suggestions .shop-item.acquired .shop-checkbox{background:var(--text-light)}.shop-mode-suggestions .shop-item.acquired .shop-checkbox:after{content:"✕"}.shop-skip-tag{font-size:.75rem;font-weight:600;color:var(--text-light);text-transform:uppercase;letter-spacing:.04em}.shop-main{flex:1 1;min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;column-gap:.6rem;row-gap:.1rem}.shop-label{font-size:1rem;overflow-wrap:anywhere}.shop-detail{font-size:.85rem;color:var(--text-light);overflow-wrap:anywhere}.shop-edit{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:4px}.shop-edit-input{width:100%;min-width:0;background:var(--card-bg);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:.4rem;font-size:1rem}.shop-edit-input:focus{outline:none;border-color:var(--accent)}.shop-item-controls{display:flex;gap:.25rem;flex-shrink:0}.shop-item-controls button{background:none;border:none;color:var(--text-light);cursor:pointer;font-size:1.1rem;width:44px;height:44px;border-radius:6px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.shop-item-controls button:hover{background:var(--accent-light);color:var(--accent)}.shop-add-row{display:flex;gap:.5rem;margin:.25rem 0 .5rem}.shop-add-row input{flex:1 1;background:var(--card-bg);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:.6rem .5rem;font-size:1rem}.shop-add-row input:focus{outline:none;border-color:var(--accent)}.shop-add-row button{background:var(--accent);color:white;border:none;border-radius:6px;padding:0 .9rem;font-weight:600;cursor:pointer;min-height:44px}.shop-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.shop-toolbar button{background:var(--card-bg);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:.4rem .8rem;font-size:.85rem;cursor:pointer}.shop-summary{margin-top:1.5rem;padding:1rem;background:var(--green-light);border:1px solid var(--green);border-radius:10px;text-align:center}.shop-summary .count{font-size:1.5rem;font-weight:700;color:var(--green)}.shop-summary .note{font-size:.85rem;color:var(--text-light);margin-top:.25rem}.shop-empty{text-align:center;padding:3rem 1rem;color:var(--text-light)}.shop-review-bar{margin:0 0 1rem;padding:.85rem 1rem;border-radius:12px;font-size:.95rem}.shop-review-pending{background:var(--accent-light);border:1px solid var(--accent);display:flex;flex-direction:column;gap:.6rem;align-items:flex-start}.shop-review-prompt{color:var(--text)}.shop-review-prompt strong{color:var(--accent)}.shop-issues-bar{margin:0 0 1rem;padding:.85rem 1rem;border-radius:12px;font-size:.9rem;background:var(--warn-light);border:1px solid var(--warn)}.shop-issues-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;color:var(--warn)}.shop-issues-dismiss{background:transparent;border:1px solid var(--warn);color:var(--warn);border-radius:999px;padding:.4rem .9rem;font-size:.85rem;font-weight:600;cursor:pointer;min-height:36px}.shop-issues-list{margin:.6rem 0 0;padding-left:1.1rem;color:var(--warn)}.shop-issues-reason{color:#8a5a1d}.shop-undo{position:fixed;bottom:1rem;left:50%;transform:translateX(-50%);background:var(--card-bg);color:var(--text);border:1px solid var(--border);border-radius:999px;padding:.6rem 1.2rem;box-shadow:0 4px 16px rgba(0,0,0,.18);display:flex;gap:.75rem;align-items:center;z-index:1100}.shop-undo button{background:var(--accent);color:white;border:none;border-radius:999px;padding:.3rem .9rem;font-weight:600;cursor:pointer}.empty-page{max-width:600px;margin:0 auto;padding:4rem 1rem;text-align:center}.empty-page h1{font-size:1.5rem;margin-bottom:.5rem}.empty-page p{color:var(--text-light)}.archive-list{max-width:600px;margin:0 auto;padding:2rem 1rem}.archive-list h1{font-size:1.5rem;margin-bottom:1rem}.archive-list ul{list-style:none}.archive-list li{border-bottom:1px solid var(--border)}.archive-list li a{display:block;padding:.9rem .25rem;text-decoration:none;color:var(--text);font-weight:500}.archive-list li a:hover{color:var(--accent)}.archive-list .label{color:var(--text-light);font-size:.85rem;margin-left:.5rem}.approval-bar{margin:1rem;padding:1rem 1.25rem;border-radius:12px;box-shadow:var(--shadow);font-size:.95rem}.approval-pending{background:var(--accent-light);border:1px solid var(--accent)}.approval-approved{background:var(--green-light);border:1px solid var(--green);color:var(--green);font-weight:600}.approval-changes{background:var(--card-bg);border:1px solid var(--border);color:var(--text)}.approval-icon{font-weight:700;margin-right:.25rem}.approval-prompt{color:var(--text);margin-bottom:.85rem}.approval-prompt strong{color:var(--accent)}.approval-note{margin-top:.5rem;color:var(--text-light);font-style:italic}.approval-actions{display:flex;gap:.6rem;justify-content:flex-end;flex-wrap:wrap}.approval-btn{border:none;border-radius:2rem;padding:.6rem 1.1rem;font-size:.9rem;font-weight:600;font-family:inherit;cursor:pointer;transition:opacity .2s,background .2s}.approval-btn:disabled{opacity:.55;cursor:default}.approval-btn-primary{background:var(--green);color:#fff}.approval-btn-primary:not(:disabled):hover{background:#3d6849}.approval-btn-secondary{background:transparent;color:var(--text-light);border:1px solid var(--border)}.approval-btn-secondary:not(:disabled):hover{color:var(--accent);border-color:var(--accent)}.approval-changes-form{display:flex;flex-direction:column;gap:.6rem}.approval-textarea{width:100%;box-sizing:border-box;padding:.6rem .75rem;border:1px solid var(--border);border-radius:8px;font-family:inherit;font-size:.95rem;resize:vertical}.approval-textarea:focus{outline:none;border-color:var(--accent)}.approval-error{margin-top:.6rem;color:#b3261e;font-size:.85rem}.next-week-banner{margin:1rem 1rem 0;padding:.85rem 1.1rem;border-radius:12px;background:var(--green-light);border:1px solid var(--green);font-size:.9rem;line-height:1.45}.next-week-banner,.next-week-banner strong{color:var(--green)}.next-week-link{display:block;margin:1rem 1rem 0;padding:.75rem 1.1rem;border-radius:12px;background:var(--accent-light);border:1px solid var(--accent);color:var(--accent);font-weight:600;font-size:.9rem;text-decoration:none;text-align:center}.next-week-link:active{background:var(--accent);color:#fff}.rating-widget{display:flex;align-items:center;gap:.4rem;margin-top:.75rem;flex-wrap:wrap}.rating-btn{min-width:44px;min-height:44px;border-radius:8px;border:1px solid var(--border);background:var(--card-bg);font-size:1.1rem;cursor:pointer}.rating-btn-active-up{background:var(--green-light);border-color:var(--green)}.rating-btn-active-down{background:var(--warn-light);border-color:var(--warn)}.rating-note-toggle{padding:0 .75rem;border-radius:999px;background:transparent;color:var(--text-light);font-size:.85rem;cursor:pointer}.rating-note-input,.rating-note-toggle{min-height:44px;border:1px solid var(--border)}.rating-note-input{flex:1 1 100%;font-size:16px;padding:.5rem .75rem;border-radius:8px}.recipe-macros{font-size:.8rem;margin-top:.5rem;display:flex;gap:.25rem;flex-wrap:wrap}.recipe-macros,.recipe-macros-copy-btn{color:var(--text-light);align-items:center}.recipe-macros-copy-btn{display:inline-flex;justify-content:center;min-width:44px;min-height:44px;padding:0;margin:-12px 0;background:transparent;border:none;border-radius:8px;cursor:pointer}.recipe-macros-copy-btn:active{background:var(--accent-light);color:var(--accent)}.recipe-macros-copied{color:var(--accent);font-weight:600}.picker-list{display:flex;flex-direction:column;gap:1rem;padding:1rem;max-width:640px;margin:0 auto}.picker-card{display:block;background:var(--card-bg);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);overflow:hidden;text-decoration:none;color:var(--text)}.picker-card:active{background:var(--accent-light)}.picker-hero{position:relative}.picker-hero-img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}.picker-hero-placeholder{display:flex;align-items:center;justify-content:center;background:var(--accent-light);font-size:3rem}.picker-time-badge{left:.6rem;bottom:.6rem;background:rgba(0,0,0,.65);font-size:.95rem}.picker-cooked-badge,.picker-time-badge{position:absolute;padding:.35rem .7rem;border-radius:999px;color:#fff;font-weight:700;line-height:1}.picker-cooked-badge{right:.6rem;top:.6rem;background:var(--green);font-size:.85rem}.picker-card-cooked .picker-hero-img{filter:grayscale(.35);opacity:.75}.picker-card-cooked .picker-card-title{color:var(--text-light)}.picker-card-body{padding:.7rem .85rem .85rem;min-width:0}.picker-card-title{font-weight:700;font-size:1.1rem;line-height:1.25}.picker-card-meta{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.35rem}.cooked-button{display:block;width:calc(100% - 2.5rem);margin:1rem auto 0;padding:.85rem;border-radius:10px;border:1px solid var(--border);background:var(--card-bg);color:var(--text);font-weight:600;font-size:1rem;min-height:44px;cursor:pointer}.cooked-button.cooked{border-color:var(--green);background:var(--green-light);color:var(--green)}button.back-to-top{background:none;border:none;font:inherit;cursor:pointer}.last-week-link{display:inline-block;margin-left:.75rem;font-size:.8rem;color:var(--accent);text-decoration:none}.archive-list li{border-bottom:none;margin-bottom:.75rem}.archive-card{display:flex;align-items:center;gap:.85rem;background:var(--card-bg);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);padding:.6rem .9rem;text-decoration:none;color:var(--text);min-height:44px}.archive-card:active{background:var(--accent-light)}.archive-thumb{width:3.5rem;height:3.5rem;border-radius:8px;object-fit:cover;flex-shrink:0}.archive-thumb-placeholder{display:flex;align-items:center;justify-content:center;background:var(--accent-light);font-size:1.5rem}.archive-card-body{flex:1 1;min-width:0}.archive-card-label{font-weight:600;font-size:1rem}.archive-card-date{font-size:.8rem;color:var(--text-light);margin-top:.15rem}.recipe-share-wrap{gap:.5rem;margin-top:.5rem}.recipe-share-btn,.recipe-share-wrap{display:inline-flex;align-items:center}.recipe-share-btn{justify-content:center;min-width:44px;min-height:44px;padding:0;background:var(--card-bg);color:var(--text);border:1px solid var(--border);border-radius:999px;cursor:pointer}.recipe-share-btn:active{background:var(--accent-light);color:var(--accent);border-color:var(--accent)}.recipe-share-btn:disabled{opacity:.6;cursor:default}.recipe-share-feedback{font-size:.85rem;color:var(--accent);font-weight:600}.standalone-recipe-page .recipe{margin:1rem}.recipe-flag-btn{margin-top:.5rem;margin-left:.5rem;background:var(--accent-light);color:var(--accent);border:1px solid var(--accent);border-radius:999px;padding:.5rem 1rem;font-size:.85rem;font-family:inherit;cursor:pointer;min-height:44px}.recipe-flag-form{margin-top:.5rem;display:flex;flex-direction:column;gap:.4rem}.recipe-flag-remove{background:none;border:none;color:var(--text-light);cursor:pointer;font-size:.85rem;padding:0 .25rem;min-height:44px;min-width:44px}.approval-flag-chip{margin-top:.4rem;padding:.4rem .6rem;background:var(--card-bg);border:1px solid var(--border);border-radius:8px;font-size:.85rem}.approval-flag-list{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.6rem}.settings-page{max-width:640px;margin:0 auto}.settings-banner{margin:1rem;padding:.85rem 1rem;background:var(--accent-light);border:1px solid var(--accent);border-radius:12px;font-size:.9rem;color:var(--text)}.settings-section{margin:1rem;padding:1rem 1.25rem;background:var(--card-bg);border-radius:12px;box-shadow:var(--shadow)}.settings-section h2{margin-top:0;font-size:1.05rem}.settings-text{white-space:pre-wrap;font-family:inherit;font-size:.9rem;line-height:1.5;color:var(--text);margin:0}.share-footer{margin:1.5rem 1rem 1rem;text-align:center;font-size:.8rem;color:var(--text-light)}.archive-card{display:block;align-items:normal;gap:initial}.archive-card-header{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.archive-card-empty{margin-top:.5rem;font-size:.85rem;color:var(--text-light)}.archive-recipe-grid{margin-top:.6rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(4.5rem,1fr));grid-gap:.6rem;gap:.6rem}.archive-recipe-thumb-wrap{min-width:0;text-align:center}.archive-recipe-thumb{width:100%;aspect-ratio:1/1;border-radius:8px;object-fit:cover;display:block}.archive-recipe-thumb-placeholder{display:flex;align-items:center;justify-content:center;background:var(--accent-light);font-size:1.4rem}.archive-recipe-title{margin-top:.3rem;font-size:.72rem;line-height:1.2;color:var(--text-light);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}@media (max-width:390px){.archive-recipe-grid{grid-template-columns:repeat(auto-fill,minmax(4rem,1fr));gap:.5rem}}.prefs-doc-list{list-style:none;margin:1rem;padding:0;gap:.6rem}.prefs-doc-card,.prefs-doc-list{display:flex;flex-direction:column}.prefs-doc-card{gap:.2rem;background:var(--card-bg);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);padding:.85rem 1rem;text-decoration:none;color:var(--text);min-height:44px}.prefs-doc-card:active{background:var(--accent-light)}.prefs-doc-card-title{font-weight:700;font-size:1.05rem}.prefs-doc-card-meta{font-size:.8rem;color:var(--text-light)}.prefs-doc-back-link{display:inline-block;margin-bottom:.5rem;font-size:.85rem;color:var(--accent);text-decoration:none}.prefs-doc-editor{margin:1rem;display:flex;flex-direction:column;gap:.75rem}.prefs-doc-safety-banner{padding:.85rem 1rem;background:var(--red-light,#fdeaea);border:1px solid var(--red,#c0392b);color:var(--text);border-radius:12px;font-size:.9rem;line-height:1.4}.prefs-doc-textarea{width:100%;min-height:20rem;padding:.85rem;border-radius:12px;border:1px solid var(--border);background:var(--card-bg);color:var(--text);font-family:ui-monospace,SF Mono,Cascadia Code,Consolas,monospace;font-size:.85rem;line-height:1.5;resize:vertical}.prefs-doc-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.prefs-doc-save-btn{border:none;border-radius:999px;padding:.6rem 1.4rem;font-size:.95rem;font-weight:600;font-family:inherit;background:var(--accent);color:#fff;cursor:pointer;min-height:44px}.prefs-doc-save-btn:disabled{opacity:.55;cursor:default}.prefs-doc-status{font-size:.85rem}.prefs-doc-status-ok{color:var(--green)}.prefs-doc-status-error{color:var(--red,#c0392b)}.sp-page-banner{margin:1rem}.sp-manager{margin:0 1rem 2rem;display:flex;flex-direction:column;gap:1rem}.sp-loading{margin:1rem;color:var(--text-light)}.sp-error{margin:0;padding:.6rem .9rem;border-radius:10px;background:var(--red-light,#fdeaea);color:var(--red,#c0392b);font-size:.85rem}.sp-group{background:var(--card-bg);border-radius:12px;box-shadow:var(--shadow);padding:1rem 1.1rem}.sp-group-heading{margin:0 0 .6rem;font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;color:var(--accent)}.sp-empty{margin:.25rem 0 .6rem;font-size:.85rem;color:var(--text-light)}.sp-rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.sp-row{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:.6rem 0;border-bottom:1px solid var(--border)}.sp-rows>.sp-row:last-child{border-bottom:none}.sp-row-inactive{opacity:.5}.sp-row-main{flex:1 1;min-width:0}.sp-row-head{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.sp-row-title{font-weight:600;font-size:.95rem}.sp-row-body{font-size:.85rem;line-height:1.45;white-space:pre-wrap}.sp-row-body,.sp-row-meta{margin:.25rem 0 0;color:var(--text-light)}.sp-row-meta{font-size:.72rem;font-family:ui-monospace,SF Mono,Cascadia Code,Consolas,monospace}.sp-badge{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.72rem;font-weight:600;background:var(--accent-light);color:var(--accent);white-space:nowrap}.sp-badge-hard{background:var(--red-light,#fdeaea);color:var(--red,#c0392b)}.sp-row-actions{display:flex;align-items:center;gap:.3rem;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.sp-link-btn{background:none;border:none;padding:.35rem .45rem;font-family:inherit;font-size:.8rem;font-weight:600;color:var(--accent);cursor:pointer;min-height:34px}.sp-link-btn:disabled{opacity:.5;cursor:default}.sp-link-btn-danger{color:var(--red,#c0392b)}.sp-form{display:flex;flex-direction:column;gap:.6rem;width:100%;padding:.4rem 0}.sp-add-form{border-top:1px dashed var(--border);margin-top:.5rem;padding-top:.75rem}.sp-field{display:flex;flex-direction:column;gap:.25rem}.sp-field-label{font-size:.75rem;font-weight:600;color:var(--text-light);text-transform:uppercase;letter-spacing:.04em}.sp-input{width:100%;padding:.55rem .7rem;border:1px solid var(--border);border-radius:8px;background:var(--card-bg);color:var(--text);font-family:inherit;font-size:.9rem}.sp-input:focus{outline:none;border-color:var(--accent)}.sp-details-input{resize:vertical;min-height:3.4rem;line-height:1.45}.sp-form-actions{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.sp-btn{border:none;border-radius:999px;padding:.5rem 1.2rem;font-size:.9rem;font-weight:600;font-family:inherit;background:var(--accent);color:#fff;cursor:pointer;min-height:40px}.sp-btn:disabled{opacity:.55;cursor:default}.sp-btn-secondary{background:none;color:var(--text-light);border:1px solid var(--border)}.sp-add-btn{margin-top:.5rem;background:none;border:1px dashed var(--accent);border-radius:999px;padding:.45rem 1rem;font-family:inherit;font-size:.85rem;font-weight:600;color:var(--accent);cursor:pointer;min-height:40px}.sp-add-btn:disabled{opacity:.5;cursor:default}.sp-guest-card{display:flex;flex-direction:column;gap:.4rem}.sp-guest-name{text-transform:none;letter-spacing:normal;font-size:1.05rem;color:var(--text);flex:1 1;margin:0}.sp-guest-rule-group{margin-top:.4rem}.sp-guest-rule-heading{margin:0 0 .2rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-light)}.sp-setting-value{color:var(--text)}