:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--bg: #f5f8f4;--bg-strong: #eaf1eb;--surface: rgba(255, 255, 255, .78);--surface-solid: #ffffff;--surface-soft: rgba(255, 255, 255, .55);--text: #10212a;--muted: #667681;--line: rgba(25, 50, 60, .12);--green: #16a34a;--green-dark: #0f7a3a;--orange: #f97316;--orange-soft: #fff2e8;--navy: #0f2a35;--teal: #0f766e;--blue: #2563eb;--red: #dc2626;--yellow: #ca8a04;--shadow: 0 24px 70px rgba(15, 42, 53, .12);--shadow-soft: 0 14px 40px rgba(15, 42, 53, .08);--radius: 8px;--radius-sm: 6px}:root[data-theme=dark]{color-scheme:dark;--bg: #071216;--bg-strong: #0b1c22;--surface: rgba(13, 32, 39, .78);--surface-solid: #0d2027;--surface-soft: rgba(18, 43, 52, .62);--text: #eef8f3;--muted: #9dafb7;--line: rgba(226, 246, 237, .12);--orange-soft: rgba(249, 115, 22, .12);--shadow: 0 24px 70px rgba(0, 0, 0, .38);--shadow-soft: 0 14px 40px rgba(0, 0, 0, .28)}*{box-sizing:border-box}#root{min-height:100dvh}html{scroll-behavior:smooth}body{margin:0;min-width:320px;background:linear-gradient(145deg,var(--bg),var(--bg-strong));color:var(--text);overflow-x:hidden}button,input,textarea,select{font:inherit}a{color:inherit;text-decoration:none}.app-shell{display:flex;min-height:100dvh}.sidebar{position:sticky;top:0;height:100vh;width:292px;flex:0 0 292px;padding:18px;border-right:1px solid var(--line);background:#0f2a35f5;color:#f4fff8;overflow-y:auto;z-index:20;transition:width .2s ease,flex-basis .2s ease,padding .2s ease,transform .2s ease}.sidebar-brand,.brand-line,.auth-card-head{display:flex;align-items:center;gap:12px}.sidebar-brand{margin-bottom:24px}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:8px;background:linear-gradient(135deg,var(--green),var(--teal));color:#fff;box-shadow:0 12px 24px #16a34a47}.sidebar-brand strong{display:block;font-size:18px}.sidebar-brand span{display:block;color:#f4fff8ad;font-size:12px;margin-top:2px}.nav-group{margin:18px 0}.nav-group p{margin:0 0 8px;padding:0 12px;color:#f4fff885;font-size:11px;text-transform:uppercase}.nav-group a{display:flex;align-items:center;gap:10px;min-height:42px;padding:10px 12px;border-radius:8px;color:#f4fff8c7;transition:background .18s ease,color .18s ease,transform .18s ease}.nav-group a:hover,.nav-group a.active{background:#ffffff1a;color:#fff;transform:translate(2px)}.nav-group a.active{box-shadow:inset 3px 0 0 var(--orange)}@media(min-width:901px){.sidebar-collapsed{width:74px;flex-basis:74px;padding:16px 8px;overflow-x:hidden}.sidebar-collapsed .sidebar-brand{justify-content:center}.sidebar-collapsed .sidebar-brand>div:not(.brand-mark),.sidebar-collapsed .nav-group p,.sidebar-collapsed .nav-group a span{display:none}.sidebar-collapsed .nav-group a{justify-content:center;padding:10px}.sidebar-collapsed .nav-group a:hover,.sidebar-collapsed .nav-group a.active{transform:none}}.shell-main{flex:1;min-width:0;overflow-x:hidden}.sidebar-scrim{display:none}.topbar{position:sticky;top:0;z-index:15;display:flex;align-items:center;gap:14px;padding:14px 24px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 78%,transparent);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}.command-bar{display:flex;align-items:center;gap:10px;flex:0 1 760px;min-height:44px;max-width:760px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow-soft)}.command-bar input{width:100%;border:0;outline:0;background:transparent;color:var(--text)}.command-bar kbd{min-width:24px;padding:2px 7px;border:1px solid var(--line);border-radius:7px;color:var(--muted);background:var(--surface-solid);text-align:center}.topbar-actions,.page-actions,.row-actions,.form-actions,.modal-footer{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.topbar-actions{margin-left:auto;flex-wrap:nowrap}.avatar-btn{display:flex;align-items:center;gap:9px;min-height:40px;padding:5px 10px 5px 6px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--text);cursor:pointer}.avatar-btn span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--navy);color:#fff;font-weight:800}.avatar-btn small{color:var(--muted);max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.content{width:min(1800px,100%);margin:0 auto;padding:clamp(18px,2.2vw,30px);min-width:0;animation:page-in .22s ease both}@keyframes page-in{0%{opacity:0}to{opacity:1}}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px}.page-header h1{margin:3px 0 8px;font-size:32px;line-height:1.08}.page-header p{margin:0;max-width:760px;color:var(--muted);line-height:1.6}.eyebrow,.brand-pill{color:var(--green-dark);font-weight:800;font-size:12px;text-transform:uppercase}.brand-pill{display:inline-flex;align-items:center;align-self:flex-start;gap:8px;width:fit-content;padding:8px 12px;border:1px solid rgba(22,163,74,.28);border-radius:999px;background:#16a34a1a}.card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);padding:20px;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.credential-callout{padding:18px;border:1px solid rgba(22,163,74,.24);border-radius:var(--radius-sm);background:linear-gradient(135deg,#16a34a1a,#0f766e14)}.credential-callout p{margin:8px 0 18px;color:var(--muted);line-height:1.55}.credential-list{display:grid;gap:10px}.credential-list .detail-item{background:var(--surface-solid)}.profile-summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px;border:1px solid rgba(22,163,74,.2);border-radius:var(--radius-sm);background:linear-gradient(135deg,#16a34a14,#0f766e0f)}.profile-avatar{display:grid;width:44px;height:44px;place-items:center;border-radius:14px;color:#fff;background:linear-gradient(135deg,var(--green),var(--teal));font-size:18px;font-weight:800}.profile-summary h3,.profile-summary p{margin:0}.profile-summary p{margin-top:3px;color:var(--muted)}.profile-assignment-list{margin-top:18px}.nutritionist-profile-modal{width:min(920px,calc(100vw - 32px))}.nutritionist-profile-modal .modal-body{padding:22px}.nutritionist-profile-modal .modal-footer{padding:14px 22px}.profile-detail-grid{margin-top:16px;gap:12px}.profile-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.profile-section-heading h3{margin:0;font-size:17px}.profile-section-heading p{margin:5px 0 0;color:var(--muted)}.customer-assignment-list{display:grid;gap:14px}.customer-assignment-card{padding:16px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-soft)}.customer-assignment-header,.customer-identity{display:flex;align-items:center;gap:12px}.customer-assignment-header{justify-content:space-between}.customer-avatar{display:grid;width:38px;height:38px;flex:0 0 auto;place-items:center;border-radius:12px;color:var(--green-dark);background:#16a34a1f;font-weight:800}.customer-identity h4,.customer-identity p{margin:0}.customer-identity p{margin-top:3px;color:var(--muted);font-size:13px}.customer-detail-grid{margin-top:14px;gap:10px}.customer-detail-grid .detail-item{padding:11px 12px;background:var(--surface-solid)}.nutritionist-overview-profile{margin-bottom:18px}.nutritionist-overview-card{padding:22px}.nutritionist-customer-overview-list{display:grid;gap:18px}.admin-customer-overview{overflow:hidden;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft)}.admin-customer-overview>summary{display:block;padding:16px 18px;cursor:pointer;list-style:none}.admin-customer-overview>summary::-webkit-details-marker{display:none}.admin-customer-overview[open]>summary{border-bottom:1px solid var(--line);background:linear-gradient(135deg,#16a34a14,#0f766e0a)}.admin-customer-header,.admin-customer-identity,.admin-customer-summary-actions,.admin-overview-toolbar{display:flex;align-items:center;gap:12px}.admin-customer-header,.admin-overview-toolbar{justify-content:space-between}.admin-customer-identity{min-width:0}.admin-customer-identity h3,.admin-customer-identity p{margin:0}.admin-customer-identity h3{font-size:16px}.admin-customer-identity p,.admin-overview-toolbar{color:var(--muted);font-size:13px}.admin-customer-identity p{margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-customer-summary-actions{flex:0 0 auto}.admin-customer-summary-actions>svg{transition:transform .18s ease}.admin-customer-overview[open] .admin-customer-summary-actions>svg{transform:rotate(180deg)}.admin-customer-overview-body{padding:16px}.admin-overview-toolbar{align-items:flex-start;margin-bottom:16px}.admin-overview-toolbar>span{line-height:1.5}.admin-overview-section{margin-top:14px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--surface-solid)}.admin-overview-section:first-of-type{margin-top:0}.admin-overview-section .card-title{margin-bottom:12px}.admin-overview-section h3{margin:0 0 4px;font-size:16px}.admin-overview-section .detail-grid{gap:10px}.admin-overview-section .detail-item{min-width:0;padding:11px 12px;background:var(--surface-soft)}.admin-plan-meta{margin-top:12px}.admin-empty{padding:14px;border:1px dashed var(--line);border-radius:10px;color:var(--muted);background:var(--surface-soft)}@media(max-width:680px){.nutritionist-overview-card{padding:14px}.admin-customer-overview>summary,.admin-customer-overview-body,.admin-overview-section{padding:14px}.admin-customer-header,.admin-customer-summary-actions,.admin-overview-toolbar{align-items:flex-start}.admin-customer-header,.admin-overview-toolbar{flex-direction:column}.admin-customer-summary-actions{width:100%;justify-content:space-between}.admin-overview-toolbar .btn{width:100%}}@media(max-width:680px){.nutritionist-profile-modal .modal-body{padding:16px}.nutritionist-profile-modal .modal-footer{padding:12px 16px}.profile-section-heading,.customer-assignment-header{align-items:flex-start;flex-direction:column}.customer-assignment-header .btn{width:100%}}.approval-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding-top:4px}.card:hover{border-color:color-mix(in srgb,var(--line) 72%,var(--green))}.status-explanation{margin:-8px 0 18px;padding:12px 14px;border:1px solid rgba(37,99,235,.18);border-radius:10px;color:var(--muted);background:#2563eb0f;line-height:1.5}.status-explanation strong{color:var(--text)}.card-accent{background:linear-gradient(135deg,#16a34a1f,#f9731614),var(--surface)}.card-title{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:16px}.card-title h2{margin:0 0 4px;font-size:18px}.card-title p{margin:0;color:var(--muted)}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}.stat-card{display:flex;align-items:center;gap:14px;min-height:132px;overflow:hidden}.stat-icon{display:grid;place-items:center;width:48px;height:48px;flex:0 0 48px;border-radius:16px;color:#fff;background:var(--green)}.stat-orange .stat-icon{background:var(--orange)}.stat-navy .stat-icon{background:var(--navy)}.stat-teal .stat-icon{background:var(--teal)}.stat-card p,.stat-card span{margin:0;color:var(--muted)}.stat-card strong{display:block;margin:6px 0;font-size:28px;line-height:1.05}.grid-2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;margin-bottom:18px}.chart-card,.table-card{min-width:0}.notice-card{margin-bottom:18px;border-color:#2563eb2e;background:linear-gradient(135deg,#2563eb14,#16a34a0f),var(--surface)}.notice-card strong{display:block;margin-bottom:4px}.chart-frame{width:100%}.recharts-default-tooltip{border:1px solid var(--line)!important;border-radius:12px!important;background:var(--surface-solid)!important;color:var(--text)!important}.filter-bar{display:grid;grid-template-columns:repeat(4,minmax(170px,1fr));gap:14px;margin-bottom:18px}.field{display:flex;flex-direction:column;min-width:0;gap:8px;color:var(--text);font-weight:700;font-size:13px}.field>label{line-height:1.25}.field>label em{margin-left:3px;color:var(--red);font-style:normal}.field small{color:var(--muted);font-weight:500;line-height:1.4}.file-hint{display:inline-block;overflow-wrap:anywhere}.field-invalid>label,.field-invalid small{color:var(--red)}.input{width:100%;min-width:0;min-height:44px;border:1px solid var(--line);border-radius:8px;padding:10px 12px;outline:0;background:var(--surface-solid);color:var(--text);transition:border .16s ease,box-shadow .16s ease,background .16s ease}.input:focus{border-color:color-mix(in srgb,var(--green) 70%,white);box-shadow:0 0 0 4px #16a34a1f}.field-invalid .input{border-color:#dc2626b8;box-shadow:0 0 0 4px #dc26261a}.file-input{padding:8px;overflow:hidden;text-overflow:ellipsis}.file-input::file-selector-button{min-height:28px;margin-right:10px;border:0;border-radius:6px;padding:0 10px;background:var(--navy);color:#fff;font-weight:800;cursor:pointer}.textarea{min-height:104px;resize:vertical}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 18px) 19px,calc(100% - 13px) 19px;background-size:5px 5px;background-repeat:no-repeat;padding-right:32px}.btn,.icon-btn{border:0;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,background .16s ease,opacity .16s ease}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;border-radius:8px;padding:0 15px;font-weight:800;white-space:nowrap}.btn:hover,.icon-btn:hover{transform:translateY(-1px)}.btn:disabled,.icon-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn-sm{min-height:34px;padding:0 10px;border-radius:6px;font-size:12px}.btn-primary{background:linear-gradient(135deg,var(--green),var(--teal));color:#fff;box-shadow:0 12px 24px #16a34a38}.btn-secondary{background:var(--surface-solid);border:1px solid var(--line);color:var(--text)}.btn-ghost{background:transparent;color:var(--muted)}.btn-danger{background:var(--red);color:#fff}.icon-btn{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text)}.icon-btn-sm{width:34px;height:34px;border-radius:7px}.icon-btn-danger{color:var(--red);background:#dc262614}.icon-btn-danger:hover{background:#dc262624}.icon-btn:focus-visible,.btn:focus-visible,.status-switch:focus-visible,.module-tabs button:focus-visible{outline:0;box-shadow:0 0 0 4px #16a34a29}.full-width{width:100%}.badge{display:inline-flex;align-items:center;width:fit-content;min-height:26px;padding:4px 9px;border-radius:999px;font-size:12px;font-weight:800;white-space:nowrap}.badge-success{background:#16a34a1f;color:#15803d}.badge-warning{background:#eab30824;color:#a16207}.badge-danger{background:#dc26261f;color:#b91c1c}.badge-info{background:#2563eb1f;color:#1d4ed8}.badge-neutral{background:#64748b1f;color:var(--muted)}.status-switch{display:inline-flex;align-items:center;width:fit-content;min-height:28px;padding:0;border:0;border-radius:999px;background:transparent;color:var(--muted);cursor:pointer;transition:box-shadow .22s ease,transform .22s ease,opacity .22s ease}.status-switch:hover{transform:translateY(-1px)}.status-switch:disabled{cursor:wait;opacity:.82;transform:none}.status-switch.is-readonly{cursor:default}.status-switch.is-readonly:hover{transform:none}.status-switch-track{position:relative;display:inline-flex;align-items:center;width:50px;height:28px;padding:3px;border:1px solid var(--line);border-radius:999px;background:#64748b38;box-shadow:inset 0 1px 2px #0f2a351f;transition:background .28s cubic-bezier(.2,.8,.2,1),border-color .28s ease,box-shadow .28s ease}.status-switch-thumb{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#fff;color:var(--muted);box-shadow:0 5px 12px #0f2a3533;transition:transform .28s cubic-bezier(.2,.8,.2,1),color .22s ease,box-shadow .22s ease}.status-switch.is-on{color:#15803d}.status-switch.is-on .status-switch-track{border-color:#16a34a57;background:linear-gradient(135deg,var(--green),var(--teal));box-shadow:inset 0 1px 2px #0f2a3529,0 8px 18px #16a34a29}.status-switch.is-on .status-switch-thumb{color:var(--green);transform:translate(22px)}.status-switch.is-loading .status-switch-thumb{box-shadow:0 5px 12px #0f2a3524}.table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.data-table{width:100%;min-width:760px;border-collapse:collapse}.data-table th{color:var(--muted);font-size:12px;text-align:left;text-transform:uppercase}.data-table th,.data-table td{padding:14px 12px;border-bottom:1px solid var(--line);vertical-align:middle}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr{transition:background .16s ease}.data-table tbody tr:hover{background:#16a34a0b}.row-title{display:flex;flex-direction:column;gap:4px}.row-title span{max-width:360px;color:var(--muted);font-size:13px;line-height:1.35}.text-link{color:var(--green-dark);font-weight:800}.row-actions{flex-wrap:nowrap}.center{justify-content:center}.form-grid{display:grid;gap:16px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-section-title{grid-column:1 / -1;margin:10px 0 -2px;padding-top:4px;border-top:0;font-size:13px;text-transform:uppercase;color:var(--muted)}.form-actions{grid-column:1 / -1;justify-content:flex-end}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:clamp(10px,2vw,22px);overflow:hidden;background:#07121694;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.modal{display:flex;flex-direction:column;width:min(720px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--surface-solid);box-shadow:var(--shadow);animation:modal-in .18s ease both}@keyframes modal-in{0%{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header,.modal-footer{display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface-solid) 94%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.modal-footer{justify-content:flex-end;border-top:1px solid var(--line);border-bottom:0}.modal-header h2{margin:0;font-size:20px}.modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:14px 16px;scrollbar-gutter:stable}.empty-state,.error-state{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;min-height:240px;text-align:center;color:var(--muted)}.empty-state h3{margin:6px 0 0;color:var(--text)}.empty-state p,.error-state p,.muted{margin:0;color:var(--muted);line-height:1.6}.empty-state p{max-width:440px}.empty-icon{display:grid;place-items:center;width:54px;height:54px;border-radius:8px;background:linear-gradient(135deg,#16a34a1f,#f9731624);color:var(--green-dark)}.error-state{flex-direction:row;justify-content:flex-start;min-height:auto;padding:16px;margin-bottom:18px;border:1px solid rgba(220,38,38,.22);border-radius:var(--radius);background:#dc262614;text-align:left}.skeleton-stack{display:grid;gap:12px}.skeleton-line{height:54px;border-radius:8px;background:linear-gradient(90deg,transparent,rgba(148,163,184,.18),transparent);background-size:220% 100%;animation:shimmer 1.4s infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.auth-shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(440px,580px);gap:clamp(42px,5vw,78px);width:min(1480px,100%);min-height:100vh;margin:0 auto;padding:46px 56px}.auth-hero{display:flex;flex-direction:column;justify-content:center;padding:42px}.auth-hero h1{max-width:900px;margin:18px 0;font-size:56px;line-height:1.02}.auth-hero p{max-width:620px;color:var(--muted);line-height:1.7;font-size:18px}.auth-card{align-self:center;width:100%;padding:34px}.auth-card-head{margin-bottom:22px}.auth-login-install{margin-left:auto}.pwa-install-button{position:relative;display:inline-grid;place-items:center;flex:0 0 40px;width:40px;height:40px;padding:0;border:1px solid rgba(22,163,74,.28);border-radius:10px;background:#16a34a1a;color:var(--green-dark);cursor:pointer;transition:background .18s ease,border-color .18s ease,transform .18s ease}.pwa-install-button:hover,.pwa-install-button:focus-visible{border-color:#16a34a8c;background:#16a34a2e;outline:none;transform:translateY(-1px)}.pwa-tooltip{position:absolute;top:calc(100% + 10px);right:0;z-index:120;width:max-content;max-width:min(280px,calc(100vw - 32px));padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface-solid);box-shadow:var(--shadow-soft);color:var(--text);font-size:12px;font-weight:600;line-height:1.35;opacity:0;pointer-events:none;transform:translateY(-4px);transition:opacity .16s ease,transform .16s ease}.pwa-install-button:hover .pwa-tooltip,.pwa-install-button:focus-visible .pwa-tooltip{opacity:1;transform:translateY(0)}.auth-card-head h2{margin:0 0 4px}.auth-card-head p,.auth-switch{color:var(--muted)}.auth-switch{display:flex;justify-content:center;gap:8px;margin-top:20px}.hero-orbit{display:grid;grid-template-columns:repeat(4,minmax(0,130px));gap:14px;margin-top:28px}.hero-orbit div{display:flex;flex-direction:column;gap:10px;padding:16px;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow-soft)}.hero-orbit svg{color:var(--green-dark)}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.detail-grid.compact{margin-bottom:18px}.credentials-grid{margin-top:16px}.restaurant-modal{width:min(920px,calc(100vw - 32px))}.restaurant-workspace{padding:0;overflow:hidden}.restaurant-modal .modal-header,.credentials-modal .modal-header{padding:20px 22px}.restaurant-modal .modal-body{padding:20px 22px;background:linear-gradient(180deg,rgba(22,163,74,.035),transparent 180px),var(--surface-solid)}.restaurant-modal .modal-footer,.credentials-modal .modal-footer{padding:16px 22px;background:var(--surface-solid)}.restaurant-form{gap:14px 16px}.restaurant-form>.field{min-width:0}.restaurant-page-form{padding:18px;min-width:0}.restaurant-form .form-section-title{display:flex;align-items:center;gap:10px;margin-top:10px;color:var(--text);letter-spacing:0}.restaurant-form .form-section-title:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--green)}.restaurant-form .textarea{min-height:86px}.restaurant-form .input{min-height:40px}.form-sticky-actions{position:sticky;bottom:0;z-index:5;grid-column:1 / -1;display:flex;justify-content:flex-end;gap:10px;margin:8px -18px -18px;padding:14px 18px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface-solid) 94%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.credentials-modal{width:min(680px,100%)}.credentials-modal .modal-body{padding:22px}.credentials-modal .credentials-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:0}.detail-item{padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft)}.detail-item>span{display:block;margin-bottom:6px;color:var(--muted);font-size:12px;text-transform:uppercase}.detail-item strong{display:block;overflow-wrap:anywhere}.detail-item .badge,.detail-item .status-switch{margin-top:2px}.planner-card{overflow-x:auto}.planner-grid{display:grid;grid-template-columns:150px repeat(4,minmax(180px,1fr));gap:10px;min-width:900px}.planner-head,.planner-day,.planner-cell{padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft)}.planner-head{font-weight:900;color:var(--muted);text-transform:uppercase;font-size:12px}.planner-day{display:flex;align-items:center;font-weight:900}.timeline{display:grid;gap:18px;margin-top:12px}.timeline-item{display:grid;grid-template-columns:26px minmax(0,1fr);gap:12px;position:relative}.timeline-item:before{content:"";position:absolute;top:24px;left:8px;width:2px;height:calc(100% + 4px);background:var(--line)}.timeline-item:last-child:before{display:none}.timeline-dot{width:18px;height:18px;margin-top:2px;border:4px solid rgba(22,163,74,.2);border-radius:50%;background:var(--green)}.timeline-item strong,.timeline-item span,.timeline-item p{display:block}.timeline-item span,.timeline-item p{margin:4px 0 0;color:var(--muted)}.tool-stack{display:grid;gap:16px}.inline-action{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:end}.mini-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.mini-list>span{padding:7px 10px;border:1px solid var(--line);border-radius:999px;color:var(--muted);background:var(--surface-soft);font-size:12px}.public-shell{width:min(1180px,100%);margin:0 auto;padding:28px}.public-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px}.module-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.module-tabs button{min-height:40px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);cursor:pointer;font-weight:800}.module-tabs button.active{background:var(--navy);color:#fff}.module-tabs.compact{margin-bottom:16px}.response-box{min-height:220px;margin:0 0 16px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);color:var(--text);overflow:auto;white-space:pre-wrap}.loading-screen{display:grid;min-height:100vh;place-items:center;align-content:center;gap:16px;color:var(--muted)}.loading-screen .brand-mark{animation:pulse-mark 1.4s ease-in-out infinite}@keyframes pulse-mark{0%,to{transform:scale(1);box-shadow:0 12px 24px #16a34a38}50%{transform:scale(1.04);box-shadow:0 18px 32px #16a34a4d}}.toast-stack{position:fixed;right:20px;bottom:20px;z-index:90;display:grid;gap:10px;width:min(380px,calc(100vw - 32px))}.toast{display:flex;align-items:center;gap:10px;padding:13px 14px;border:1px solid var(--line);border-radius:16px;background:var(--surface-solid);box-shadow:var(--shadow);color:var(--text);animation:toast-in .18s ease both}@keyframes toast-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.toast.success svg{color:var(--green)}.toast.error svg{color:var(--red)}.pwa-update-prompt{position:fixed;right:20px;bottom:20px;z-index:110;display:flex;align-items:center;gap:14px;max-width:min(420px,calc(100vw - 32px));padding:12px 14px 12px 16px;border:1px solid rgba(22,163,74,.28);border-radius:12px;background:var(--surface-solid);box-shadow:var(--shadow);color:var(--text)}@media(max-width:520px){.pwa-update-prompt{right:16px;bottom:16px;left:16px;justify-content:space-between}}@media(max-width:1180px){.stats-grid,.filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-2{grid-template-columns:1fr}.auth-shell{grid-template-columns:1fr;width:min(760px,100%);padding:32px 24px}.auth-hero{padding:16px}.auth-hero h1{font-size:42px}.restaurant-page-form.form-grid.two{grid-template-columns:1fr}}@media(max-width:900px){.sidebar{position:fixed;z-index:80;width:min(292px,calc(100vw - 64px));max-width:320px;transform:translate(-105%);transition:transform .2s ease}.sidebar-open{transform:translate(0);box-shadow:18px 0 48px #00000038}.sidebar-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;display:block;border:0;background:#07121673;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.content,.public-shell{padding:20px}.page-actions{max-width:100%}.topbar{padding:12px 16px}.command-bar{max-width:none}.avatar-btn small{display:none}.topbar-actions{gap:8px}.page-header{flex-direction:column}.page-actions{width:100%}.modal .form-grid.two{grid-template-columns:1fr}.restaurant-page-form{padding:14px}.form-sticky-actions{margin:8px -14px -14px;padding:12px 14px}}@media(max-width:760px){.table-card{padding:12px}.table-wrap{overflow:visible}.data-table,.data-table thead,.data-table tbody,.data-table th,.data-table td,.data-table tr{display:block}.data-table{min-width:0}.data-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.data-table tbody{display:grid;gap:12px}.data-table tbody tr{padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft)}.data-table tbody tr:hover{background:var(--surface-soft)}.data-table td{display:grid;grid-template-columns:minmax(104px,38%) minmax(0,1fr);gap:12px;align-items:center;padding:9px 6px;border-bottom:1px solid var(--line)}.data-table td:before{content:attr(data-label);color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase}.data-table tr:last-child td{border-bottom:1px solid var(--line)}.data-table td:last-child{border-bottom:0}.row-actions{flex-wrap:wrap;justify-content:flex-start}}@media(max-width:680px){.stats-grid,.filter-bar,.form-grid.two,.detail-grid,.approval-summary,.credentials-modal .credentials-grid,.inline-action,.auth-shell{grid-template-columns:1fr}.auth-shell{padding:18px;width:100%}.auth-hero h1{font-size:34px}.hero-orbit{grid-template-columns:repeat(2,minmax(0,1fr))}.page-header h1{font-size:27px}.stat-card strong{font-size:24px}.modal-backdrop{align-items:end;padding:0}.modal{width:100%;max-height:calc(100dvh - 10px);border-right:0;border-bottom:0;border-left:0;border-radius:16px 16px 0 0}.modal-header,.modal-body,.modal-footer{padding-right:14px;padding-left:14px}.modal-header h2{font-size:18px}.modal-footer{flex-direction:column-reverse;align-items:stretch}.modal-footer .btn{width:100%}.form-sticky-actions{flex-direction:column-reverse;align-items:stretch}.form-sticky-actions .btn,.restaurant-modal{width:100%}.avatar-btn{padding-right:6px}}@media(max-width:520px){.content,.public-shell{padding:14px}.topbar{gap:8px;padding:10px 12px}.topbar-actions{gap:6px}.topbar-actions .icon-btn{width:38px;height:38px}.page-header{gap:14px;margin-bottom:16px}.page-header h1{font-size:25px}.card{padding:14px}.restaurant-page-form{padding:12px}.form-sticky-actions{margin-right:-12px;margin-left:-12px;padding-right:12px;padding-left:12px}.toast-stack{right:12px;bottom:max(12px,env(safe-area-inset-bottom));width:calc(100vw - 24px)}}.meal-row{display:flex;align-items:center;gap:10px;min-width:220px}.meal-thumb{display:grid;place-items:center;width:44px;height:44px;flex:0 0 44px;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft);color:var(--green-dark)}.meal-thumb img{width:100%;height:100%;object-fit:cover}.meal-image-preview{display:flex;align-items:center;justify-content:center;min-height:130px;overflow:hidden;border:1px dashed color-mix(in srgb,var(--green) 45%,var(--line));border-radius:12px;background:var(--surface-soft);color:var(--muted)}.meal-image-preview img{width:100%;height:180px;object-fit:cover}.meal-image-preview.is-empty{flex-direction:column;gap:8px;padding:16px;text-align:center}.meal-detail-image{width:min(420px,100%);margin-bottom:18px;overflow:hidden;border:1px solid var(--line);border-radius:14px}.meal-detail-image img{display:block;width:100%;max-height:260px;object-fit:cover}.select[multiple]{min-height:112px;padding:8px;background-image:none}.select[multiple] option{padding:8px 10px;border-radius:6px}.select[multiple] option:checked{background:linear-gradient(135deg,var(--green),var(--teal));color:#fff}.care-summary-card{margin-bottom:18px}.analysis-callout{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:16px;padding:13px 14px;border:1px solid rgba(22,163,74,.22);border-radius:10px;background:linear-gradient(135deg,#16a34a1a,#0f766e0f)}.analysis-callout span{color:var(--muted);line-height:1.5}.workspace-actions{margin-top:16px}.care-plan-list{display:grid;gap:18px}.care-plan-card,.meal-assignment-editor{padding:18px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft)}.nutritionist-shell .content>.card{margin-bottom:18px}.nutritionist-shell .content>.grid-2{margin-top:0}.care-plan-card .card-title{margin-bottom:10px}.care-plan-card h3,.meal-assignment-editor h3{margin:0 0 4px;font-size:16px}.compact-table{min-width:540px}.compact-table th,.compact-table td{padding:10px 8px}.diet-plan-modal{width:min(980px,calc(100vw - 32px))}.meal-assignment-editor{margin-top:16px}.meal-assignment-row{display:grid;grid-template-columns:1fr 1fr minmax(180px,1.6fr) 110px 42px;gap:8px;align-items:center;margin-top:10px}@media(max-width:760px){.compact-table{min-width:0}.meal-assignment-row{grid-template-columns:1fr 1fr}.meal-assignment-row>:nth-child(3),.meal-assignment-row>:nth-child(4){min-width:0}.meal-assignment-row>:last-child{justify-self:end}.analysis-callout{align-items:flex-start;flex-direction:column}}@media(max-width:520px){.meal-assignment-row{grid-template-columns:1fr}.meal-assignment-row>:last-child{justify-self:start}}.meal-form-card{padding:0;overflow:hidden}.meal-form{display:grid;gap:0}.meal-form-section{display:grid;gap:18px;padding:clamp(20px,3vw,32px);border-bottom:1px solid var(--line)}.meal-section-heading{display:flex;align-items:flex-start;gap:12px}.meal-section-heading>span{display:grid;place-items:center;width:32px;height:32px;flex:0 0 32px;border-radius:10px;background:linear-gradient(135deg,var(--green),var(--teal));color:#fff;font-size:12px;font-weight:900}.meal-section-heading h2{margin:0 0 4px;font-size:18px}.meal-section-heading p{margin:0;color:var(--muted);line-height:1.5}.nutrition-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}.meal-image-strip{display:flex;gap:12px;min-height:176px;padding:4px 2px 12px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-color:color-mix(in srgb,var(--green) 55%,var(--line)) transparent}.meal-image-strip.is-empty{align-items:center;justify-content:center;border:1px dashed color-mix(in srgb,var(--green) 45%,var(--line));border-radius:12px;background:var(--surface-soft)}.meal-image-empty{display:flex;align-items:center;gap:10px;color:var(--muted)}.meal-image-card{position:relative;flex:0 0 178px;overflow:hidden;scroll-snap-align:start;border:1px solid var(--line);border-radius:14px;background:var(--surface-solid);box-shadow:var(--shadow-soft)}.meal-image-card img{display:block;width:178px;height:132px;object-fit:cover}.meal-image-card>span{display:block;padding:8px 10px;overflow:hidden;color:var(--muted);font-size:12px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.meal-image-remove{position:absolute;top:8px;right:8px;display:grid;place-items:center;width:28px;height:28px;border:1px solid rgba(255,255,255,.65);border-radius:50%;background:#071216b8;color:#fff;cursor:pointer;transition:transform .16s ease,background .16s ease}.meal-image-remove:hover{transform:scale(1.06);background:var(--red)}.meal-form-actions{justify-content:flex-end;padding:18px clamp(20px,3vw,32px);background:var(--surface-soft)}.meal-detail-card{display:grid;gap:22px}.meal-carousel{width:min(760px,100%);margin:0 auto}.meal-carousel-main{position:relative;aspect-ratio:16 / 9;overflow:hidden;border:1px solid var(--line);border-radius:18px;background:linear-gradient(135deg,#16a34a14,#0f766e1f);box-shadow:var(--shadow-soft)}.meal-carousel-main>.meal-carousel-image{display:block;width:100%;height:100%;object-fit:cover;will-change:transform,opacity}@keyframes carousel-slide-next{0%{opacity:0;transform:translate3d(4%,0,0) scale(1.035)}to{opacity:1;transform:translateZ(0) scale(1)}}@keyframes carousel-slide-previous{0%{opacity:0;transform:translate3d(-4%,0,0) scale(1.035)}to{opacity:1;transform:translateZ(0) scale(1)}}.meal-carousel-image.slide-next{animation:carousel-slide-next .62s cubic-bezier(.22,.8,.24,1) both}.meal-carousel-image.slide-previous{animation:carousel-slide-previous .62s cubic-bezier(.22,.8,.24,1) both}.meal-carousel-control{position:absolute;top:50%;display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(255,255,255,.55);border-radius:50%;background:#0712169e;color:#fff;cursor:pointer;transform:translateY(-50%);transition:transform .16s ease,background .16s ease}.meal-carousel-control:hover{background:#071216d1;transform:translateY(-50%) scale(1.05)}.meal-carousel-control.previous{left:14px}.meal-carousel-control.next{right:14px}.meal-carousel-counter{position:absolute;right:14px;bottom:14px;padding:6px 10px;border-radius:999px;background:#071216ad;color:#fff;font-size:12px;font-weight:900}.meal-carousel-progress{position:absolute;right:78px;bottom:20px;left:14px;height:3px;overflow:hidden;border-radius:999px;background:#ffffff61;box-shadow:0 1px 4px #0712162e}.meal-carousel-progress span{display:block;width:100%;height:100%;transform-origin:left center;border-radius:inherit;background:#ffffffeb;animation:carousel-progress 3s linear both}.meal-carousel-progress.paused span{animation-play-state:paused}@keyframes carousel-progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.meal-carousel-thumbs{display:flex;gap:10px;margin-top:12px;padding:2px 2px 8px;overflow-x:auto;scroll-snap-type:x proximity}.meal-carousel-thumb{flex:0 0 76px;height:58px;padding:0;overflow:hidden;border:2px solid transparent;border-radius:10px;background:var(--surface-soft);cursor:pointer;opacity:.68;scroll-snap-align:start;transition:border-color .16s ease,opacity .16s ease,transform .16s ease}.meal-carousel-thumb:hover,.meal-carousel-thumb.active{border-color:var(--green);opacity:1;transform:translateY(-2px)}.meal-carousel-thumb img{width:100%;height:100%;object-fit:cover}.meal-carousel-empty{display:flex;align-items:center;justify-content:center;gap:10px;min-height:220px;border:1px dashed var(--line);border-radius:16px;color:var(--muted)}@media(max-width:1000px){.nutrition-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:680px){.meal-form-section{padding:18px 14px}.nutrition-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.meal-form-actions{padding:14px}.meal-form-actions .btn{flex:1 1 160px}.meal-carousel-control{width:36px;height:36px}.meal-carousel-progress{right:68px}}@media(max-width:460px){.nutrition-grid{grid-template-columns:1fr}.meal-section-heading h2{font-size:16px}.meal-carousel-main{aspect-ratio:4 / 3}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
