@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";:root{--primary:#a78bfa;--primary-dark:#7c3aed;--primary-light:#a78bfa1f;--accent:#f472b6;--success:#34d399;--warning:#fbbf24;--danger:#f87171;--text:#f1f5f9;--text-muted:#94a3b8;--bg:#0f0f13;--bg-card:#1a1a24;--bg-card-2:#21212e;--border:#ffffff12;--sidebar-w:240px;--radius:18px;--radius-sm:12px;--shadow:0 4px 24px #0006}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:Inter,system-ui,sans-serif;font-size:15px}a{color:inherit;text-decoration:none}ul{list-style:none}button{cursor:pointer;font-family:inherit;font-size:inherit;background:0 0;border:none}input,select,textarea{font-family:inherit;font-size:inherit}.app-layout{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-w);background:var(--bg-card);border-right:1px solid var(--border);z-index:100;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-logo{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:28px 20px 22px;display:flex}.logo-icon{font-size:28px}.logo-text{color:var(--primary);letter-spacing:-.3px;font-size:17px;font-weight:700}.sidebar-nav{flex-direction:column;flex:1;gap:4px;padding:16px 12px;display:flex}.nav-item{border-radius:var(--radius-sm);color:var(--text-muted);align-items:center;gap:12px;padding:11px 14px;font-size:14px;font-weight:500;transition:all .15s;display:flex}.nav-item:hover{background:var(--primary-light);color:var(--primary)}.nav-item.active{background:var(--primary-light);color:var(--primary);font-weight:600}.nav-icon{font-size:18px}.sidebar-footer{border-top:1px solid var(--border);flex-direction:column;gap:8px;padding:16px 20px;display:flex}.user-email{color:var(--text-muted);word-break:break-all;font-size:12px}.btn-logout{border-radius:var(--radius-sm);color:var(--danger);background:#f871711a;border:1px solid #f8717133;padding:7px 14px;font-size:13px;font-weight:500;transition:all .15s}.btn-logout:hover{background:#f8717133}.main-content{margin-left:var(--sidebar-w);flex:1;max-width:1000px;padding:36px 40px}.bottom-nav{display:none}.page h1{letter-spacing:-.5px;margin-bottom:24px;font-size:28px;font-weight:800}.page-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.page-header h1{margin-bottom:0}.section-title{text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);margin:28px 0 12px;font-size:11px;font-weight:700}.card{background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow);margin-bottom:16px;padding:22px}.card h3{color:var(--text);margin-bottom:14px;font-size:15px;font-weight:600}.cards-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.btn-primary{background:var(--primary);color:#0f0f13;border-radius:var(--radius-sm);letter-spacing:-.1px;padding:10px 22px;font-size:14px;font-weight:700;transition:all .15s}.btn-primary:hover:not(:disabled){background:#c4b5fd;transform:translateY(-1px)}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-primary.btn-full{width:100%;padding:13px}.btn-primary.btn-sm{padding:6px 14px;font-size:13px}.btn-icon{background:var(--bg-card-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);padding:7px 14px;font-size:15px;transition:all .15s}.btn-icon:hover{background:var(--primary-light);color:var(--primary)}.btn-delete{opacity:.5;background:0 0;border-radius:8px;padding:4px 8px;font-size:17px;transition:background .15s}.btn-delete:hover{opacity:1;background:#f8717126}.button-row{align-items:center;gap:12px;margin-top:14px;display:flex}.saved-badge{color:var(--success);font-size:14px;font-weight:600}.form-group{flex-direction:column;gap:7px;margin-bottom:14px;display:flex}.form-group label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:600}.form-group input,.form-group select,.form-group textarea{border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card-2);color:var(--text);outline:none;padding:10px 14px;transition:border-color .15s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--primary)}.form-group select option{background:var(--bg-card-2)}.form-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.login-container{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--bg-card);border:1px solid var(--border);border-radius:24px;width:100%;max-width:420px;padding:44px;box-shadow:0 20px 60px #0009}.login-header{text-align:center;margin-bottom:32px}.login-icon{margin-bottom:14px;font-size:48px;display:block}.login-header h1{color:var(--primary);letter-spacing:-.5px;font-size:26px;font-weight:800}.login-header p{color:var(--text-muted);margin-top:8px;font-size:14px}.login-form{flex-direction:column;gap:4px;display:flex}.login-note{text-align:center;color:var(--text-muted);margin-top:18px;font-size:12px}.alert{border-radius:var(--radius-sm);margin-bottom:16px;padding:11px 16px;font-size:14px}.alert-error{color:#fca5a5;background:#f871711a;border:1px solid #f8717140}.btn-google{border-radius:var(--radius-sm);border:1.5px solid var(--border);background:var(--bg-card-2);width:100%;color:var(--text);cursor:pointer;justify-content:center;align-items:center;gap:12px;padding:13px;font-size:15px;font-weight:600;transition:all .15s;display:flex}.btn-google:hover:not(:disabled){border-color:var(--primary);background:var(--primary-light);transform:translateY(-1px)}.btn-google:disabled{opacity:.4;cursor:not-allowed}.dashboard-header{margin-bottom:4px}.dashboard-header h1{letter-spacing:-.8px;margin-bottom:4px;font-size:32px;font-weight:800}.date-display{color:var(--text-muted);margin-bottom:0;font-size:15px;font-weight:400}.menu-summary p{margin-bottom:6px}.card-link{color:var(--primary);margin-top:14px;font-size:13px;font-weight:600;transition:opacity .15s;display:inline-block}.card-link:hover{opacity:.7}.event-list{flex-direction:column;gap:8px;display:flex}.event-item{align-items:center;gap:8px;font-size:14px;display:flex}.empty-state{color:var(--text-muted);font-size:13px;font-style:italic}.card-tomorrow{border-left:3px solid var(--primary)}.tomorrow-grid{grid-template-columns:1fr 1fr 1fr;gap:24px;display:grid}@media (width<=600px){.tomorrow-grid{grid-template-columns:1fr;gap:16px}}.tomorrow-label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);margin-bottom:8px;font-size:12px;font-weight:700}.tomorrow-grid ul{flex-direction:column;gap:6px;display:flex}.tomorrow-grid li{color:var(--text);font-size:14px}.tomorrow-grid p{color:var(--text);margin-bottom:4px;font-size:14px}.prep-tasks{border-top:1px solid var(--border);padding-top:14px}.prep-tasks ul{flex-direction:column;gap:6px;display:flex}.prep-task-item{color:var(--text);align-items:center;gap:8px;font-size:14px;display:flex}.upcoming-list{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.upcoming-item{border-radius:var(--radius-sm);background:var(--bg-card-2);border:1px solid var(--border);flex-direction:column;gap:3px;padding:11px 14px;display:flex}.upcoming-date{color:var(--primary);text-transform:capitalize;letter-spacing:.04em;font-size:11px;font-weight:700}.upcoming-event{color:var(--text);font-size:14px;font-weight:500}.upcoming-time{color:var(--text-muted);font-size:13px;font-weight:400}.month-nav{align-items:center;gap:16px;margin-bottom:18px;display:flex}.month-nav h2{text-align:center;letter-spacing:-.3px;flex:1;font-size:17px;font-weight:700}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:5px;margin-bottom:20px;display:grid}.cal-header{text-align:center;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;padding:6px 0;font-size:11px;font-weight:700}.cal-day{border-radius:var(--radius-sm);cursor:pointer;background:var(--bg-card-2);border:1.5px solid #0000;flex-direction:column;align-items:center;gap:3px;min-height:64px;padding:5px 4px;transition:all .15s;display:flex}.cal-day:hover{border-color:var(--primary);background:var(--primary-light)}.cal-day.today{border-color:var(--primary);font-weight:700}.cal-day.selected{background:var(--primary);color:#0f0f13;border-color:var(--primary)}.cal-day.has-menu{background:#34d39914}.cal-day.has-events{background:#fbbf2414}.cal-day.has-festivo{background:#f472b61a;border-color:#f472b640}.cal-school-label{color:var(--text-muted);text-align:center;word-break:break-word;white-space:normal;-webkit-line-clamp:3;-webkit-box-orient:vertical;width:100%;font-size:9px;line-height:1.3;display:-webkit-box;overflow:hidden}.festivo-label{color:#f472b6;font-size:9px;font-weight:700}.cal-day.selected .day-number{color:#0f0f13}.day-number{font-size:13px;font-weight:600}.menu-dot,.event-badge{font-size:11px}.event-more{color:var(--text-muted);font-size:10px}.menu-editor{margin-top:4px}.menu-day-grid{grid-template-columns:1fr 1fr 1fr;gap:16px;display:grid}@media (width<=600px){.menu-day-grid{grid-template-columns:1fr}}.shop-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.shop-month-select{border-radius:var(--radius-sm);border:1.5px solid var(--border);background:var(--bg-card-2);color:var(--text);cursor:pointer;padding:7px 12px;font-size:13px;font-weight:600}.shop-month-select:focus{border-color:var(--primary);outline:none}.cal-day.past-day{opacity:.4}.menu-row-today{border-left:3px solid var(--primary)!important;background:var(--primary-light)!important}.menu-table{flex-direction:column;gap:6px;display:flex}.menu-table-header{color:var(--text-muted);border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.06em;grid-template-columns:80px 1fr 1fr 1fr;gap:8px;padding:8px 14px;font-size:11px;font-weight:700;display:grid}.menu-row{border-radius:var(--radius-sm);border:1px solid var(--border);cursor:pointer;background:var(--bg-card-2);grid-template-columns:80px 1fr 1fr 1fr;align-items:center;gap:12px;padding:10px 14px;font-size:14px;transition:background .15s;display:grid}.menu-row:hover{background:var(--primary-light);border-color:var(--primary)}.menu-date{color:var(--primary);text-transform:capitalize;font-weight:600}.menu-item{color:var(--text)}.day-detail-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.day-detail-header h3{letter-spacing:-.3px;font-size:16px;font-weight:700}.event-form{background:var(--bg-card-2);border-radius:var(--radius-sm);border:1px solid var(--border);margin-bottom:16px;padding:18px}.events-list{flex-direction:column;gap:10px;display:flex}.event-card{border-radius:var(--radius-sm);background:var(--bg-card-2);border:1px solid var(--border);border-left:3px solid var(--primary);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.event-card.event-medical{border-left:3px solid var(--danger)}.event-card.event-school{border-left:3px solid #60a5fa}.event-card.event-birthday{border-left:3px solid var(--warning)}.event-card.event-other{border-left:3px solid var(--primary)}.event-card.event-gcal{border-left:3px solid var(--success);background:#34d3990d}.event-card-main{align-items:flex-start;gap:12px;display:flex}.event-icon-big{font-size:22px}.event-title{letter-spacing:-.2px;font-size:15px;font-weight:600}.event-time,.event-notes{color:var(--text-muted);margin-top:2px;font-size:13px}.child-section{margin-bottom:28px}.child-name{color:var(--primary);letter-spacing:-.4px;margin-bottom:14px;font-size:20px;font-weight:800}.activities-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;display:grid}.activity-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.activity-header h3{letter-spacing:-.2px;font-size:15px;font-weight:700}.activity-days{flex-wrap:wrap;gap:4px;margin-bottom:10px;display:flex}.day-chip{background:var(--bg-card-2);color:var(--text-muted);border:1px solid var(--border);border-radius:20px;padding:3px 9px;font-size:12px;font-weight:600}.day-chip.active{background:var(--primary-light);color:var(--primary);border-color:var(--primary)}.activity-info{color:var(--text-muted);margin-bottom:4px;font-size:13px}.activity-notes{color:var(--text-muted);margin-top:6px;font-size:13px}.days-picker{flex-wrap:wrap;gap:6px;display:flex}.day-btn{border:1.5px solid var(--border);background:var(--bg-card-2);color:var(--text-muted);border-radius:20px;padding:7px 14px;font-size:13px;font-weight:600;transition:all .15s}.day-btn:hover{border-color:var(--primary);color:var(--primary)}.day-btn.active{background:var(--primary-light);color:var(--primary);border-color:var(--primary)}.gen-hint{color:var(--text-muted);margin-bottom:16px;font-size:14px;line-height:1.6}.markdown-input{background:var(--bg-card-2);border:1.5px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text);resize:vertical;outline:none;margin-top:10px;padding:12px 14px;font-family:Inter,monospace;font-size:13px;transition:border-color .15s}.markdown-input:focus{border-color:var(--primary)}.input-mode-tabs{gap:6px;margin-bottom:12px;display:flex}.file-upload-area{border:2px dashed var(--border);border-radius:var(--radius-sm);text-align:center;color:var(--text-muted);cursor:pointer;margin-top:10px;padding:32px;font-size:14px;transition:all .15s}.file-upload-area:hover{border-color:var(--primary);background:var(--primary-light)}.school-menu-grid{flex-direction:column;gap:8px;max-height:420px;padding-right:4px;display:flex;overflow-y:auto}.school-menu-row{grid-template-columns:110px 1fr;align-items:center;gap:12px;display:grid}.school-day-label{color:var(--primary);white-space:nowrap;font-size:13px;font-weight:600}.school-menu-input{border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card-2);width:100%;color:var(--text);outline:none;padding:8px 12px;font-size:13px;transition:border-color .15s}.school-menu-input:focus{border-color:var(--primary)}.btn-save{background:var(--success);color:#0f0f13;border-radius:var(--radius-sm);cursor:pointer;border:none;padding:10px 22px;font-size:14px;font-weight:700;transition:all .15s}.btn-save:hover:not(:disabled){background:#6ee7b7;transform:translateY(-1px)}.btn-save:disabled{opacity:.4;cursor:not-allowed}.week-tabs{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.week-tab{border-radius:var(--radius-sm);border:1.5px solid var(--border);background:var(--bg-card-2);color:var(--text-muted);cursor:pointer;padding:8px 18px;font-size:13px;font-weight:600;transition:all .15s}.week-tab:hover{border-color:var(--primary);color:var(--primary)}.week-tab.active{background:var(--primary-light);color:var(--primary);border-color:var(--primary)}.gen-menu-table{border-radius:var(--radius-sm);border:1px solid var(--border);flex-direction:column;gap:0;display:flex;overflow:hidden}.gen-menu-header{background:var(--primary-light);color:var(--primary);text-transform:uppercase;letter-spacing:.06em;grid-template-columns:90px 1fr 1.3fr 1fr;gap:0;padding:12px 14px;font-size:12px;font-weight:700;display:grid}.gen-menu-row{border-bottom:1px solid var(--border);background:var(--bg-card);grid-template-columns:90px 1fr 1.3fr 1fr;gap:0;padding:12px 14px;font-size:13px;transition:background .1s;display:grid}.gen-menu-row:last-child{border-bottom:none}.gen-menu-row:nth-child(2n){background:var(--bg-card-2)}.gen-menu-row:hover{background:var(--primary-light)}.gen-day-name{color:var(--text);font-size:13px;line-height:1.4}.gen-school{color:var(--text-muted);border-left:1px solid var(--border);padding:0 10px}.gen-dinner{color:var(--text);border-left:1px solid var(--border);padding:0 10px;font-weight:500}.gen-adult{color:var(--text-muted);border-left:1px solid var(--border);padding:0 10px}.shopping-list-vertical{flex-direction:column;gap:4px;margin-top:10px;display:flex}.shopping-item-v{border-radius:var(--radius-sm);background:var(--bg-card-2);border:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:12px;padding:10px 14px;transition:background .12s;display:flex}.shopping-item-v:hover{background:var(--primary-light);border-color:var(--primary)}.shopping-item-v.checked .shopping-text{color:var(--text-muted);opacity:.6;text-decoration:line-through}.shopping-check-box{flex-shrink:0;font-size:18px}.shopping-text{color:var(--text);font-size:14px;transition:all .12s}@media (width<=768px){.gen-menu-header,.gen-menu-row{grid-template-columns:70px 1fr}.gen-menu-header span:nth-child(2),.gen-menu-row .gen-school,.gen-menu-header span:nth-child(4),.gen-menu-row .gen-adult{display:none}.school-menu-row{grid-template-columns:90px 1fr}}.weekly-view{overflow-x:auto}.weekly-grid{grid-template-columns:repeat(5,1fr);gap:8px;min-width:500px;display:grid}.weekly-col{flex-direction:column;gap:6px;display:flex}.weekly-day-header{text-align:center;color:var(--primary);background:var(--primary-light);border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.06em;padding:7px;font-size:12px;font-weight:700}.weekly-activity{border-radius:var(--radius-sm);border-left:3px solid var(--success);background:#34d39914;padding:8px;font-size:13px}.weekly-empty{text-align:center;color:var(--text-muted);padding:8px;font-size:13px}@media (width<=768px){.sidebar{display:none}.main-content{margin-left:0;padding:20px 16px 88px}.bottom-nav{background:var(--bg-card);border-top:1px solid var(--border);z-index:100;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav-item{color:var(--text-muted);flex-direction:column;flex:1;align-items:center;gap:3px;padding:10px 4px;font-size:10px;font-weight:500;display:flex}.bottom-nav-item span:first-child{font-size:22px}.bottom-nav-item.active{color:var(--primary)}.cards-grid,.tomorrow-grid,.form-row{grid-template-columns:1fr}.menu-table-header{display:none!important}.menu-row{cursor:pointer;border-radius:var(--radius-sm)!important;border-bottom:1px solid var(--border)!important;background:var(--bg-card-2)!important;flex-direction:column!important;gap:6px!important;padding:12px!important;display:flex!important}.menu-row .menu-date{color:var(--primary)!important;text-transform:capitalize!important;margin-bottom:4px!important;font-size:13px!important;font-weight:700!important}.menu-row span.menu-item{color:var(--text)!important;padding:2px 0!important;font-size:13px!important;display:block!important}.menu-row span.menu-item:before{content:attr(data-label) " "!important;color:var(--text-muted)!important;font-size:11px!important;font-weight:600!important;display:inline!important}.weekly-grid{grid-template-columns:repeat(5,140px)}.page h1{font-size:24px}}
