.layout{display:flex;min-height:100dvh}.sidebar{width:220px;background:var(--color-text);color:#fff;padding:1.5rem 0;flex-shrink:0;position:sticky;top:0;height:100dvh;overflow-y:auto;display:flex;flex-direction:column}.sidebar-brand{font-size:1.5rem;font-weight:700;padding:0 1.25rem 1.5rem;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:1rem}.sidebar-nav{list-style:none}.sidebar-nav-divider{padding:.75rem 1.25rem .25rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:#fff6;border-top:1px solid rgba(255,255,255,.1);margin-top:.5rem}.sidebar-nav li a{display:block;padding:.6rem 1.25rem;color:#ffffffb3;text-decoration:none;transition:background .15s,color .15s}.sidebar-nav li a:hover{background:#ffffff14;color:#fff;text-decoration:none}.sidebar-nav li a.active{background:#ffffff1f;color:#fff;font-weight:600}.content{flex:1;padding:2rem;max-width:1100px;margin:0 auto;overflow-y:auto}.layout-error{padding:2rem;color:var(--color-danger);text-align:center}.mobile-topbar,.hamburger,.sidebar-overlay{display:none}@media(max-width:768px){.layout{flex-direction:column;overflow-x:hidden}.mobile-topbar{display:flex;align-items:center;gap:.75rem;background:var(--color-text);color:#fff;padding:.75rem 1rem;position:sticky;top:0;z-index:1001}.mobile-topbar-title{font-size:1.25rem;font-weight:700}.hamburger{display:flex;flex-direction:column;justify-content:center;gap:4px;background:none;border:none;padding:.4rem;cursor:pointer;min-width:auto;min-height:auto}.hamburger:hover{background:#ffffff1a}.hamburger span{display:block;width:20px;height:2px;background:#fff;border-radius:1px}.sidebar{position:fixed;top:0;left:-280px;width:280px;height:100dvh;z-index:1002;transition:left .25s ease;padding:1.5rem 0}.sidebar.sidebar--open{left:0}.sidebar-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:1001}.content{padding:1rem;display:flex;flex-direction:column;min-height:0;overflow-x:hidden}}.sidebar-account{margin-top:auto;padding:.75rem 1.25rem;border-top:1px solid rgba(255,255,255,.1);display:flex;align-items:center;gap:.5rem;cursor:pointer;transition:background .15s}.sidebar-account:hover{background:#ffffff14}.sidebar-avatar{width:1.75rem;height:1.75rem;border-radius:50%;background:var(--color-primary, #4a90d9);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:600;flex-shrink:0}.sidebar-account-email{font-size:.75rem;color:#ffffffb3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-signin{font-size:.85rem;color:#ffffffb3}.sidebar-locale{padding:.75rem 1.25rem;border-top:1px solid rgba(255,255,255,.1)}.sidebar-locale select{width:100%;background:#ffffff1a;color:#fffc;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius);padding:.4rem .5rem;font-size:.85rem;cursor:pointer}.sidebar-locale select option{background:var(--color-text);color:#fff}.view-mode-toggle{display:flex;gap:.25rem}.view-mode-toggle button{display:flex;align-items:center;justify-content:center;padding:.35rem;min-width:auto;line-height:1}.view-mode-toggle button.active{background:var(--color-primary);color:#fff}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg: #fafafa;--color-surface: #ffffff;--color-border: #e0e0e0;--color-text: #1a1a2e;--color-text-secondary: #666;--color-primary: #2d6a4f;--color-primary-hover: #1b4332;--color-danger: #d32f2f;--color-danger-hover: #b71c1c;--color-success: #2e7d32;--radius: 8px;--shadow: 0 1px 3px rgba(0, 0, 0, .1)}html{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:var(--color-text);background:var(--color-bg);line-height:1.5}body{min-height:100dvh}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font:inherit;border:none;border-radius:var(--radius);padding:.5rem 1rem;background:var(--color-primary);color:#fff;transition:background .15s}button:hover{background:var(--color-primary-hover)}button.secondary{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}button.secondary:hover{background:var(--color-bg)}button.danger{background:var(--color-danger)}button.danger:hover{background:var(--color-danger-hover)}button:disabled{opacity:.5;cursor:not-allowed}input,textarea,select{font:inherit;padding:.5rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);width:100%}input:focus,textarea:focus,select:focus{outline:2px solid var(--color-primary);outline-offset:-1px}textarea{resize:vertical;min-height:4rem}label{display:block;font-weight:500;margin-bottom:.25rem}h1{font-size:1.75rem}h2{font-size:1.4rem}h3{font-size:1.15rem}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem;box-shadow:var(--shadow)}.form-group{margin-bottom:1rem}.form-row{display:flex;gap:.75rem}.form-row>*{flex:1}.btn-row{display:flex;gap:.5rem;flex-wrap:wrap}.mp-table{min-width:700px}.mp-nav{display:flex;align-items:center;gap:.5rem}.mp-nav-btn{padding:.3rem .6rem;min-width:auto;font-size:.75rem}.mp-date-range{color:var(--color-text-secondary);font-size:.9rem;white-space:nowrap}.mp-actions{display:flex;gap:.5rem;flex-wrap:wrap}.mp-action-btn{display:inline-flex;align-items:center;gap:.35rem;font-size:.85rem;padding:.35rem .75rem}.mp-icon{font-style:normal;line-height:1}.badge{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600;background:var(--color-primary);color:#fff}.badge.danger{background:var(--color-danger)}.badge.warning{background:#ed6c02}.badge.neutral{background:var(--color-border);color:var(--color-text)}.empty-state{text-align:center;padding:3rem 1rem;color:var(--color-text-secondary)}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;gap:.75rem}.list-view{display:flex;flex-direction:column;gap:.5rem}.list-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.list-meta{font-size:.8rem;color:var(--color-text-secondary);margin-left:auto}.grid-2{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.table-wrapper{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:.9rem}.data-table th,.data-table td{padding:.6rem .75rem;text-align:left;border-bottom:1px solid var(--color-border)}.data-table thead th{background:var(--color-surface);font-weight:600;font-size:.8rem;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.03em;position:sticky;top:0}.data-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.data-table th.sortable:hover{color:var(--color-primary)}.data-table tbody tr:hover{background:var(--color-surface)}.data-table tbody tr.clickable-row{cursor:pointer}.card.clickable-card{cursor:pointer;transition:box-shadow .15s}.card.clickable-card:hover{box-shadow:0 2px 8px #0000001f}.data-table td a{font-weight:500}.data-table .text-center{text-align:center}@media(max-width:768px){.page-header{flex-direction:column;align-items:stretch}.page-header .btn-row{justify-content:flex-start}.form-row{flex-wrap:wrap}.list-row{flex-direction:column;align-items:flex-start}.list-meta{margin-left:0}.meal-plan-page{flex:1;display:flex;flex-direction:column;min-height:0;min-width:0;overflow:hidden}.meal-plan-page .page-header{flex-direction:row;flex-wrap:wrap;align-items:center;gap:.4rem;padding-bottom:.5rem;margin-bottom:0}.meal-plan-page .page-header h1{font-size:1.1rem}.mp-nav{gap:.3rem}.mp-nav-btn{padding:.2rem .45rem;font-size:.7rem}.mp-date-range{font-size:.75rem}.mp-actions{margin-left:auto;gap:.25rem}.mp-label{display:none}.mp-action-btn{padding:.3rem .5rem;font-size:1rem;min-width:auto;gap:0}.mp-body{flex:1;overflow-y:auto;overflow-x:hidden;min-height:0;min-width:0;padding-top:.5rem}.mp-table{min-width:auto!important}.mp-table thead th:first-child,.mp-table tbody td:first-child{position:sticky;left:0;z-index:1;background:var(--color-bg)}.mp-table thead th:first-child{background:var(--color-bg)}.mp-table th,.mp-table td{font-size:.75rem;padding:.3rem}.mp-table th:not(:first-child){min-width:90px}}@media(max-width:480px){.grid-2{grid-template-columns:1fr}.form-row{flex-direction:column}.form-row>*{flex:1 1 100%}h1{font-size:1.4rem}h2{font-size:1.15rem}.meal-plan-page .page-header h1{font-size:1.1rem}}[dir=rtl] .sidebar-brand{padding:0 1.25rem 1.5rem}[dir=rtl] .sidebar-nav li a{padding:.6rem 1.25rem}[dir=rtl] th[style*="text-align: left"]{text-align:right}[dir=rtl] .form-row,[dir=rtl] .btn-row{flex-direction:row-reverse}
