:root{color-scheme:light;--bg: #f5f6f4;--surface: #ffffff;--ink: #1c201c;--ink-2: #5f6760;--ink-3: #8a928b;--line: #e4e8e3;--line-strong: #d3d9d2;--green: #3e6b4f;--green-deep: #2f543d;--green-soft: #eef3ee;--amber: #b8863c;--danger: #c4453a;--radius: 14px;--radius-sm: 9px;--shadow: 0 1px 2px rgba(20, 26, 22, .04), 0 10px 28px rgba(20, 26, 22, .06);--font: "PingFang SC", "Microsoft YaHei UI", "Segoe UI", system-ui, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{min-width:320px;min-height:100vh;background:var(--bg);color:var(--ink);font-family:var(--font);line-height:1.7;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--green);outline-offset:2px}.app-shell{min-height:100vh}.app-inner{width:min(960px,100%);margin:0 auto;padding:24px 20px 64px}.brand{display:flex;align-items:baseline;gap:10px;margin-bottom:30px}.brand-name{margin:0;font-size:1.05rem;font-weight:700;letter-spacing:.02em}.brand-sub{margin:0;font-size:.82rem;color:var(--ink-3)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:26px}.home-panel{max-width:680px;margin:0 auto}.panel-head{margin-bottom:22px}.panel-title{margin:4px 0 6px;font-size:clamp(1.5rem,3vw,2rem);letter-spacing:.01em}.panel-sub{margin:0;color:var(--ink-2);font-size:.95rem}.how-strip{margin:26px auto 0;max-width:680px;text-align:center;color:var(--ink-3);font-size:.86rem;letter-spacing:.04em}.dish-form{display:grid;gap:16px}.search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.field{width:100%;border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:.75rem .9rem;background:#fff;color:var(--ink);transition:border-color .15s ease,box-shadow .15s ease}.field::placeholder{color:var(--ink-3)}.field:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px #3e6b4f1f}.search-input{min-height:50px;font-size:1.02rem;border-radius:var(--radius)}.btn-primary{border:none;border-radius:var(--radius);background:var(--green);color:#fff;padding:.82rem 1.35rem;font-weight:600;cursor:pointer;transition:background .15s ease,transform .1s ease}.btn-primary:hover{background:var(--green-deep)}.btn-primary:active{transform:translateY(1px)}.btn-primary:disabled{opacity:.55;cursor:not-allowed;transform:none}.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.form-grid label{display:grid;gap:6px;font-size:.85rem;color:var(--ink-2)}.form-grid .full{grid-column:1 / -1}.quick-tags{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.quick-tags span{font-size:.86rem;color:var(--ink-3)}.quick-tags button{border:1px solid var(--line-strong);border-radius:999px;background:#fff;color:var(--ink-2);padding:6px 13px;cursor:pointer;font-size:.88rem;transition:border-color .15s ease,color .15s ease}.quick-tags button:hover{border-color:var(--green);color:var(--green)}.form-error{margin:0;color:var(--danger);font-size:.88rem}.loading-panel{display:flex;align-items:center;gap:10px;margin-top:14px;color:var(--ink-2);font-size:.92rem}.spinner{width:18px;height:18px;flex-shrink:0;border:2px solid var(--line-strong);border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.eyebrow{margin:0 0 4px;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}.block-title{margin:0 0 10px;font-size:1.12rem}.status-text{margin:0;color:var(--ink-2)}.error-text{margin:0;color:var(--danger);font-weight:600}.detail{display:grid;gap:22px}.detail-head{padding:6px 0 2px}.detail-title{margin:2px 0 8px;font-size:clamp(1.7rem,3.4vw,2.4rem);letter-spacing:.01em}.detail-summary{margin:0 0 18px;max-width:660px;color:var(--ink-2)}.meta-row{display:flex;flex-wrap:wrap;gap:8px}.meta-chip{display:inline-flex;align-items:baseline;gap:6px;padding:6px 12px;border-radius:999px;background:var(--green-soft);color:var(--ink-2);font-size:.86rem}.meta-chip strong{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}.meta-chip .time{color:var(--amber)}.split{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);gap:20px;align-items:start}.intro-card p:last-child{margin-bottom:0}.intro-text{margin:0;color:var(--ink-2)}.card-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px}.card-head h3{margin:0;font-size:1.08rem}.count-pill{font-size:.82rem;color:var(--ink-3);font-variant-numeric:tabular-nums}.count-pill.done{color:var(--green);font-weight:600}.check-list{list-style:none;margin:0;padding:0}.check-row{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 10px;border:none;border-radius:var(--radius-sm);background:transparent;cursor:pointer;text-align:left;transition:background .12s ease}.check-row:hover{background:#f3f5f2}.check-box{width:22px;height:22px;border-radius:7px;display:grid;place-items:center;border:1.5px solid var(--line-strong);color:transparent;font-size:.82rem;font-weight:700;transition:background .12s ease,border-color .12s ease,color .12s ease}.check-row.checked .check-box{background:var(--green);border-color:var(--green);color:#fff}.check-row.checked .ingredient-name{color:var(--ink-3)}.ingredient-name{font-weight:500}.ingredient-amount{color:var(--ink-2);font-size:.9rem}.progress-track{height:5px;border-radius:999px;background:#ecefeb;overflow:hidden;margin-bottom:16px}.progress-bar{height:100%;background:var(--green);border-radius:999px;transition:width .25s ease}.step-list{list-style:none;margin:0;padding:0}.step-item{display:grid;grid-template-columns:34px minmax(0,1fr);gap:12px;padding:13px 10px;border-radius:var(--radius-sm);cursor:pointer;transition:background .12s ease}.step-item:hover{background:#f3f5f2}.step-item.done .step-body{opacity:.55}.step-index{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--green-soft);color:var(--green);font-weight:700;font-size:.95rem;font-variant-numeric:tabular-nums}.step-item.done .step-index{background:var(--green);color:#fff}.step-body{display:grid;gap:3px}.step-meta{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap}.step-title{margin:0;font-size:1rem;font-weight:600}.time-chip{color:var(--amber);font-size:.86rem;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.step-body p{margin:0;color:var(--ink-2);line-height:1.8}.step-note{font-size:.88rem;color:var(--ink-3)}.timer-panel{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;margin-bottom:14px;border-radius:var(--radius-sm);background:var(--green-soft);border:1px solid var(--line)}.timer-info{display:grid;gap:2px;min-width:0}.timer-label{font-size:.85rem;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timer-time{font-size:1.5rem;font-weight:700;color:var(--green);font-variant-numeric:tabular-nums;line-height:1.2}.timer-actions{display:flex;gap:8px}.timer-btn{border:1px solid var(--line-strong);border-radius:999px;background:#fff;color:var(--ink-2);padding:6px 13px;font-size:.86rem;cursor:pointer;transition:border-color .15s ease,color .15s ease}.timer-btn:hover{border-color:var(--green);color:var(--green)}.timer-btn.ghost{background:transparent}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;background:#1c201c73;padding:20px}.modal{width:min(360px,100%);background:#fff;border-radius:var(--radius);box-shadow:0 24px 60px #141a1640;padding:26px;text-align:center}.modal-title{margin:4px 0 10px;font-size:1.35rem}.modal-text{margin:0 0 20px;color:var(--ink-2);line-height:1.8}.modal-btn{width:100%}.tips-list{margin:0;padding-left:1.2rem;color:var(--ink-2);line-height:1.9}.back-link{display:inline-flex;align-items:center;gap:8px;color:var(--green);text-decoration:none;font-weight:600}.back-link:hover{color:var(--green-deep)}@media(max-width:900px){.split{grid-template-columns:1fr}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.search-row,.form-grid{grid-template-columns:1fr}.app-inner{padding-inline:14px}.card{padding:20px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}.top-nav{display:flex;align-items:center;gap:14px;margin-left:auto;flex-wrap:wrap;font-size:.9rem}.top-nav a{color:var(--green);text-decoration:none;font-weight:600}.top-nav a:hover{color:var(--green-deep)}.user-name{color:var(--ink-2)}.link-button{border:none;background:none;color:var(--green);font-weight:600;cursor:pointer;padding:0}.link-button:hover{color:var(--green-deep)}.auth-panel{max-width:440px;margin:8vh auto 0}.auth-form{display:grid;gap:16px;margin-top:18px}.auth-form label{display:grid;gap:6px;font-size:.88rem;color:var(--ink-2)}.auth-form input{width:100%;border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:.75rem .9rem;background:#fff;color:var(--ink)}.auth-form button{border:none;border-radius:var(--radius);background:var(--green);color:#fff;padding:.82rem 1.35rem;font-weight:600;cursor:pointer}.auth-form button:hover{background:var(--green-deep)}.auth-form button:disabled{opacity:.55;cursor:not-allowed}.switch-line{margin:18px 0 0;color:var(--ink-2);font-size:.9rem}.switch-line a{color:var(--green);font-weight:600;text-decoration:none}.recipe-list{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:12px}.recipe-row{display:grid;gap:4px;padding:16px 18px;border:1px solid var(--line);border-radius:var(--radius-sm);text-decoration:none;color:inherit;transition:border-color .15s ease,background .15s ease}.recipe-row:hover{border-color:var(--green);background:var(--green-soft)}.recipe-title{font-weight:700}.recipe-summary{color:var(--ink-2);font-size:.9rem}.pager{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:20px}.pager button{border:1px solid var(--line-strong);border-radius:999px;background:#fff;color:var(--ink-2);padding:7px 15px;cursor:pointer}.pager button:disabled{opacity:.45;cursor:not-allowed}.status-text{color:var(--ink-2)}
