:root{color:#172033;background:#eef3f8;font-family:Arial,Microsoft YaHei,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(180deg,#e5ecf5e6,#f5f7faf2),#eef3f8}button,input,textarea,select{font:inherit}button{min-height:34px;border:0;border-radius:6px;padding:7px 12px;color:#fff;background:#1d5fd1;cursor:pointer;transition:background .16s ease,box-shadow .16s ease,transform .16s ease}button:hover{background:#164fae;box-shadow:0 8px 18px #1d5fd129}button:active{transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}button.ghost{color:#27364a;background:#e6edf5}button.ghost:hover{background:#dbe5ef;box-shadow:none}button.danger{background:#d13d3d}button.danger:hover{background:#b93030}button.warning{background:#c77918}button.warning:hover{background:#a96312}input,textarea,select{width:100%;border:1px solid #cbd6e2;border-radius:6px;padding:8px 10px;color:#172033;background:#fff;outline:none;transition:border-color .16s ease,box-shadow .16s ease}input:focus,textarea:focus,select:focus{border-color:#1d5fd1;box-shadow:0 0 0 3px #1d5fd11f}textarea{min-height:84px;resize:vertical}label{display:grid;gap:6px;color:#5a697d;font-size:14px}.login-view{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(390px,100%);display:grid;gap:16px;padding:30px;background:#fff;border:1px solid #dbe5ef;border-radius:8px;box-shadow:0 22px 58px #1a263824}.login-mark{width:max-content;margin-bottom:10px;padding:4px 8px;border-radius:6px;color:#0e7490;background:#dff7fb;font-size:12px;font-weight:700}.login-card h1,.topbar h1,.panel-head h2,.modal-head h2,.menu-head h3,.section-head h3{margin:0}.login-card h1{font-size:24px}.login-card p{margin:8px 0 0;color:#68788d;font-size:14px;line-height:1.6}.shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:230px;padding:18px 12px;color:#b8c4d6;background:#142033;border-right:1px solid rgba(255,255,255,.08)}.brand{display:grid;gap:4px;margin:6px 10px 22px}.brand strong{color:#fff;font-size:18px}.brand span{color:#8090a6;font-size:12px}.sidebar button{width:100%;display:flex;align-items:center;gap:10px;margin-bottom:5px;color:inherit;text-align:left;background:transparent;box-shadow:none}.sidebar button:hover,.sidebar button.active{color:#fff;background:#20314a;box-shadow:none}.sidebar button.active{border-left:3px solid #22a6b3}.nav-icon{width:24px;height:24px;display:inline-grid;place-items:center;flex:0 0 24px;border-radius:6px;color:#bdeff5;background:#22a6b324}.nav-icon svg{width:16px;height:16px}.workspace{margin-left:230px}.topbar{position:sticky;top:0;z-index:2;min-height:66px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:10px 24px;background:#ffffffeb;border-bottom:1px solid #dce5ef;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.topbar h1{font-size:20px}.topbar p{margin:4px 0 0;color:#65758a;font-size:13px}.content{padding:22px}.stack{display:grid;gap:16px}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.stats article,.panel,.form-card{background:#fff;border:1px solid #dce5ef;border-radius:8px;box-shadow:0 10px 28px #18273e0f}.stats article{padding:18px}.stats span{color:#68788d;font-size:13px}.stats strong{display:block;margin-top:8px;color:#111827;font-size:30px;letter-spacing:0}.panel{overflow:hidden}.panel-head,.menu-head,.section-head,.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-head{padding:14px 16px;background:#f8fbfd;border-bottom:1px solid #dce5ef}.panel-head h2,.modal-head h2{font-size:18px}.data-table{width:100%;border-collapse:collapse;background:#fff}.data-table th,.data-table td{padding:12px 14px;border-bottom:1px solid #edf2f7;text-align:left;vertical-align:top;font-size:14px}.data-table th{color:#5a697d;background:#fbfdff;font-size:13px;font-weight:700}.data-table tr:hover td{background:#f8fbff}.actions{display:flex;flex-wrap:wrap;gap:8px}.empty{padding:26px;color:#718096;text-align:center}.menu-block{margin:14px;border:1px solid #dce5ef;border-radius:8px;overflow:hidden;background:#fff}.menu-head{padding:14px;background:#fbfdff;border-bottom:1px solid #dce5ef}.menu-head p{margin:5px 0 0;color:#68788d;font-size:13px}.dish-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;padding:14px}.dish-card{overflow:hidden;background:#fff;border:1px solid #dce5ef;border-radius:8px}.dish-card img,.image-placeholder{width:100%;aspect-ratio:16 / 9;object-fit:cover;display:grid;place-items:center;background:#eaf0f6;color:#718096}.dish-body{display:grid;gap:8px;padding:12px}.dish-body span{color:#68788d;font-size:13px}.modal-backdrop{position:fixed;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:20px;background:#121f318a}.modal-card{width:min(720px,100%);max-height:88vh;overflow:auto;padding:0 18px 18px;background:#fff;border-radius:8px;box-shadow:0 24px 70px #121f3147}.modal-card.wide{width:min(1120px,100%)}.modal-head{position:sticky;top:0;z-index:3;margin:0 -18px 16px;padding:16px 18px 12px;border-bottom:1px solid #edf2f7;background:#fff}.icon-btn{width:34px;height:34px;padding:0;color:#27364a;background:#e6edf5}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid .full,.form-grid footer,.dish-editor footer{grid-column:1 / -1}.switch{display:flex;align-items:center;gap:8px}.switch input{width:auto}.inline-field{display:flex;gap:10px}.inline-field input{flex:1}.inline-field button{white-space:nowrap}footer{display:flex;justify-content:flex-end;gap:10px;padding-top:8px}.dish-editor{display:grid;grid-template-columns:minmax(260px,330px) minmax(0,1fr);gap:16px}.form-card{display:grid;gap:14px;align-content:start;padding:14px;box-shadow:none}.preview{width:100%;aspect-ratio:16 / 9;object-fit:cover;border:1px solid #dce5ef;border-radius:8px}.step-card{padding:12px;border:1px solid #dce5ef;border-radius:8px;background:#f8fbfd}.step-card+.step-card{margin-top:12px}.step-toolbar{display:flex;justify-content:space-between;gap:10px;margin-bottom:12px}.step-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.toast{position:fixed;right:18px;bottom:18px;z-index:30;padding:10px 14px;color:#fff;background:#142033;border-radius:8px;box-shadow:0 14px 36px #121f3138}@media(max-width:820px){.sidebar{position:static;width:auto}.workspace{margin-left:0}.stats,.form-grid,.dish-editor,.step-fields{grid-template-columns:1fr}.topbar{position:static}}
