:root{--background:#f1f6fc;--surface:#fff;--surface-soft:#f8fbff;--text:#111;--text-muted:#6f6f6f;--border:#d6e0ec;--border-strong:#c8d5e4;--primary:#0b56c8;--primary-active:#246cd4;--primary-soft:#dceaff;--teal:#078497;--shadow-subtle:0 2px 10px #0a2d5a0a;--radius-card:22px;--radius-control:20px;--content-width:1040px}*{box-sizing:border-box}html{background:var(--background);min-width:320px}body{background:var(--background);color:var(--text);letter-spacing:0;margin:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,Segoe UI,system-ui,sans-serif}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}:focus-visible{outline-offset:3px;outline:3px solid #246cd447}.app-shell{flex-direction:column;min-height:100vh;display:flex}.topbar{z-index:20;border-bottom:1px solid var(--border);background:var(--background);position:sticky;top:0}.topbar-inner{width:min(var(--content-width), 100%);margin:0 auto;padding:14px 18px 10px}.brand-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.brand{border-radius:14px;align-items:center;gap:11px;min-width:0;display:inline-flex}.brand-mark{background:var(--primary);color:#fff;border-radius:13px;place-items:center;width:38px;height:38px;font-size:.86rem;font-weight:800;display:grid}.brand-text{gap:2px;min-width:0;display:grid}.brand-title{font-size:1.04rem;font-weight:780;line-height:1.1}.brand-subtitle{color:var(--text-muted);font-size:.8rem;font-weight:540}.status-pill{border:1px solid var(--border);background:var(--surface);color:var(--primary);white-space:nowrap;border-radius:999px;padding:8px 12px;font-size:.82rem;font-weight:700}.logout-button{cursor:pointer}.login-page{place-items:center;min-height:100vh;padding:24px 18px;display:grid}.login-card{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);width:min(420px,100%);box-shadow:var(--shadow-subtle);gap:12px;padding:28px 24px;display:grid}.login-brand{margin-bottom:8px}.login-card h1{margin:0;font-size:clamp(2rem,10vw,2.8rem);line-height:1}.login-card>p{color:var(--text-muted);margin:0 0 8px;line-height:1.5}.login-form{gap:9px;margin-top:8px;display:grid}.login-form label{margin-top:7px;font-size:.9rem;font-weight:720}.login-form input{border:1px solid var(--border-strong);background:var(--surface-soft);width:100%;min-height:48px;color:var(--text);border-radius:13px;padding:10px 13px}.login-button{background:var(--primary);color:#fff;cursor:pointer;border:0;border-radius:13px;min-height:48px;margin-top:12px;font-weight:780}.login-button:disabled{cursor:wait;opacity:.7}.form-error{color:#a12525;margin:5px 0 0;font-size:.9rem}.nav{display:none}.nav-link{min-height:42px;color:var(--text-muted);white-space:nowrap;border-radius:12px;justify-content:center;align-items:center;padding:9px 14px;font-size:.94rem;font-weight:680;transition:background-color .15s,color .15s,transform .15s;display:inline-flex}.nav-link:hover,.nav-link.active{background:var(--primary-soft);color:var(--primary)}.nav-link:active,.bottom-nav-link:active,.button:active,.primary-card-action:active,.icon-button:active,.segmented-control button:active{transform:scale(.97)}.page-shell{width:min(var(--content-width), 100%);padding:24px 18px calc(98px + env(safe-area-inset-bottom));margin:0 auto}.page-header{gap:7px;margin-bottom:18px;display:grid}.compact-header{margin-bottom:16px}.eyebrow,.section-title{color:var(--primary);letter-spacing:.06em;text-transform:uppercase;font-size:.78rem;font-weight:820}.page-title{color:var(--text);margin:0;font-size:clamp(2.25rem,13vw,4.4rem);font-weight:850;line-height:.98}.page-description{max-width:640px;color:var(--text-muted);margin:0;font-size:1rem;line-height:1.52}.primary-card{border-radius:var(--radius-card);background:var(--primary);color:#fff;min-height:180px;box-shadow:var(--shadow-subtle);align-content:space-between;gap:24px;margin-bottom:26px;padding:25px 24px;display:grid}.primary-card-label{color:#ffffffbd;letter-spacing:.06em;text-transform:uppercase;font-size:.82rem;font-weight:820}.primary-card h2{margin:18px 0 8px;font-size:clamp(1.85rem,8vw,3rem);font-weight:850;line-height:1.04}.primary-card p{color:#ffffffdb;max-width:560px;margin:0;font-size:1.08rem;line-height:1.45}.primary-card-action{color:#fff;border:1px solid #ffffff42;border-radius:999px;align-items:center;width:fit-content;min-height:42px;padding:9px 15px;font-weight:780;transition:background-color .15s,transform .15s;display:inline-flex}.primary-card-action:hover{background:#ffffff1f}.dashboard-grid,.panel-grid,.module-grid{gap:20px;display:grid}.dashboard-section{gap:11px;display:grid}.panel{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-subtle);overflow:hidden}.panel-header{justify-content:space-between;align-items:flex-start;gap:14px;padding:22px 22px 8px;display:flex}.panel-title{margin:0;font-size:1.12rem;font-weight:790;line-height:1.22}.panel-meta{color:#ffffffc2;white-space:nowrap;font-size:.82rem;font-weight:650}.panel-body{padding:0 22px 22px}.list-card{padding:0}.plain-list{margin:0;padding:0;list-style:none}.row-item{grid-template-columns:minmax(74px,auto) minmax(0,1fr);align-items:center;gap:13px;min-height:82px;padding:17px 20px;display:grid}.row-item+.row-item{border-top:1px solid var(--border)}.row-date{color:var(--primary);font-size:1.05rem;font-weight:820;line-height:1.15}.row-content{gap:4px;min-width:0;display:grid}.row-title{color:var(--text);font-size:1.06rem;font-weight:770;line-height:1.25}.row-detail{color:var(--text-muted);font-size:.96rem;line-height:1.36}.timer-panel{background:var(--primary);color:#fff}.timer-panel .item-detail{color:#ffffffc7}.timer-readout{align-items:end;gap:10px;margin:8px 0 10px;display:flex}.timer-time{font-size:clamp(3rem,17vw,5.3rem);font-weight:860;line-height:.9}.timer-label{color:#ffffffc7;padding-bottom:7px;font-size:1rem}.summary-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px;display:grid}.summary-item{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);align-content:start;gap:12px;min-height:138px;padding:20px;display:grid}.summary-label{color:var(--text-muted);font-size:.92rem;font-weight:760}.summary-value{font-size:clamp(1.8rem,8vw,2.6rem);font-weight:850;line-height:1}.summary-detail{color:var(--text-muted);font-size:.92rem;line-height:1.35}.muted-card{gap:18px;padding:21px;display:grid}.muted-card p{color:var(--text-muted);margin:0;line-height:1.5}.module-chip-row{flex-wrap:wrap;gap:9px;display:flex}.module-chip{border:1px solid var(--border);background:var(--surface-soft);color:var(--text-muted);border-radius:999px;padding:8px 11px;font-size:.9rem;font-weight:680}.module-footer{color:var(--text-muted);text-align:center;margin-top:18px;font-size:.78rem}.module-card{align-content:start;gap:12px;min-height:172px;padding:22px;transition:border-color .15s,transform .15s;display:grid}.module-card:hover{border-color:var(--border-strong)}.module-card h2{margin:0;font-size:1.18rem;font-weight:800}.module-card p{color:var(--text-muted);margin:0;line-height:1.5}.segmented-control{border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface);grid-template-columns:repeat(3,1fr);min-height:62px;margin-bottom:20px;display:grid;overflow:hidden}.segmented-control button{color:var(--primary);cursor:pointer;background:0 0;border:0;font-size:1.08rem;font-weight:780;transition:background-color .15s,color .15s,transform .15s}.segmented-control button:hover{background:var(--primary-soft)}.segmented-control button.active{background:var(--primary-active);color:#fff}.month-card{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:8px;min-height:76px;margin-bottom:22px;padding:13px 14px;display:grid}.icon-button{width:44px;height:44px;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:14px;place-items:center;transition:background-color .15s,color .15s,transform .15s;display:grid}.icon-button:hover{background:var(--primary-soft);color:var(--primary)}.month-title{color:var(--primary);text-align:center;justify-content:center;align-items:center;gap:10px;font-size:clamp(1.25rem,6vw,2rem);font-weight:820;display:flex}.calendar-panel{margin-bottom:18px}.weekday-grid,.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.weekday-grid{color:var(--text-muted);text-align:center;margin-bottom:12px;font-size:.98rem;font-weight:760}.calendar-grid{row-gap:8px}.calendar-day{min-height:62px;color:var(--text);align-content:center;justify-items:center;gap:6px;display:grid}.calendar-number{border-radius:999px;place-items:center;width:40px;height:40px;font-size:1.16rem;font-weight:700;display:grid}.calendar-day.muted .calendar-number{color:var(--text-muted)}.calendar-day.today .calendar-number{border:3px solid var(--primary-active)}.calendar-day.selected .calendar-number{background:var(--primary-active);color:#fff}.marker-row{gap:4px;min-height:10px;display:inline-flex}.marker{border-radius:3px;width:10px;height:10px}.marker.teal{background:var(--teal)}.marker.blue{background:var(--primary-active)}.marker.gray{border:2px solid var(--text-muted);background:0 0}.action-header,.section-heading,.dialog-header,.item-actions{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.button{cursor:pointer;border:0;border-radius:13px;justify-content:center;align-items:center;gap:7px;min-height:44px;padding:10px 15px;font-weight:760;display:inline-flex}.primary-button{background:var(--primary);color:#fff}.secondary-button{background:var(--primary-soft);color:var(--primary)}.danger-button{color:#a12525;background:#fff0f0}.form-submit{width:100%;margin-top:5px}.calendar-panel.panel{padding:18px 10px}.calendar-day{border-radius:14px}.selected-list,.reminder-section{gap:13px;margin-top:26px;display:grid}.section-heading{align-items:end}.section-heading h2{margin:5px 0 0;font-size:clamp(1.35rem,5vw,1.8rem)}.appointment-list,.reminder-list{gap:12px;display:grid}.appointment-card{grid-template-columns:105px minmax(0,1fr) auto;gap:18px;padding:20px;display:grid}.appointment-time,.appointment-content,.reminder-content{align-content:start;gap:5px;display:grid}.appointment-time strong{color:var(--primary);font-size:1.15rem}.appointment-time span,.due-label{color:var(--text-muted);font-size:.86rem}.appointment-content h3,.reminder-content h3,.empty-state h3{margin:0}.appointment-content p,.reminder-content p,.empty-state p{color:var(--text-muted);white-space:pre-wrap;margin:0;line-height:1.45}.source-chip{background:var(--primary-soft);width:fit-content;color:var(--primary);border-radius:999px;margin-top:5px;padding:4px 8px;font-size:.75rem;font-weight:700}.item-actions{align-items:center}.empty-state{color:var(--text-muted);text-align:center;justify-items:center;gap:8px;padding:35px 20px;display:grid}.compact-empty{padding:28px 20px}.reminder-card{grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:15px;padding:18px;display:grid}.reminder-card.completed .reminder-content h3{color:var(--text-muted);text-decoration:line-through}.complete-button{border:2px solid var(--primary);width:42px;height:42px;color:var(--primary);cursor:pointer;background:#fff;border-radius:50%;place-items:center;display:grid}.completed .complete-button{background:var(--primary);color:#fff}.form-dialog{background:0 0;border:0;border-radius:24px;width:min(600px,100% - 28px);max-height:calc(100dvh - 28px);padding:0}.form-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0514286b}.dialog-card{background:var(--surface);border-radius:24px;max-height:calc(100dvh - 28px);padding:22px;overflow-y:auto}.dialog-header{align-items:center;margin-bottom:18px}.dialog-header h2{margin:5px 0 0}.data-form{gap:14px;display:grid}.data-form label{gap:7px;font-size:.9rem;font-weight:720;display:grid}.data-form label span{color:var(--text-muted);font-weight:500}.data-form input,.data-form textarea{border:1px solid var(--border-strong);background:var(--surface-soft);width:100%;color:var(--text);border-radius:13px;padding:11px 12px}.data-form input{min-height:46px}.data-form textarea{resize:vertical}.form-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}@media (max-width:600px){.action-header{align-items:end}.appointment-card,.reminder-card{grid-template-columns:auto minmax(0,1fr)}.appointment-card .item-actions,.reminder-card .item-actions{border-top:1px solid var(--border);grid-column:1/-1;justify-content:flex-end;padding-top:12px}.form-dialog{border-radius:24px 24px 0 0;width:100%;max-height:94dvh;margin:auto 0 0}.dialog-card{max-height:94dvh;padding-bottom:calc(22px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0}.form-row{grid-template-columns:1fr}}.agenda-legend{border-top:1px solid var(--border);color:var(--text-muted);flex-wrap:wrap;gap:12px 16px;margin:4px 0 22px;padding-top:16px;font-size:.94rem;display:flex}.agenda-legend span{align-items:center;gap:7px;display:inline-flex}.legend-dot{border-radius:999px;width:11px;height:11px}.legend-dot.blue{background:var(--primary-active)}.legend-dot.teal{background:var(--teal)}.legend-dot.gray{border:2px solid var(--text-muted)}.selected-day-card{justify-content:space-between;align-items:flex-start;gap:16px;padding:22px;display:flex}.selected-day-card h2{color:var(--primary);margin:7px 0 12px;font-size:clamp(1.35rem,7vw,2rem);line-height:1.1}.selected-day-card p{color:var(--text-muted);margin:0;font-size:1.02rem;line-height:1.5}.bottom-nav{z-index:30;padding:8px 10px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--surface-soft);grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav-link{min-height:66px;color:var(--text-muted);border-radius:18px;align-content:center;justify-items:center;gap:4px;font-size:.78rem;font-weight:760;transition:background-color .15s,color .15s,transform .15s;display:grid}.bottom-nav-icon{border-radius:15px;place-items:center;width:46px;height:34px;transition:background-color .15s;display:grid}.bottom-nav-link.active{color:var(--primary)}.bottom-nav-link.active .bottom-nav-icon{background:var(--primary-soft)}.bottom-nav-link:hover{color:var(--primary)}@media (max-width:390px){.topbar-inner,.page-shell{padding-left:14px;padding-right:14px}.row-item{grid-template-columns:minmax(62px,auto) minmax(0,1fr);padding:15px 16px}.bottom-nav-link{font-size:.72rem}}@media (min-width:720px){.topbar-inner{padding:18px 24px 12px}.desktop-nav{scrollbar-width:none;grid-auto-columns:max-content;grid-auto-flow:column;gap:7px;margin-top:14px;padding-bottom:4px;display:grid;overflow-x:auto}.desktop-nav::-webkit-scrollbar{display:none}.page-shell{padding:34px 24px 56px}.bottom-nav{display:none}.primary-card{grid-template-columns:minmax(0,1fr) auto;align-items:end;min-height:210px}.dashboard-grid{grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);align-items:start;gap:22px}.module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.agenda-page{max-width:860px}.calendar-grid{row-gap:14px}.calendar-day{gap:8px;min-height:70px}.calendar-number{width:46px;height:46px}}@media (min-width:1040px){.topbar{position:static}.page-title{font-size:4rem}.module-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.calendar-day{min-height:78px}}
