:root{--bg: #f3efe6;--bg-deep: #e7e0d2;--ink: #1f2a24;--muted: #5d6b63;--accent: #2f6f5e;--accent-soft: #d7ebe3;--line: #d5cdbf;--danger: #b4453a;--card: rgba(255, 252, 246, .92);--shadow: 0 18px 40px rgba(48, 56, 45, .08);--radius: 16px;--font: "DM Sans", "PingFang SC", sans-serif;--display: "Fraunces", "Songti SC", serif}*{box-sizing:border-box}html{scrollbar-gutter:stable}html,body,#root{min-height:100%}body{margin:0;color:var(--ink);font-family:var(--font);overflow-y:scroll;background:radial-gradient(circle at 12% 10%,#fff8e8 0%,transparent 35%),radial-gradient(circle at 88% 0%,#dceee7 0%,transparent 32%),linear-gradient(160deg,var(--bg),var(--bg-deep))}a{color:inherit;text-decoration:none}.layout{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{padding:28px 20px;border-right:1px solid var(--line);background:linear-gradient(180deg,#fffcf6f2,#ecf5f0e6);position:sticky;top:0;height:100vh}.brand{font-family:var(--display);font-size:1.6rem;margin:0 0 8px}.brand-sub{color:var(--muted);font-size:.9rem;margin-bottom:28px}.nav{display:flex;flex-direction:column;gap:8px}.nav a{padding:12px 14px;border-radius:12px;color:var(--muted)}.nav a.active,.nav a:hover{background:var(--accent-soft);color:var(--accent)}.content{padding:28px 32px 48px}.page-head{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:22px}.page-head h1{font-family:var(--display);font-size:2rem;margin:0 0 6px}.page-head p{margin:0;color:var(--muted)}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.toolbar{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px;align-items:end}.stack{display:flex;flex-direction:column;gap:14px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid .full{grid-column:1 / -1}.tag{display:inline-block;margin:2px 4px 2px 0;padding:3px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:.8rem}.muted{color:var(--muted)}.error{color:var(--danger)}.row-actions{display:flex;gap:8px;flex-wrap:wrap}.ui-field{display:flex;flex-direction:column;gap:6px;min-width:160px}.ui-label{font-size:.9rem;color:var(--muted);font-weight:500}.ui-desc{font-size:.8rem;color:var(--muted)}.ui-error{font-size:.82rem;color:var(--danger)}.ui-input,.ui-select-trigger{border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px 12px;color:var(--ink);font:inherit;outline:none;box-shadow:0 0 0 3px transparent;transition:border-color .15s ease,box-shadow .15s ease}.ui-input:focus,.ui-select-trigger:focus-visible,.ui-select-trigger[data-expanded]{border-color:var(--accent);box-shadow:0 0 0 3px #2f6f5e26}.ui-textarea{min-height:110px;resize:vertical;width:100%}.ui-select-trigger{display:inline-flex;align-items:center;justify-content:space-between;gap:10px;min-width:200px;width:100%;max-width:280px;cursor:pointer;text-align:left}.ui-select-icon{color:var(--muted);font-size:.85rem}.ui-select-content{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:6px;z-index:50;overflow:hidden;min-width:var(--kb-select-trigger-width, 200px);animation:pop .12s ease}.ui-select-list{outline:none;max-height:260px;overflow:auto}.ui-select-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:10px;cursor:pointer;outline:none}.ui-select-item[data-highlighted],.ui-select-item:hover{background:var(--accent-soft);color:var(--accent)}.ui-select-item[data-selected]{font-weight:600}.ui-select-check{color:var(--accent);font-size:.85rem}.ingredient-toolbar{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:10px;align-items:end}.ingredient-toolbar .ingredient-picker{flex:1 1 240px;max-width:320px;position:relative}.ingredient-toolbar .ui-field{flex:0 1 160px}.ingredient-toolbar .ui-btn{flex:0 0 auto;min-width:88px;height:42px;align-self:end}.ingredient-picker-menu{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:40;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);max-height:240px;overflow:auto;padding:6px}.ingredient-picker-item{width:100%;display:flex;justify-content:space-between;align-items:center;gap:10px;border:none;background:transparent;text-align:left;padding:10px 12px;border-radius:10px;cursor:pointer;font:inherit;color:var(--ink)}.ingredient-picker-item:hover,.ingredient-picker-item.is-active{background:var(--accent-soft);color:var(--accent)}.ingredient-picker-empty{padding:12px;color:var(--muted);font-size:.9rem}.ingredient-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.ingredient-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:36px;padding:6px 4px 6px 2px;border-bottom:1px solid var(--line);background:transparent;border-radius:0;border-left:none;border-right:none;border-top:none}.ingredient-list li:last-child{border-bottom:none}.ingredient-list .name{flex:1;min-width:0;color:var(--ink)}.ingredient-list .link-remove{flex-shrink:0;border:none;background:transparent;color:var(--danger);font:inherit;font-size:.9rem;padding:4px 6px;cursor:pointer;opacity:.85}.ingredient-list .link-remove:hover{opacity:1;text-decoration:underline}.ui-combo-control{display:flex;align-items:center;gap:0;width:100%;max-width:280px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 0 0 3px transparent;transition:border-color .15s ease,box-shadow .15s ease}.ingredient-picker .ui-combo-control{max-width:none}.ui-combo-control:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #2f6f5e26}.ui-combo-input{flex:1;min-width:0;border:none!important;box-shadow:none!important;border-radius:12px 0 0 12px;background:transparent}.ui-combo-trigger{border:none;background:transparent;padding:0 10px;cursor:pointer;color:var(--muted);display:inline-flex;align-items:center;height:100%}.ui-btn{border:none;border-radius:12px;padding:10px 14px;cursor:pointer;font:inherit;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:6px}.ui-btn:disabled{opacity:.55;cursor:not-allowed}.ui-btn-primary{background:var(--accent);color:#fff}.ui-btn-secondary{background:#fff;color:var(--ink);border:1px solid var(--line)}.ui-btn-danger{background:var(--danger);color:#fff}.ui-checkbox{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.ui-checkbox-input{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-checkbox-control{width:18px;height:18px;border-radius:6px;border:1px solid var(--line);background:#fff;display:inline-flex;align-items:center;justify-content:center}.ui-checkbox[data-checked] .ui-checkbox-control{background:var(--accent);border-color:var(--accent);color:#fff}.ui-checkbox-label{color:var(--ink);font-size:.95rem}.ui-table-wrap{width:100%;overflow:auto;border:1px solid var(--line);border-radius:14px;background:#fff}.ui-table{width:100%;border-collapse:collapse}.ui-table th,.ui-table td{text-align:left;padding:12px;border-bottom:1px solid var(--line);vertical-align:top}.ui-table th{color:var(--muted);font-weight:500;font-size:.9rem;background:#faf7f1;position:sticky;top:0}.ui-table tr:last-child td{border-bottom:none}.ui-table tbody tr:hover td{background:#d7ebe359}.ui-table-empty,.ui-table-empty-hint{display:none}.checks{display:flex;flex-wrap:wrap;gap:12px}.image-upload{display:flex;flex-direction:column;gap:10px}.image-preview{width:min(280px,100%);max-height:200px;object-fit:cover;border-radius:14px;border:1px solid var(--line);background:#fff}.video-preview{width:min(420px,100%);max-height:280px;border-radius:14px;border:1px solid var(--line);background:#111}.image-upload-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.upload-label{position:relative;overflow:hidden;cursor:pointer}.upload-label input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}@keyframes pop{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media(max-width:900px){.layout{grid-template-columns:1fr}.sidebar{position:static;height:auto}.form-grid{grid-template-columns:1fr}.ingredient-toolbar .ingredient-picker,.ingredient-toolbar .ui-field{flex:1 1 100%;max-width:none}.ui-select-trigger{max-width:none}}
