:root{color-scheme:light;--bg-main:#e7f3ee;--bg-card:#f9fcfa;--ink-main:#162925;--ink-soft:#4d6660;--mint:#1c8f6b;--mint-dark:#146d51;--amber:#d98f24;--danger:#b83c3c;--border:#c8ddd5;--shadow:0 28px 70px rgba(14,51,41,0.15);--font-title:"Avenir Next","Gill Sans Nova","Trebuchet MS",sans-serif;--font-body:"Source Sans Pro","Segoe UI","Helvetica Neue",sans-serif}*{box-sizing:border-box}body,html{margin:0;min-height:100%}body{background:radial-gradient(circle at 8% 12%,#d2f0e2 0,transparent 30%),radial-gradient(circle at 92% 88%,#f9e5c8 0,transparent 32%),linear-gradient(145deg,var(--bg-main) 0,#f4f9f7 60%,#edf5f2 100%);color:var(--ink-main);font-family:var(--font-body)}.auth-shell{position:relative;min-height:100dvh;display:grid;place-items:center;overflow:hidden;padding:24px}.ambient{position:absolute;border-radius:999px;filter:blur(10px);opacity:.6}.ambient-one{width:280px;height:280px;left:-70px;top:-60px;background:linear-gradient(160deg,#66c6a2,transparent 70%);animation:float-ambient 8s ease-in-out infinite}.ambient-two{width:360px;height:360px;right:-120px;bottom:-100px;background:linear-gradient(210deg,#f4ca87,transparent 68%);animation:float-ambient 9s ease-in-out infinite reverse}.auth-panel{width:min(560px,100%);padding:24px 20px 18px;border:1px solid var(--border);border-radius:24px;background:linear-gradient(180deg,#fcfffd 0,var(--bg-card) 100%);box-shadow:var(--shadow);position:relative;z-index:1;animation:reveal-card .6s ease-out both}.brand-header{text-align:center;display:grid;grid-gap:8px;gap:8px;margin-bottom:18px}.brand-logo-image{margin:0 auto;object-fit:contain}.login-form{display:grid;grid-gap:10px;gap:10px}.login-form label{font-weight:700;color:#264238;font-size:.9rem}.login-form input{border-radius:13px;border:1px solid #b5cfc5;background:#ffffff;height:48px;padding:0 14px;font-size:.97rem;color:#133028;transition:border-color .18s ease,box-shadow .18s ease}.login-form input:focus{outline:none;border-color:var(--mint);box-shadow:0 0 0 4px rgba(28,143,107,.16)}.login-form button{margin-top:8px;border:0;border-radius:13px;height:48px;font-size:.97rem;font-weight:700;color:#fff;background:linear-gradient(120deg,var(--mint) 0,var(--mint-dark) 100%);cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,opacity .16s ease}.login-form button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 12px 20px rgba(20,109,81,.24)}.login-form button:disabled{opacity:.72;cursor:default}.form-error{margin:2px 0 0;color:var(--danger);font-size:.89rem;font-weight:600}.auth-footer{margin-top:18px;padding-top:16px;border-top:1px dashed #c7ddd3;text-align:center;color:#5e7a71;font-size:.82rem}.dashboard-shell{min-height:100dvh;padding:24px 16px 40px}.dashboard-panel{width:min(1240px,100%);margin:0 auto;border:1px solid var(--border);border-radius:24px;background:linear-gradient(180deg,#fbfffd,#f2faf6);box-shadow:var(--shadow);padding:22px;display:grid;grid-gap:16px;gap:16px;animation:reveal-card .6s ease-out both}.dashboard-tag{margin:0 0 6px;text-transform:uppercase;letter-spacing:.09em;color:var(--amber);font-size:.78rem;font-weight:700}.dashboard-panel h1{margin:0;font-family:var(--font-title)}.dashboard-subtitle{margin:8px 0 0;color:var(--ink-soft)}.dashboard-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.dashboard-layout{display:grid;grid-template-columns:260px minmax(0,1fr);grid-gap:14px;gap:14px;align-items:start}.dashboard-sidebar{border:1px solid #c9ddd5;border-radius:16px;background:#ffffff;padding:14px;position:-webkit-sticky;position:sticky;top:16px}.dashboard-sidebar h2{margin:0 0 12px;font-family:var(--font-title);font-size:1.05rem}.dashboard-sidebar nav{display:grid;grid-gap:8px;gap:8px}.dashboard-sidebar-link{border:1px solid #c5dbd2;border-radius:12px;background:#f8fcfa;color:#1e3b33;font-weight:700;font-size:.92rem;text-align:left;min-height:42px;padding:0 12px;cursor:pointer;transition:border-color .16s ease,background-color .16s ease}.dashboard-sidebar-link.is-active{border-color:var(--mint);background:#e9f6f1}.dashboard-content{min-width:0}.dashboard-card{border:1px solid #c9ddd5;border-radius:16px;background:#ffffff;padding:16px}.dashboard-card h2{font-size:1.18rem}.dashboard-card h2,.dashboard-card h3{margin:0;font-family:var(--font-title)}.dashboard-card h3{font-size:1rem}.dashboard-card p{margin:8px 0 0;color:#406056}.dashboard-highlight{border-left:4px solid var(--mint);background:linear-gradient(180deg,#ffffff,#f5fbf8)}.dashboard-error{border-left:4px solid var(--danger)}.dashboard-forms-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px;gap:16px}.dashboard-form{margin-top:12px;display:grid;grid-gap:10px;gap:10px}.dashboard-two-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.dashboard-form input,.dashboard-form select,.dashboard-form textarea{width:100%;border-radius:12px;border:1px solid #b5cfc5;background:#fff;min-height:44px;padding:10px 12px;font-size:.95rem;color:#133028;font-family:var(--font-body)}.dashboard-form textarea{min-height:92px;resize:vertical}.dashboard-form input:focus,.dashboard-form select:focus,.dashboard-form textarea:focus{outline:none;border-color:var(--mint);box-shadow:0 0 0 4px rgba(28,143,107,.16)}.dashboard-form input:disabled{background:#f2f7f4;color:#6f877f}.dashboard-form button{margin-top:2px;border:0;border-radius:12px;min-height:44px;font-size:.94rem;font-weight:700;color:#fff;background:linear-gradient(120deg,var(--mint) 0,var(--mint-dark) 100%);cursor:pointer}.dashboard-form button:disabled{opacity:.72;cursor:default}.dashboard-calculation-box{border:1px dashed #c3dbd1;border-radius:12px;background:#f9fdfb;padding:10px;display:grid;grid-gap:8px;gap:8px}.dashboard-calculation-box h3{margin:0;font-family:var(--font-title);font-size:.98rem}.dashboard-calculation-box p{margin:0;color:#33554a;font-size:.88rem}.dashboard-calculation-box span{font-weight:700}.dashboard-feedback{margin:2px 0 0;font-size:.88rem;font-weight:600}.dashboard-feedback-success{color:#1f7c5d}.dashboard-feedback-error{color:var(--danger)}.dashboard-list-box{margin-top:14px;display:grid;grid-gap:8px;gap:8px}.dashboard-subsection{margin-top:16px;border:1px solid #d1e2db;border-radius:14px;background:#fbfffd;padding:12px;display:grid;grid-gap:10px;gap:10px}.dashboard-subsection h3{margin:0;font-family:var(--font-title);font-size:1rem}.dashboard-subsection-block{border:1px solid #d3e4dd;border-radius:12px;background:#ffffff;padding:12px;display:grid;grid-gap:10px;gap:10px}.dashboard-subsection-block h3{margin:0;font-family:var(--font-title);font-size:.98rem}.dashboard-inline-actions{display:flex;flex-wrap:wrap;gap:8px}.dashboard-mini-button{border:1px solid #c5dbd2;border-radius:10px;min-height:34px;padding:0 12px;background:#f8fcfa;color:#24463c;font-weight:700;font-size:.84rem;cursor:pointer;transition:border-color .16s ease,background-color .16s ease}.dashboard-mini-button.is-active{border-color:var(--mint);background:#e9f6f1}.dashboard-link-button{border:0;background:transparent;color:#1d5d49;font-weight:700;text-align:left;padding:0;cursor:pointer}.dashboard-link-button:hover{text-decoration:underline}.dashboard-form .dashboard-mini-button-inline{margin-top:0;width:-moz-fit-content;width:fit-content;min-height:34px;border:1px solid #c5dbd2;background:#f8fcfa;color:#24463c;font-size:.84rem}.dashboard-form .dashboard-mini-button-inline:hover:not(:disabled){transform:none;box-shadow:none;border-color:var(--mint);background:#e9f6f1}.dashboard-list-toggle{width:-moz-fit-content;width:fit-content;border:1px solid #c5dbd2;border-radius:10px;min-height:36px;padding:0 12px;background:#f8fcfa;color:#24463c;font-weight:700;font-size:.86rem;cursor:pointer;transition:border-color .16s ease,background-color .16s ease}.dashboard-list-toggle:hover{border-color:var(--mint);background:#e9f6f1}.dashboard-muted{margin:0;color:#6b837c}.dashboard-chip-list{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:8px}.dashboard-chip-list li{border:1px solid #c7ddd4;border-radius:999px;background:#f8fcfa;padding:5px 10px;font-size:.88rem;color:#2c4b41;display:flex;align-items:center;gap:8px}.dashboard-chip-remove{border:0;background:transparent;color:#1f7c5d;font-weight:700;font-size:.76rem;cursor:pointer;padding:0}.dashboard-form .dashboard-chip-remove:hover:not(:disabled){transform:none;box-shadow:none;text-decoration:underline}.dashboard-status-pill{display:inline-flex;align-items:center;border-radius:999px;padding:4px 10px;font-size:.78rem;font-weight:700}.dashboard-status-pill.is-valid{color:#1f7c5d;background:#e7f6ef;border:1px solid #b9dfcf}.dashboard-status-pill.is-invalid{color:#a33a3a;background:#fdeeee;border:1px solid #f1c8c8}.dashboard-status-pill.is-allergy{color:#8a2f2f;background:#fde7e7;border:1px solid #efbcbc}.dashboard-table-wrap{margin-top:12px;overflow-x:auto}.dashboard-table{width:100%;border-collapse:collapse;min-width:740px}.dashboard-table td,.dashboard-table th{border-bottom:1px solid #e1ece6;text-align:left;padding:10px;font-size:.9rem}.dashboard-table th{color:#2c4d43;background:#f4faf7;font-weight:700}.dashboard-table td{color:#355147}.logout-button{justify-self:start;border:1px solid #c5dbd2;border-radius:11px;height:42px;padding:0 16px;background:#ffffff;font-weight:700;color:#27453b;cursor:pointer;transition:transform .16s ease,border-color .16s ease}.logout-button:hover:not(:disabled){transform:translateY(-1px);border-color:var(--mint)}@keyframes reveal-card{0%{opacity:0;transform:translateY(12px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes float-ambient{0%,to{transform:translateY(0)}50%{transform:translateY(14px)}}@media (max-width:900px){.dashboard-layout{grid-template-columns:1fr}.dashboard-sidebar{position:static}.dashboard-forms-grid,.dashboard-two-columns{grid-template-columns:1fr}}@media (max-width:640px){.auth-panel{border-radius:20px;padding:18px 14px 14px}.brand-logo-image{width:150px;height:150px}.dashboard-panel{border-radius:22px;padding:16px 12px}}