@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Playfair+Display:wght@500;600&display=swap');
:root{--ink:#17231d;--muted:#718077;--cream:#f8f7f2;--paper:#fffefa;--sage:#dfe8de;--green:#315d47;--line:#e3e8e1;--terracotta:#b96343}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font:15px 'DM Sans',sans-serif}button,input,textarea,select{font:inherit}button{cursor:pointer;border:0}.auth-shell{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 80% 20%,#dfe9dc,transparent 35%),var(--cream)}.auth-card{width:min(440px,calc(100% - 40px));background:var(--paper);padding:48px;border:1px solid var(--line);box-shadow:0 20px 60px #27432b12}.brand-mark{font-size:26px;color:var(--terracotta)}h1,h2,h3{font-family:'Playfair Display',serif;font-weight:500;margin:0}h1{font-size:46px;margin:8px 0}.lede{color:var(--muted);line-height:1.6}.eyebrow{font-size:11px;letter-spacing:.14em;font-weight:600;color:var(--terracotta);margin:0}.tabs{display:flex;gap:24px;border-bottom:1px solid var(--line);margin:30px 0}.tab{background:none;padding:0 0 12px;color:var(--muted);border-bottom:2px solid transparent}.tab.active{color:var(--green);border-color:var(--green)}label{display:grid;gap:7px;font-size:12px;font-weight:600;color:#526057;margin:12px 0}input,textarea,select{background:#fff;border:1px solid var(--line);border-radius:3px;padding:11px 12px;color:var(--ink);outline:none}input:focus,textarea:focus,select:focus{border-color:var(--green);box-shadow:0 0 0 3px #315d4714}.primary{background:var(--green);color:#fff;padding:12px 18px;border-radius:3px;font-weight:600}.primary:hover{background:#234836}.wide{width:100%;margin-top:12px}.secondary{background:transparent;color:var(--green);border:1px solid #b7c9bb;padding:10px 14px;border-radius:3px}.text-button{background:none;color:var(--muted);padding:6px}.error{color:#ae4d35;min-height:18px;font-size:13px}header{height:72px;background:var(--paper);border-bottom:1px solid var(--line)}.header-inner{height:100%;max-width:1180px;margin:auto;padding:0 24px;display:flex;align-items:center;gap:54px}.wordmark{font:600 20px 'Playfair Display',serif}.wordmark span{color:var(--terracotta)}nav{display:flex;gap:26px;flex:1}.nav-link{background:none;color:var(--muted);padding:27px 0 24px;border-bottom:2px solid transparent}.nav-link.active{color:var(--green);border-color:var(--green)}.user-menu{display:flex;align-items:center;gap:18px;color:var(--muted);font-size:13px}.container{max-width:1180px;margin:auto;padding:56px 24px}.hero{display:flex;justify-content:space-between;align-items:end;margin-bottom:38px}.hero h2{font-size:38px;margin:8px 0}.muted{color:var(--muted)}.toolbar{display:flex;gap:10px;margin-bottom:28px}.search{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);flex:1;padding:0 12px}.search input{border:0;padding-left:0;width:100%;outline:0}.toolbar select{min-width:170px}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:22px}.recipe-card{background:var(--paper);border:1px solid var(--line);min-height:290px;display:flex;flex-direction:column;cursor:pointer;transition:transform .15s,box-shadow .15s}.recipe-card:hover{transform:translateY(-3px);box-shadow:0 12px 26px #27432b12}.card-image{height:155px;background:linear-gradient(135deg,#dfe8de,#f5e9dd);background-size:cover;background-position:center}.card-body{padding:17px}.card-body h3{font-size:22px}.card-meta{color:var(--muted);font-size:12px;margin-top:10px}.stars{color:#c7794f;letter-spacing:2px;margin-top:10px}.empty{text-align:center;padding:100px 20px}.empty-icon{font-size:40px;color:var(--terracotta)}.empty p{color:var(--muted)}dialog{border:0;padding:0;width:min(700px,calc(100% - 30px));max-height:90vh;background:var(--paper);color:var(--ink);box-shadow:0 25px 80px #17231d33}dialog::backdrop{background:#17231d66}.dialog-head{display:flex;justify-content:space-between;padding:28px 32px 18px;border-bottom:1px solid var(--line)}.dialog-head h2{font-size:30px;margin-top:6px}.close{background:none;font-size:28px;color:var(--muted)}#recipe-form{overflow:auto}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px;padding:12px 32px}.span-2{grid-column:span 2}small{color:var(--muted);font-weight:400}.dialog-actions{display:flex;justify-content:space-between;align-items:center;padding:18px 32px;border-top:1px solid var(--line)}.danger{background:none;color:var(--terracotta);font-size:13px}@media(max-width:700px){.header-inner{gap:20px}.user-menu span{display:none}.hero{align-items:start;gap:20px;flex-direction:column}.toolbar{flex-wrap:wrap}.search{flex-basis:100%}.toolbar select,.toolbar button{flex:1}.form-grid{display:block;padding:10px 22px}.dialog-head,.dialog-actions{padding-left:22px;padding-right:22px}}
.crap-toggle{background:none;color:var(--muted);font-size:11px;text-decoration:underline;padding:14px 0 0}.source-crap{border-top:1px solid var(--line);margin-top:12px;padding-top:11px;color:var(--muted);font-size:12px;line-height:1.55}.source-crap p{margin:0 0 8px}.source-crap a{color:var(--green)}
.import-button{background:var(--sage);color:var(--green);border:1px solid #b7c9bb;border-radius:3px;padding:9px 12px;font-size:12px;font-weight:600;margin-top:2px}.import-button:disabled{opacity:.6;cursor:wait}
.view-dialog{width:min(900px,calc(100% - 24px));max-height:92vh;padding:0;background:var(--paper);border-radius:8px;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}.view-card{position:relative;min-height:100%}.view-close{position:absolute;z-index:2;right:18px;top:14px;width:38px;height:38px;border-radius:50%;background:#fffdfacc;color:var(--ink);font-size:26px;box-shadow:0 3px 14px #17231d22}.view-hero{height:260px;background:linear-gradient(135deg,#dfe8de,#f5e9dd);background-size:cover;background-position:center}.view-content{padding:34px 44px 40px}.view-content h2{font-size:42px;line-height:1.08;margin:8px 0}.view-meta{color:var(--muted);margin:0 0 28px}.view-columns{display:grid;grid-template-columns:minmax(220px,.8fr) 1.2fr;gap:44px;border-top:1px solid var(--line);padding-top:26px}.view-columns h3{font-size:24px;margin:0 0 16px}.view-columns ul,.view-columns ol{margin:0;padding-left:22px}.view-columns li{padding:0 0 12px;line-height:1.55}.view-columns ol li{padding-left:8px;padding-bottom:18px}.view-columns ul li::marker{color:var(--terracotta)}.view-columns ol li::marker{color:var(--green);font-weight:600}.view-dialog details{margin-top:28px;border-top:1px solid var(--line);padding-top:17px;color:var(--muted)}.view-dialog summary{cursor:pointer;color:var(--green);font-weight:600}.view-source{font-size:13px;line-height:1.6;padding-top:12px}.view-source a{color:var(--green)}.view-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:28px}@media(max-width:700px){.view-hero{height:190px}.view-content{padding:26px 22px 28px}.view-content h2{font-size:32px}.view-columns{display:block}.view-columns section+section{border-top:1px solid var(--line);margin-top:24px;padding-top:24px}.view-actions{position:sticky;bottom:0;background:var(--paper);padding-top:14px}}
.primary:disabled{opacity:.65;cursor:wait}
#auth[hidden],#app[hidden]{display:none!important}
.auth-shell{position:fixed;inset:0;z-index:20;overflow:auto}
body:has(#auth:not([hidden])){overflow:hidden}
@media(max-width:700px){input,textarea,select{font-size:16px}}
body:has(dialog[open]){overflow:hidden}
@media(max-width:700px){#recipe-dialog{height:92dvh;max-height:92dvh;overflow:hidden}#recipe-form{height:100%;max-height:100%;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-bottom:env(safe-area-inset-bottom)} }

.import-first{grid-column:span 2;background:var(--sage);padding:14px;border:1px solid #b7c9bb;border-radius:4px}.import-first input{background:#fff}
.transcript{margin:14px 0}.transcript pre{max-height:360px;overflow:auto;white-space:pre-wrap;background:#f4f5ef;border:1px solid var(--line);padding:14px;border-radius:4px;font:13px/1.55 ui-monospace,SFMono-Regular,monospace;color:var(--ink)}

@media(max-width:700px){.view-actions{position:static!important;bottom:auto;padding-top:14px}}
 .collection-field{border:1px solid var(--line);padding:14px;margin:12px 0;min-width:0}.collection-field legend{font-weight:600;color:#526057}.collection-choice{display:flex;align-items:center;gap:10px;font-size:16px;min-height:44px;margin:0}.collection-choice input{width:20px;height:20px;flex:none;accent-color:var(--green)}
 .collection-choice{justify-content:flex-start!important;width:max-content;gap:10px}.collection-remove{background:none;color:var(--terracotta);font-size:22px;padding:4px 10px;line-height:1}
 .manage-collections-list{padding:24px 32px}.manage-collection-row{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:12px 0;font-size:16px}.collection-remove{background:none;color:var(--terracotta);font-size:22px;padding:4px 10px;line-height:1}
.collection-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px}.collection-card{background:var(--paper);border:1px solid var(--line);padding:22px}.collection-card h3{font-size:24px}.collection-card-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.collection-card-actions .danger{border:1px solid #e1b3a4;padding:10px 14px;border-radius:3px}
.collection-toolbar{display:flex;align-items:center;gap:10px;margin:-16px 0 14px;padding:10px 0;border-bottom:1px solid var(--line)}.select-all{display:flex;align-items:center;gap:8px;margin:0;font-size:13px}.select-all input,.collection-row>input{width:18px;height:18px;accent-color:var(--green)}.selection-count{margin-right:auto}.collection-toolbar .danger{border:1px solid #e1b3a4;padding:10px 14px;border-radius:3px}.collection-row{display:flex;align-items:center;gap:14px;border-bottom:1px solid var(--line);padding:18px 0}.collection-row h3{font:500 24px 'Playfair Display',serif;margin:0;min-width:190px}.collection-row>.muted{font-size:13px}.collection-row-actions{display:flex;gap:8px;margin-left:auto}.collection-row-actions .secondary{padding:7px 11px;font-size:13px}
.background-import{margin-top:8px}.import-mode-bar{display:flex;gap:20px;padding:16px 32px 0;border-bottom:1px solid var(--line)}.import-mode{background:none;color:var(--muted);padding:0 0 12px;border-bottom:2px solid transparent}.import-mode.active{color:var(--green);border-color:var(--green)}.batch-panel{padding:22px 32px}.batch-panel h3{font-size:24px}.batch-panel textarea{display:block;width:100%;margin:16px 0}.batch-results{margin-top:16px;font-size:13px;line-height:1.5}.batch-result{margin:8px 0;padding:9px 11px;background:#f4f5ef;border-radius:3px;overflow-wrap:anywhere}.batch-result[data-kind="error"]{color:#ae4d35;background:#f8e9e3}.import-notice{position:fixed;z-index:50;right:20px;bottom:20px;max-width:min(420px,calc(100% - 40px));padding:13px 16px;background:var(--green);color:#fff;border-radius:4px;box-shadow:0 10px 30px #17231d33;font-size:13px}.import-notice[data-kind="error"]{background:#ae4d35}@media(max-width:700px){.import-mode-bar{padding-left:22px;padding-right:22px}.batch-panel{padding:20px 22px}.import-notice{right:12px;bottom:12px}}
@media(max-width:700px){.collection-toolbar{flex-wrap:wrap}.selection-count{margin-right:0;flex:1}.collection-toolbar button{flex:1}.collection-row{gap:10px;flex-wrap:wrap}.collection-row h3{min-width:0;flex:1;font-size:21px}.collection-row>.muted{order:4;width:100%;padding-left:29px}.collection-row-actions{margin-left:0}}
.collection-cards{grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:22px}.collection-visual{position:relative;min-height:230px;padding:0;overflow:hidden;border:0;border-radius:6px;background-color:#dfe8de;background-size:cover;background-position:center;box-shadow:0 10px 28px #27432b18}.collection-visual::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#17231d22,#17231d05 45%,#17231dcc)}.collection-select{position:absolute;z-index:2;top:16px;left:16px;width:20px;height:20px;accent-color:var(--green)}.collection-edit{position:absolute;z-index:3;top:12px;right:10px;width:34px;height:34px;padding:0;border:0;border-radius:50%;background:#fffefaee;color:var(--green);font-size:18px;line-height:34px;text-align:center;box-shadow:0 3px 12px #17231d33;cursor:pointer}.collection-visual-content{position:absolute;z-index:1;inset:auto 20px 18px;color:#fff}.collection-visual-content h3{font-size:28px;text-shadow:0 2px 12px #17231d66}.collection-visual-content p{margin:5px 0 12px;color:#f5f6f1;font-size:13px}.collection-view{background:#fffefa;color:var(--green);padding:9px 12px;border-radius:3px;font-size:12px;font-weight:600}.collection-visual:not([style*='url'])::before{background:linear-gradient(135deg,#78967d,#315d47)}
.form-grid[hidden],.dialog-actions[hidden]{display:none!important}
.dialog-head .top-save{margin-left:auto;margin-right:12px;padding:9px 13px;font-size:13px}.dialog-head .close{flex:none}.dialog-head{align-items:center}.dialog-head input[type=file]{font-size:13px;padding:8px}.dialog-head .top-save[hidden]{display:none!important}#recipe-image-upload{font-size:13px;padding:8px;background:var(--sage);border-color:#b7c9bb}
.import-history-list{padding:20px 32px;max-height:60vh;overflow:auto}.history-item{display:grid;grid-template-columns:auto 1fr auto;gap:4px 12px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}.history-item strong{color:var(--green);font-size:12px}.history-item small{grid-column:2/-1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-item button{grid-column:3;grid-row:1/3}@media(max-width:700px){.import-history-list{padding:18px 22px}.hero .secondary{width:100%}.history-item{grid-template-columns:auto 1fr}.history-item button{grid-column:2;grid-row:auto;justify-self:start}}
.collection-share{position:absolute;z-index:3;right:52px;top:12px;width:34px;height:34px;padding:0;border:0;border-radius:50%;background:#fffefaee;color:var(--green);font-size:20px;line-height:34px;font-weight:600;text-align:center;box-shadow:0 3px 12px #17231d33;cursor:pointer}.public-page{min-height:100vh}.public-recipe{max-width:900px;margin:30px auto;background:var(--paper);padding:48px}.public-recipe h1,.public-page>h1{font-size:48px;margin:10px 0 28px}.public-columns{display:grid;grid-template-columns:.8fr 1.2fr;gap:44px;border-top:1px solid var(--line);padding-top:28px}.public-columns h2{font:500 26px 'Playfair Display',serif}.public-columns li{line-height:1.6;margin-bottom:12px}.public-message{max-width:600px;margin:18vh auto;text-align:center;background:var(--paper);padding:48px}.public-message h1{font-size:42px}@media(max-width:700px){.public-recipe{padding:28px 22px}.public-recipe h1,.public-page>h1{font-size:36px}.public-columns{display:block}.public-columns section+section{border-top:1px solid var(--line);margin-top:24px;padding-top:20px}}
.collection-pdf{position:absolute;z-index:3;right:94px;top:12px;width:34px;height:34px;padding:0;border:0;border-radius:50%;background:#fffefaee;color:var(--green);font-size:17px;line-height:34px;text-align:center;font-weight:600;box-shadow:0 3px 12px #17231d33;cursor:pointer}
.url-import-panel{padding:22px 32px}.url-import-panel label{margin:0}.import-note{font-size:12px;margin:8px 0 0}

#collection-share-result{width:min(620px,calc(100% - 30px));border-radius:8px;overflow:hidden}#collection-share-result .dialog-head{padding:24px 28px 18px}#collection-share-result .dialog-head h2{font-size:30px}#collection-share-result .merge-body{padding:22px 28px 8px}#collection-share-result .merge-body label{display:grid;gap:8px;margin:0;font-size:13px}#collection-share-result .collection-share-url{width:100%;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#collection-share-result .merge-body p{margin:16px 0 10px;line-height:1.5}#collection-share-result .dialog-actions{padding:16px 28px 22px;justify-content:flex-start}#collection-share-result .share-result-close{width:38px;height:38px;padding:0;display:grid;place-items:center;font-size:26px;line-height:1;border-radius:50%}

.collection-pdf svg{width:18px;height:18px;display:block;margin:auto}.view-dialog .view-actions{position:absolute;z-index:4;top:12px;right:110px;display:flex;gap:8px;margin:0;padding:0;background:transparent}.view-dialog .view-actions button{width:34px;height:34px;padding:0;border:0;border-radius:50%;display:grid;place-items:center;background:#fffdfacc;color:var(--green);font-size:22px;line-height:1;box-shadow:0 3px 14px #17231d22}.view-dialog .view-actions #view-done{display:none}.view-dialog .view-actions #view-pdf{font-size:0}.view-dialog .view-actions #view-pdf svg{width:16px;height:16px;display:block;stroke:var(--green)}.view-dialog .view-actions #view-share{position:static;width:34px;height:34px}.view-dialog .view-actions #view-edit{font-size:0}.view-dialog .view-actions #view-edit::before{content:"✎";font-size:22px}.view-dialog .view-actions #view-edit{color:var(--green)}
.view-dialog .view-actions{position:static!important;display:contents!important}
.view-dialog #view-share{position:absolute!important;top:12px!important;right:150px!important;width:34px!important;height:34px!important}
.view-dialog #view-pdf{position:absolute!important;top:12px!important;right:106px!important;width:34px!important;height:34px!important}
.view-dialog #view-edit{position:absolute!important;top:12px!important;right:62px!important;width:34px!important;height:34px!important}
.view-dialog #view-close{right:18px!important;top:12px!important;width:34px!important;height:34px!important}
.collection-pdf svg path,.view-dialog #view-pdf svg path{stroke:#315d47!important;fill:none!important;display:block}
.view-dialog #view-pdf svg{display:none!important}
.view-dialog #view-pdf::before{content:'▤';display:block;color:#315d47;font-size:22px;line-height:34px}
.collection-pdf svg{display:none!important}
.collection-pdf::before{content:'▤';display:block;color:#315d47;font-size:22px;line-height:34px}
.collection-pdf::before,.view-dialog #view-pdf::before{content:none!important;display:none!important}
.collection-pdf,.view-dialog #view-pdf{font-size:18px!important;line-height:34px!important;text-align:center}
.view-dialog #view-pdf svg,.collection-pdf svg{display:none!important}
.collection-pdf,.view-dialog #view-pdf{position:absolute;overflow:hidden;font-size:0!important;color:#315d47}
.collection-pdf::before,.view-dialog #view-pdf::before{content:'';position:absolute;left:7px;top:14px;width:18px;height:11px;border:2px solid #315d47;border-radius:2px;display:block!important;background:transparent}
.collection-pdf::after,.view-dialog #view-pdf::after{content:'';position:absolute;left:10px;top:8px;width:12px;height:8px;border:2px solid #315d47;border-bottom:0;display:block!important;background:#fffefa}
/* Printer option 3: paper output tray, matching the Diz Cooks green line style. */
.collection-pdf::before,.view-dialog #view-pdf::before{content:''!important;display:block!important;position:absolute;left:6px;top:11px;width:22px;height:14px;border:2px solid #315d47;border-radius:3px;background:transparent}
.collection-pdf::after,.view-dialog #view-pdf::after{content:''!important;display:block!important;position:absolute;left:10px;top:19px;width:14px;height:10px;border:2px solid #315d47;border-radius:1px;background:repeating-linear-gradient(to bottom,#fffefa 0 2px,#315d47 2px 3px,#fffefa 3px 5px)}
.collection-pdf,.view-dialog #view-pdf{background-color:#fffefaee!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23315d47' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9V3h12v6'/%3E%3Cpath d='M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2'/%3E%3Cpath d='M6 14h12v7H6z'/%3E%3Cpath d='M18 12h.01'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:center!important;background-size:20px 20px!important}
.collection-pdf::before,.collection-pdf::after,.view-dialog #view-pdf::before,.view-dialog #view-pdf::after{display:none!important;content:none!important}
/* Recipe-view control cleanup */
.view-dialog #view-close{display:grid!important;place-items:center!important;padding:0!important;color:var(--green)!important;font-size:22px!important;line-height:1!important;background:#fffdfacc!important}
.view-dialog #view-share,.view-dialog #view-pdf,.view-dialog #view-edit,.view-dialog #view-close{background:#fffefa!important;box-shadow:0 3px 14px #17231d22!important;display:grid!important;place-items:center!important;align-content:center!important;padding:0!important;line-height:1!important}
.view-dialog .view-actions #view-edit{display:grid!important;place-items:center!important;padding:0!important;color:var(--green)!important;font-size:0!important;line-height:1!important}
.view-dialog .view-actions #view-edit::before{display:block!important;position:static!important;margin:0!important;color:var(--green)!important;font-size:21px!important;line-height:1!important;transform:translateY(-1px)!important}
.collection-pdf,.view-dialog #view-pdf{background-image:none!important}
.collection-pdf::before,.view-dialog #view-pdf::before{content:''!important;display:block!important;position:absolute!important;left:6px!important;top:11px!important;width:22px!important;height:14px!important;border:2px solid #315d47!important;border-radius:3px!important;background:transparent!important}
.collection-pdf::after,.view-dialog #view-pdf::after{content:''!important;display:block!important;position:absolute!important;left:10px!important;top:19px!important;width:14px!important;height:10px!important;border:2px solid #315d47!important;border-radius:1px!important;background:repeating-linear-gradient(to bottom,#fffefa 0 2px,#315d47 2px 3px,#fffefa 3px 5px)!important}
.collection-pdf{display:grid;place-items:center;line-height:1;background-color:var(--paper)!important}
.collection-pdf svg,.view-dialog #view-pdf svg{display:block!important;width:20px!important;height:20px!important;margin:0!important;stroke:currentColor!important}
.collection-pdf::before,.collection-pdf::after,.view-dialog #view-pdf::before,.view-dialog #view-pdf::after{display:none!important;content:none!important}
