:root{font-family:system-ui,-apple-system,'Microsoft YaHei',sans-serif;color:#24313c;background:#f5f6f8}*{box-sizing:border-box}body{margin:0}header{background:white;padding:24px 5%;display:flex;gap:24px;align-items:center;border-bottom:1px solid #eee;position:sticky;top:0;z-index:2}header strong{font-size:23px;color:#f06b40}nav{display:flex;gap:24px;flex:1}a{color:#dc633e;text-decoration:none}main{max-width:1280px;margin:32px auto;padding:0 24px}section{scroll-margin-top:100px;background:white;border-radius:20px;padding:28px;margin-bottom:28px;box-shadow:0 4px 20px #25313c05}h1,h2,h3{margin-top:0}h2{font-size:22px}.intro{color:#7c8791;line-height:1.8}.layout{display:grid;grid-template-columns:1fr 1fr;gap:32px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}label{display:block;font-size:14px;color:#586773;margin-bottom:16px}input,textarea,select{display:block;width:100%;margin-top:8px;padding:12px;border:1px solid #e2e6eb;background:#fafbfc;border-radius:9px;font:inherit;color:#24313c}textarea{min-height:100px;resize:vertical}input[type=checkbox]{display:inline;width:auto}button{border:0;border-radius:9px;background:#ff7043;color:white;padding:11px 18px;cursor:pointer;font:inherit}.subtle{background:#fff0e9;color:#da5e35}.danger{background:#f9eff0;color:#bb4050}.inline{display:inline}.inline button{padding:7px 12px;font-size:13px}.alert{padding:18px;border-radius:12px;background:#edf5e9;margin:16px 0}.error{background:#fff0f0;color:#a63b43}.pill{background:#eff5ed;color:#667b5d;border-radius:18px;padding:5px 10px;font-size:12px}table{width:100%;border-collapse:collapse;font-size:14px}td,th{text-align:left;padding:13px 8px;border-bottom:1px solid #edf0f2}small{color:#89949e}.stack{margin:18px 0}.checked{text-decoration:line-through;color:#89949e}.empty{padding:24px;text-align:center;color:#89949e}.notice{padding:16px;background:#fff7ee;border-radius:12px;font-size:13px;line-height:1.7}.actions{display:flex;gap:12px;align-items:center}footer{padding:24px;text-align:center;color:#89949e;font-size:12px}@media(max-width:850px){.layout,.fields{grid-template-columns:1fr}header{position:static;flex-wrap:wrap}nav{gap:12px}main{padding:0 12px}section{padding:18px}table{font-size:12px}}
:root{background:#f3f5f8;color:#283446}.sidebar{position:fixed;inset:0 auto 0 0;width:224px;background:#192332;color:#c4cbd6;display:flex;flex-direction:column;z-index:5;padding:28px 16px}.brand{display:flex;gap:12px;align-items:center;color:white;font-size:20px;font-weight:700;padding:0 8px 30px}.brand small{display:block;font-size:11px;color:#8f9baa;font-weight:400;margin-top:8px}.brand-icon{background:#ff7043;color:white;width:42px;height:42px;display:grid;place-items:center;border-radius:13px;font-size:22px;flex-shrink:0}.nav-caption{color:#6e7d90;font-size:11px;letter-spacing:2px;padding:15px 16px}.sidebar nav{display:flex;flex-direction:column;gap:8px;flex:none}.sidebar nav a{display:flex;align-items:center;gap:14px;padding:15px 16px;color:#adb8c8;font-size:14px;border-radius:9px}.sidebar nav a:hover{background:#263346;color:white}.sidebar nav a.active{background:#ff7043;color:white;box-shadow:0 5px 16px #ff704326}.nav-icon{font-size:20px;width:24px;text-align:center}.sidebar-foot{margin-top:auto;font-size:12px;padding:20px 14px;color:#8e9caf;border-top:1px solid #2a3546}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#82b48e;margin-right:6px}.workspace{margin-left:224px;min-height:100vh}.topbar{height:76px;background:white;padding:0 32px;display:flex;justify-content:space-between;gap:16px;align-items:center;border-bottom:1px solid #e9edf2;position:sticky;top:0;z-index:3}.breadcrumb{color:#9aa4b0;font-size:13px}.breadcrumb span{padding:0 12px;color:#cbd1d9}.breadcrumb b{font-weight:500;color:#48566a}.account{display:flex;gap:12px;align-items:center;font-size:13px}.user-avatar{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:#fff0e9;color:#e86e44}.account button{font-size:12px;padding:7px 11px;background:#f2f4f7;color:#778496}main{max-width:1500px;margin:0 auto;padding:32px}.page-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px;gap:14px}.page-heading h1{font-size:26px;margin:0 0 9px}.page-heading .intro{margin:0;font-size:13px}.date-pill{background:white;padding:9px 14px;border:1px solid #e8ecf2;border-radius:7px;font-size:12px;color:#8290a3;white-space:nowrap}section{border:1px solid #e9edf2;border-radius:12px;padding:24px;box-shadow:none;scroll-margin-top:100px;min-width:0;margin-bottom:24px}h2{font-size:17px;margin-bottom:22px}h3{font-size:15px}.layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}.fields{gap:14px}.intro{font-size:13px}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.panel-heading a{font-size:12px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:24px}.stat-card{display:flex;align-items:center;gap:18px;background:white;border:1px solid #e9edf2;border-radius:12px;padding:24px 20px;color:#334259}.stat-card div{min-width:0}.stat-card small{display:block;font-size:12px}.stat-card strong{display:block;font-size:30px;font-weight:650;margin:7px 0;color:#243449}.stat-card div span{font-size:11px;color:#9ba5b3}.stat-icon{width:48px;height:48px;border-radius:12px;display:grid;place-items:center;font-size:24px;flex-shrink:0}.orange{background:#fff0e9;color:#fa784b}.green{background:#edf7ee;color:#76a17f}.blue{background:#edf4fd;color:#6c96d0}.purple{background:#f3effd;color:#9b83c4}.quick-links{display:grid;gap:14px}.quick-links a{display:block;padding:16px;border:1px solid #edf0f5;border-radius:9px;color:#485970;font-size:14px}.quick-links a:hover{border-color:#ffb59c;background:#fffaf7}.quick-links small{display:block;margin-top:8px;font-size:12px}table{font-size:13px;table-layout:auto}th{font-weight:500;background:#f8fafc;color:#8290a0}td,th{padding:15px 10px;word-break:break-word}button{font-size:13px;padding:10px 16px}input,textarea,select{font-size:13px}label{font-size:12px}textarea{min-height:110px}small{font-size:12px}.actions{flex-wrap:wrap}.actions input{max-width:230px}.date-filter{margin-bottom:24px;align-items:flex-end}.date-filter label{margin:0}.date-filter a{padding-bottom:10px;font-size:12px}.notice{background:#fff8ee;color:#a18a6b;font-size:12px}.alert{font-size:13px}.dashboard .layout>section{height:100%}.dashboard .layout{margin-bottom:24px}footer{font-size:11px;padding:12px 24px 26px}@media(max-width:1150px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.layout{grid-template-columns:minmax(0,1fr)}.stat-card{padding:18px}.dashboard .layout>section{height:auto}}@media(max-width:700px){.sidebar{width:150px;padding:20px 8px}.brand{font-size:15px;gap:7px;padding:0 2px 22px}.brand-icon{width:30px;height:30px;font-size:17px;border-radius:9px}.brand small{font-size:9px}.sidebar nav a{font-size:12px;padding:13px 9px;gap:6px}.nav-caption{padding:12px 9px;font-size:10px}.workspace{margin-left:150px}.topbar{padding:0 16px;height:64px}.account{gap:7px}.account>span:not(.user-avatar){display:none}.breadcrumb{font-size:11px}.breadcrumb span{padding:0 6px}.user-avatar{display:none}main{padding:22px 14px}.page-heading{align-items:flex-start;flex-direction:column}.page-heading h1{font-size:22px}section{padding:16px}.stats{gap:10px}.stat-card{padding:13px;gap:10px}.stat-icon{display:none}.stat-card strong{font-size:25px}.fields{grid-template-columns:1fr}.sidebar-foot{font-size:10px;padding:16px 8px}.date-filter{align-items:stretch}table{font-size:12px}.inline button{padding:5px 7px}td,th{padding:11px 6px}}
@media(max-width:500px){.sidebar{position:static;width:100%;padding:14px 12px}.brand{padding:0 4px 12px}.sidebar nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.sidebar nav a{padding:9px;font-size:12px}.nav-caption,.sidebar-foot{display:none}.workspace{margin-left:0}.topbar{position:static;height:auto;min-height:56px;padding:12px;justify-content:space-between;flex-wrap:wrap}main{padding:18px 12px}.page-heading h1{font-size:23px}section{overflow-x:auto}table{min-width:260px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.login-body{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(165deg,#192332 0 46%,#f3f5f8 46% 100%)}
.login-card{width:min(400px,100%);background:white;border:1px solid #e9edf2;border-radius:16px;padding:32px 28px;box-shadow:0 18px 48px #1923321f}
.login-card .brand{color:#192332;padding:0 0 8px}
.login-card h1{font-size:22px;margin:18px 0 8px}
.login-card .intro{margin:0 0 18px}
.login-card button{width:100%;margin-top:4px;padding:12px 16px}
.list-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px}.list-toolbar h2{margin:0}.add-button{display:inline-block;background:#ff7043;color:white;border-radius:9px;padding:10px 16px;font-size:13px}.thumb{width:56px;height:56px;border-radius:8px;object-fit:cover;background:#f3f5f8;display:inline-grid;place-items:center}.placeholder{color:#9aa4b0;font-size:12px}.pager{display:flex;justify-content:flex-end;align-items:center;gap:14px;margin-top:16px;color:#687588;font-size:13px}.modal{border:0;padding:0;background:transparent;max-width:calc(100vw - 32px)}.modal::backdrop{background:#19233299}.modal-card{width:min(760px,calc(100vw - 32px));background:white;border:1px solid #e9edf2;border-radius:16px;padding:24px;box-shadow:0 18px 48px #1923322e}.photo-grid{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0 16px}.photo{width:84px;margin:0;font-size:12px;color:#687588}.photo img{width:84px;height:84px;object-fit:cover;border-radius:8px;display:block;margin-bottom:6px}.photo input{display:inline;width:auto;margin:0 4px 0 0}.modal-card{max-height:calc(100vh - 48px);overflow:auto}
.upload-block{margin:2px 0 8px}.upload-label{font-size:12px;color:#586773;margin-bottom:10px}.upload-label small{margin-left:8px;color:#9aa4b0}.photo-grid{display:flex;flex-wrap:wrap;gap:12px;margin:0}.saved-photos,#image-preview{display:contents}.tile{position:relative;width:96px;height:96px;border-radius:12px;overflow:hidden;background:#f3f5f8}.tile img{width:100%;height:100%;object-fit:cover;display:block}.tile input{display:none}.tile .tile-x{position:absolute;top:6px;right:6px;width:22px;height:22px;padding:0;border-radius:50%;background:#192332b8;color:#fff;font-size:16px;line-height:1}.add-tile{width:96px;height:96px;border-radius:12px;border:1.5px dashed #ffc2ae;background:#fff7f4;color:#ff7043;display:grid;place-items:center;cursor:pointer;padding:0}.add-tile span{font-size:36px;font-weight:300;line-height:1}.add-tile:hover{border-color:#ff7043;background:#fff1eb}#recipe-images{display:none !important}.raw-text{white-space:pre-line;max-width:320px;color:#48566a}.chip-row{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}.chip{display:inline-block;border:1px solid #e4e9f0;background:#fff;color:#334259;border-radius:999px;padding:6px 12px;font-size:13px;cursor:pointer}.chip.on{background:#ff7043;border-color:#ff7043;color:#fff}.group{margin:0 0 16px}.group h4{margin:0 0 8px}#category-shown input{margin-left:8px}#category-shown[hidden]{display:none !important}.tree-toggle{width:28px;height:28px;margin-right:4px;padding:0;border-radius:6px;background:transparent;color:#687588;vertical-align:middle}.tree-toggle:disabled{opacity:.35;cursor:default}.tree-toggle .caret{display:inline-block;transition:transform .15s}.tree-toggle[aria-expanded=true] .caret{transform:rotate(90deg)}.tree-child[hidden]{display:none !important}.tree-name{padding-left:42px;color:#334259}.show-cell{white-space:nowrap}button.switch{width:42px;height:24px;margin-left:10px;padding:0;border-radius:999px;background:#d7dee7;position:relative;vertical-align:middle}button.switch span{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;display:block;transition:transform .15s}button.switch.on{background:#ff7043}button.switch.on span{transform:translateX(18px)}.toolbar-actions{display:flex;align-items:center;gap:10px;margin-left:auto}.search-form{display:flex;align-items:center;gap:8px}.search-form input{width:220px;margin:0}
