/* Рядом · quiet, tactile, iOS-inspired UI. No webfonts or remote assets. */
:root{--paper:#f6f5f1;--ink:#282d2b;--muted:#8b908c;--line:#edeee9;--accent:#de7156;--accent-soft:#faede6;--sage:#5b9c87;--radius:23px}
*{box-sizing:border-box}
html{background:var(--paper);-webkit-tap-highlight-color:transparent}
body{margin:0;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit}
button,a,input,select{touch-action:manipulation}
button{cursor:pointer;color:inherit}
button:disabled{cursor:default;opacity:.6}
button:focus-visible,a:focus-visible,label:focus-within,input:focus-visible,select:focus-visible{outline:3px solid #de715668;outline-offset:3px}
button{border:0;background:none}
svg{flex-shrink:0;vertical-align:middle}
h1,h2,h3,p{margin:0}
a{text-decoration:none;color:inherit}
.v-application{font-family:inherit!important;background:var(--paper)!important;color:var(--ink)!important}
.v-application__wrap{min-height:100dvh!important}
.v-btn{text-transform:none!important;font-weight:650!important;letter-spacing:0!important}
.v-btn__content{gap:9px}
.primary-btn.v-btn{background:var(--accent)!important;color:white!important;min-height:46px;border-radius:13px!important;padding:0 20px!important;box-shadow:0 4px 10px #bb64461a!important}
.primary-btn.v-btn:hover{background:#ce654b!important}
.secondary-btn.v-btn{border-color:#e4e5de!important;color:#555e57!important;min-height:44px;border-radius:13px!important}
.danger-btn.v-btn{background:#bf5147!important;color:white!important;min-height:46px;border-radius:13px!important}
.full-width{width:100%}
.spaced{margin-top:17px}
.subtle{color:#818780;line-height:1.65;font-size:14px}
.eyebrow{font-size:10px;letter-spacing:1.65px;font-weight:650;color:#969d94;display:block}
.brand{display:flex;align-items:center;gap:11px;font-size:29px;font-weight:750;letter-spacing:-1px;text-align:left}
.brand-note{display:block;font-size:9px;font-weight:500;letter-spacing:.3px;color:#9b9e96;margin-top:-3px}
.brand-mark{height:37px;width:37px;display:grid;grid-template-columns:1fr 1fr;gap:3px;transform:rotate(-7deg);flex-shrink:0}
.brand-mark span{background:#df785d;border-radius:8px}
.brand-mark span:nth-child(2){background:#eab39c;border-radius:8px 8px 8px 3px}
.brand-mark span:nth-child(3){background:#eaaa8f;border-radius:8px 3px 8px 8px}
.brand-mark span:nth-child(4){background:#ce735b;border-radius:3px 8px 8px 8px}
.boot-screen{min-height:100dvh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:17px;padding:30px;text-align:center}
.boot-screen p{max-width:430px;color:#838a81;line-height:1.6}
.boot-screen .brand-mark{height:53px;width:53px}
.auth-page{min-height:100dvh;display:grid;grid-template-columns:1.1fr 1fr;background:white}
.auth-art{background:#eeeee6;position:relative;overflow:hidden;padding:43px 8.5%;display:flex;flex-direction:column;min-height:100dvh}
.auth-story{margin:auto 0;padding:56px 0}
.auth-story h1{font-size:clamp(43px,4.7vw,72px);line-height:1.07;letter-spacing:-3.3px;font-weight:650;margin:24px 0}
.auth-story h1 em{color:#cf765d;font-style:normal}
.auth-story>p{color:#898d82;line-height:1.75;font-size:15px}
.auth-mini-calendar{margin:39px 0 0 18px;background:#ffffffd9;border:1px solid white;box-shadow:0 18px 50px #5a675015;border-radius:20px;padding:22px;max-width:360px;transform:rotate(-3deg)}
.mini-head{display:flex;align-items:center;gap:9px;font-size:14px;margin-bottom:19px}.mini-head>svg{color:var(--accent)}.mini-head>span{margin-left:auto;font-size:11px;color:#a1a395}
.mini-event{padding:14px 12px;background:#fae4d8;border:1px solid #ebb59c;display:flex;gap:13px;align-items:center;border-radius:12px;margin-top:10px}.mini-event>span{font-size:11px;color:#ae6b51}.mini-event b{font-size:13px}.mini-event small{display:block;font-size:10px;color:#a87762;margin-top:4px}.mini-event i{margin-left:auto;font-style:normal;color:#ae6b51}.mini-event.purple{background:white;border-color:#c5bddf}.mini-event.purple>span,.mini-event.purple small,.mini-event.purple>svg{color:#9d92bd}.mini-event>svg{margin-left:auto}
.auth-foot{display:flex;align-items:center;gap:8px;color:#929a8b;font-size:11px}
.auth-form-panel{display:flex;align-items:center;justify-content:center;padding:40px}
.auth-form{width:100%;max-width:360px}
.auth-form h2{font-size:29px;letter-spacing:-1px;margin:20px 0 10px;font-weight:650}
.auth-form>.subtle{margin-bottom:30px}
.greeting-icon{width:60px;height:60px;border-radius:20px;background:#fbefe7;color:#d78860;display:flex;align-items:center;justify-content:center}
.field{display:flex;flex-direction:column;gap:8px;margin-bottom:20px;min-width:0}
.field>span{font-size:12px;color:#646c63;font-weight:600;display:flex;justify-content:space-between;gap:8px}
.field>span small{font-size:10px;font-weight:400;color:#989e94}
.field input,.field select{width:100%;min-width:0;height:49px;border:1px solid #e6e8e1;border-radius:12px;background:#fbfcf9;padding:0 14px;color:#343c32;font-size:15px;outline:0;transition:border-color .15s,box-shadow .15s}
.field input::placeholder{color:#a5aba1;font-size:13px}
.field input:focus,.field select:focus{border-color:#df967e;box-shadow:0 0 0 3px #de715611}
.field input:disabled,.field select:disabled{opacity:.65;background:#f3f3ef}
.field input[type=date],.field input[type=time]{appearance:none;-webkit-appearance:none;line-height:47px}
.field select{appearance:auto;padding-right:8px}
.field-note{color:#92998f;line-height:1.65;font-size:12px;margin:14px 0 22px}
.text-link{display:inline-flex;align-items:center;justify-content:center;gap:6px;color:#ce755a;font-size:13px;font-weight:600;min-height:30px}
.text-link.danger{color:#be6155}
.auth-recover{display:block;margin:14px auto 0;font-size:12px}
.auth-divider{display:flex;align-items:center;gap:13px;color:#b2b5ae;font-size:11px;margin:25px 0}
.auth-divider>span{height:1px;flex:1;background:#eceee8}
.demo-link{display:flex;align-items:center;justify-content:center;gap:3px;font-size:12px;color:#838b80;width:100%;margin-top:18px;min-height:34px}
.auth-privacy{font-size:11px;text-align:center;color:#b0b5ab;line-height:1.7;margin-top:28px}
.mobile-auth-brand{display:none}
.inline-error{font-size:12px;line-height:1.55;background:#fff0eb;color:#b45140;border-radius:10px;padding:11px 13px;margin:0 0 16px}
.warning-note{font-size:13px;line-height:1.6;color:#926335;background:#fff5e5;padding:13px 15px;border-radius:12px;margin:18px 0}
.app-shell{min-height:100dvh;max-width:1800px;margin:auto;width:100%;display:grid;grid-template-columns:224px minmax(0,1fr)}
.sidebar{background:#fffefa;border-right:1px solid #e9eae2;padding:36px 22px 20px;display:flex;flex-direction:column;position:sticky;top:0;height:100dvh}
.sidebar>.brand{padding-left:8px;margin-bottom:50px}
.sidebar-label{font-size:8px;font-weight:650;letter-spacing:1.25px;color:#afb3a7;padding-left:13px;margin-bottom:16px}
.sidebar-label.second{margin-top:31px}
.desktop-nav{display:flex;flex-direction:column;gap:7px}
.desktop-nav>button{width:100%;display:flex;gap:13px;align-items:center;padding:13px;border-radius:12px;color:#81897c;font-size:13px;font-weight:530;position:relative;min-height:45px}
.desktop-nav>button>svg{width:20px;height:20px;stroke-width:1.55}
.desktop-nav>button:hover{background:#f5f5ee}
.desktop-nav>button.active{background:#f9eee6;color:#cb7757;font-weight:650}
.nav-count{margin-left:auto;font-size:10px;background:#f0daca;border-radius:6px;padding:2px 6px}
.sidebar-bottom{margin-top:auto}
.offline-promise{display:flex;gap:10px;margin-bottom:27px;padding:15px 9px;border-radius:14px;background:#f6f7f0}
.offline-promise>span{height:31px;width:31px;border-radius:10px;background:#eaf0e3;color:#8c9f7f;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.offline-promise b{font-size:11px;font-weight:600}.offline-promise p{font-size:10px;color:#a1a893;line-height:1.6;margin-top:5px}
.user-chip{display:flex;align-items:center;gap:9px;padding:13px 3px 0;border-top:1px solid #eceee5;width:100%;text-align:left}
.user-letter{width:36px;height:36px;border-radius:50%;background:#eaeadd;color:#858873;font-size:14px;display:inline-flex;align-items:center;justify-content:center;font-weight:650;flex-shrink:0}
.user-chip b{display:block;font-size:12px;font-weight:650}.user-chip small{display:block;font-size:9px;color:#adb39f;margin-top:3px}.user-chip>svg{margin-left:auto;color:#a0a68f}
.main-column{padding:33px 39px 22px;min-width:0}
.mobile-topbar{display:none}
.page-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:30px;min-height:105px}
.page-heading h1{font-size:43px;font-weight:650;letter-spacing:-1.75px;line-height:1.17;margin:10px 0 8px}
.heading-dot{color:#dca488;padding-left:1px}
.heading-sub{color:#91988b;font-size:12px;line-height:1.5}
.heading-actions{display:flex;align-items:center;gap:20px}
.sync-pill{display:flex;gap:7px;align-items:center;font-size:10px;color:#8a9b82;white-space:nowrap}
.status-dot{width:5px;height:5px;border-radius:50%;background:#8baf7f}
.sync-pill.offline,.sync-pill.pending{color:#b5986c}.sync-pill.offline .status-dot,.sync-pill.pending .status-dot{background:#c4a675}
.sync-pill.conflict,.sync-pill.auth,.sync-pill.error{color:#c2765b}.sync-pill.conflict .status-dot,.sync-pill.auth .status-dot,.sync-pill.error .status-dot{background:#c2765b}
.sync-pill.demo{color:#9a94af}.sync-pill.demo .status-dot{background:#a59bbd}
.sync-pill.syncing .status-dot{animation:pulse 1.1s infinite}
@keyframes pulse{50%{opacity:.3}}
.demo-banner,.update-banner{background:#efede6;color:#989586;border-radius:9px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;font-size:10px;margin-bottom:8px}
.demo-banner>span{display:flex;align-items:center;gap:6px}
.demo-banner button,.update-banner button{font-size:10px;text-decoration:underline;flex-shrink:0}
.update-banner{background:#e8efe4;color:#6c865f}
.day-layout{display:grid;grid-template-columns:minmax(0,1fr) 252px;gap:25px;align-items:start}
.calendar-card{background:white;border:1px solid #eeeee8;border-radius:var(--radius);overflow:hidden;box-shadow:0 6px 19px #4d594407}
.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:23px 24px 14px}
.month-button{display:flex;align-items:center;gap:9px;font-size:15px;font-weight:650;text-transform:capitalize;letter-spacing:-.2px}
.month-button>svg{color:#9fa48f}
.date-actions{display:flex;align-items:center;gap:4px}
.today-button{background:#f5f6f0;border:1px solid #eeeeE7;border-radius:8px;padding:6px 10px;font-size:10px;color:#888f7f;margin-right:5px}
.icon-button{min-width:33px;min-height:33px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:9px;color:#939b8d}
.icon-button:hover{background:#f4f5ee}
.week-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:9px;padding:0 24px 20px}
.week-day{height:75px;border-radius:13px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:#888e84;position:relative}
.week-day>span{font-size:10px;text-transform:capitalize}.week-day>b{font-size:21px;line-height:1.2;font-weight:550;letter-spacing:-.5px}
.week-day>i{height:3px;width:3px;border-radius:50%;background:transparent;position:absolute;bottom:8px}
.week-day>i.has{background:#b8bbae}.week-day.is-today:not(.chosen)>b{color:var(--accent);font-weight:700}
.week-day:hover{background:#f8f8f3}.week-day.chosen{background:#de7c62;color:white;box-shadow:0 4px 10px #d7886622}.week-day.chosen>span{color:#ffe7dc}.week-day.chosen>i.has{background:#ffdfcd}
.day-context{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:19px 23px;border-top:1px solid #f0f0e8;border-bottom:1px solid #f0f0e8;background:#fffefa}
.child-select{display:flex;align-items:center;gap:9px;position:relative;min-width:140px;max-width:75%}
.child-select>div{min-width:0}.child-select small{display:block;font-size:7px;letter-spacing:1.15px;color:#a4aa99;font-weight:650;margin:0 0 3px 3px}
.child-select select{font-weight:650;font-size:13px;color:#535d4e;max-width:155px;width:100%;outline:0;appearance:none;-webkit-appearance:none;padding:0 4px;background:transparent;cursor:pointer}
.child-select>svg{color:#a4ac97;margin-left:5px}
.avatar{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border:2px solid var(--child-color);border-radius:50%;padding:2px;background:#fff;color:color-mix(in srgb,var(--child-color) 75%,black);overflow:hidden}
.avatar>img{border-radius:50%;width:100%;height:100%;object-fit:cover}
.avatar-letter{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--child-color) 17%,white);border-radius:50%;font-weight:650}
.all-avatar{width:34px;height:34px;border-radius:50%;background:#eff1e8;color:#97a085;display:flex;align-items:center;justify-content:center}
.day-mini-count{display:flex;align-items:center;gap:8px;padding-left:12px;color:#a0a58f}
.day-mini-count>b{font-size:27px;font-weight:500;line-height:1;color:#909b7c}
.day-mini-count>span{font-size:9px;line-height:1.35}.day-mini-count small{display:block;font-size:8px;color:#b7bda8;margin-top:2px}
.selection-hint{font-size:10px;line-height:1.5;color:#a7a994;padding:10px 23px;background:#fbfbf6}
.timeline-scroller{max-height:665px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#e4e7dc transparent;background:#fff}
.lane-heads{height:63px;display:flex;position:sticky;top:0;z-index:5;background:#ffffffed;backdrop-filter:blur(12px);border-bottom:1px solid #f3f3ee}
.time-axis-head{width:50px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#b6bbab}
.lane-heading{flex:1;display:flex;align-items:center;justify-content:center;transition:opacity .2s}
.lane-heading button{display:flex;align-items:center;gap:7px;min-height:43px;padding:0 10px;border-radius:11px}
.lane-heading span:not(.avatar):not(.avatar-letter){font-size:10px;color:#747e6b;font-weight:550}
.lane-heading.muted{opacity:.48}
.timeline{display:flex;position:relative;margin-top:16px;margin-bottom:15px}
.time-axis{width:50px;flex-shrink:0;position:relative}
.time-axis>span{position:absolute;left:13px;font-size:9px;color:#a7ad9f;transform:translateY(-50%);font-variant-numeric:tabular-nums}
.timeline-lanes{display:flex;flex:1;position:relative;margin-right:14px;min-width:0}
.timeline-lane{position:relative;flex:1;min-width:0;border-left:1px solid #f5f5f0}
.hour-line{position:absolute;left:0;right:0;height:1px;background:#eeefe8;pointer-events:none}
.hour-line::after{content:"";position:absolute;left:0;right:0;top:34.5px;border-top:1px dashed #f3f4ee}
.hour-line:last-of-type::after{display:none}
.lesson-card{position:absolute;z-index:2;text-align:left;border:1.5px solid var(--child-color);border-radius:11px;padding:9px 10px;color:#484d47;background:#fff;overflow:hidden;display:flex;flex-direction:column;gap:5px;transition:opacity .15s,box-shadow .15s}
.lesson-card:hover{box-shadow:0 5px 14px #35403015;z-index:3}
.lesson-card.visited{background:color-mix(in srgb,var(--child-color) 31%,white)}
.lesson-card.muted{opacity:.38}
.lesson-card.muted:hover{opacity:.75}
.lesson-time{font-size:9px;line-height:1.25;color:color-mix(in srgb,var(--child-color) 78%,black);display:flex;align-items:center;gap:4px;white-space:nowrap;letter-spacing:.05px}
.lesson-time>svg{margin-left:auto}
.lesson-card>strong{font-size:12px;font-weight:650;line-height:1.25;letter-spacing:-.15px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.lesson-activity{font-size:9px;color:#8a897c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lesson-card.compact{padding:4px 6px;gap:2px;border-radius:7px}.lesson-card.compact>strong{font-size:10px;line-height:1;-webkit-line-clamp:1}.lesson-card.compact>.lesson-time{font-size:8px}
.lesson-card.tight{padding:7px 5px}.lesson-card.tight>strong{font-size:10px}
.calendar-legend{border-top:1px solid #f0f1e9;display:flex;align-items:center;gap:17px;padding:16px 23px;color:#a6ad9b;font-size:9px;background:#fffefa}
.calendar-legend>span{display:flex;align-items:center;gap:5px}.legend-border,.legend-fill{height:10px;width:12px;border:1px solid #e3a184;border-radius:3px}.legend-fill{background:#f3c3ac}.legend-tip{margin-left:auto;font-size:8px;color:#c0c4b5}
.day-aside{display:flex;flex-direction:column;gap:20px}
.family-note{background:#eaf0e3;border:1px solid #e5ebdc;border-radius:22px;padding:25px 25px 87px;position:relative;overflow:hidden;min-height:258px}
.note-icon{width:36px;height:36px;border:1px solid #cfdbc2;background:#f1f6eb;display:flex;align-items:center;justify-content:center;border-radius:12px;color:#9bad88;margin-bottom:20px}
.family-note .eyebrow{color:#99a58a;font-size:8px;letter-spacing:1.4px}
.family-note h2{font-size:31px;line-height:1.1;letter-spacing:-1.15px;color:#667c51;font-weight:560;margin:12px 0}
.family-note p{font-size:11px;line-height:1.7;color:#98a68b}
.note-art{position:absolute;height:115px;width:150px;right:4px;bottom:-6px;transform:rotate(-9deg)}
.note-art i{position:absolute;bottom:0;width:49px;border-radius:24px 24px 0 0;background:#cbdbb8}.note-art i:first-child{height:47px;left:0;background:#d9e4cb}.note-art i:nth-child(2){height:78px;left:45px;background:#cadaba}.note-art i:nth-child(3){height:108px;left:90px;background:#bdcea9}.note-art>span{font-size:36px;color:#b3c69d;position:absolute;top:-10px;left:43px;transform:rotate(15deg)}
.aside-card{background:#fffefa;border:1px solid #eceee5;border-radius:20px;padding:19px}
.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.section-heading h3{font-size:13px;font-weight:650;color:#606b58}.section-heading>button{background:#f5f7ee;min-width:27px;min-height:27px}
.team-row{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:12px 0;border-bottom:1px solid #f3f4eb}
.team-row:last-child{border-bottom:0;padding-bottom:2px}
.team-row b{display:block;font-size:12px;font-weight:650;color:#697260}.team-row small{display:block;font-size:9px;color:#aab09d;margin-top:5px}.team-row>i{height:5px;width:5px;border-radius:50%;margin-left:auto;opacity:.5}.team-row.selected>i{height:7px;width:7px;opacity:1}
.next-card .eyebrow{font-size:8px;letter-spacing:1px}
.next-card h3{font-size:14px;letter-spacing:-.2px;color:#64715a;margin-top:8px;font-weight:600}
.daily-numbers{display:flex;margin:21px 0}
.daily-numbers>div{width:50%;border-left:1px solid #ecefe3;padding-left:20px}.daily-numbers>div:first-child{border:0;padding-left:0}
.daily-numbers b{font-size:31px;font-weight:500;line-height:1;color:#8c9b78}.daily-numbers span{display:block;font-size:10px;color:#aab29e;margin-top:5px}
.next-card .text-link{font-size:10px;width:100%;border-top:1px solid #ecefe3;padding-top:14px;color:#8ca078}
.aside-caption{display:flex;align-items:flex-start;gap:7px;color:#b0b7a4;font-size:9px;line-height:1.8;padding:0 10px}
.wide-card{background:#fffefa;border:1px solid #edeee6;border-radius:21px}
.empty-state{text-align:center;padding:55px 25px;display:flex;flex-direction:column;align-items:center}
.empty-state>svg{color:#b6c1a8;margin-bottom:15px}
.empty-orbit{height:84px;width:84px;border-radius:28px;display:flex;align-items:center;justify-content:center;background:#f4f4e9;color:#c2bd91;transform:rotate(-7deg);margin-bottom:24px}
.empty-orbit svg{transform:rotate(7deg)}
.empty-state h3{font-size:21px;letter-spacing:-.6px;font-weight:600;color:#727d65;margin-bottom:12px}
.empty-state p{font-size:12px;color:#a0aa94;line-height:1.85;max-width:350px;margin:0 auto 23px}
.day-empty,.onboarding-empty{min-height:450px;justify-content:center}
.desktop-footer{display:flex;justify-content:space-between;font-size:9px;color:#bdc1b3;letter-spacing:.2px;padding-top:28px}
.bottom-nav{display:none}
.schedule-page{padding:26px 28px;max-width:980px}
.list-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}
.segmented{display:flex;padding:4px;background:#f0f2e9;border-radius:10px;gap:3px}
.segmented>button{padding:7px 16px;font-size:12px;border-radius:7px;color:#989e8e}
.segmented>button.active{background:#fffefa;box-shadow:0 2px 4px #6874540d;color:#66765b;font-weight:600}
.plain-select{color:#7d8771;font-size:12px;border:1px solid #e5e9dc;padding:8px 10px;border-radius:9px;background:#fffefa;max-width:170px}
.schedule-period{display:flex;align-items:center;justify-content:space-between;padding:19px 0 8px;color:#7d876f;font-size:13px;font-weight:600}
.agenda-group{padding:19px 0;border-bottom:1px solid #edefe4}
.agenda-group:last-child{border-bottom:0}
.agenda-date{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.agenda-date>span{display:flex;align-items:center;justify-content:center;background:#f3f5ed;border-radius:12px;width:44px;height:46px;color:#8d987c;font-size:20px;font-weight:550}
.agenda-date>span.today{background:#f8e8dd;color:#cc8661}
.agenda-date b{text-transform:capitalize;font-size:13px;color:#79866b;display:block}.agenda-date small{font-size:9px;color:#b4bca6;display:block;margin-top:3px}.agenda-date>.icon-button{margin-left:auto}
.agenda-empty{font-size:11px;color:#bcc3b0;margin-left:56px;padding:3px 0}
.agenda-event{display:flex;align-items:center;gap:12px;width:100%;min-height:75px;padding:12px 7px;text-align:left;border-radius:12px}
.agenda-event:hover{background:#f8f9f2}.agenda-event.muted{opacity:.4}
.agenda-time{font-size:12px;color:#78896a;min-width:40px;line-height:1.4;font-variant-numeric:tabular-nums}.agenda-time small{display:block;color:#b4bda8;font-size:10px;margin-top:3px}
.agenda-stripe{height:39px;width:3px;border-radius:3px;margin-right:2px;flex-shrink:0}
.agenda-name{min-width:0;flex:1}.agenda-name>b{display:block;font-size:13px;font-weight:600;color:#6c7b5e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agenda-name>small{display:block;font-size:10px;color:#a6b096;margin-top:5px}
.agenda-event>svg{color:#b1bba2}
.visit-check{width:27px;height:27px;border-radius:50%;background:#edf3e7;color:#9fb589;display:flex;align-items:center;justify-content:center}
.series-row{display:flex;align-items:center;gap:15px;padding:24px 0;border-bottom:1px solid #edefe4;width:100%;text-align:left}
.series-row>span:nth-child(2){flex:1;min-width:0}.series-row b{display:block;color:#6f7e5f;font-weight:600;font-size:14px}.series-row small{display:block;font-size:11px;color:#a4af94;margin-top:6px}.series-row em{display:block;font-style:normal;font-size:9px;color:#b4bda6;margin-top:6px}.series-row>svg{color:#bcc6ae}
.reports-page{max-width:1030px}
.report-filters{padding:25px 27px}
.report-selects{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.report-period-row{display:flex;align-items:center;gap:12px}
.report-period-row>.field{width:170px;margin-bottom:0}.date-range-dash{padding-top:17px;font-size:12px;color:#b9beaF}
.date-presets{display:flex;gap:7px;flex-wrap:wrap;margin-left:auto;padding-top:17px}
.date-presets>button{font-size:10px;background:#f2f4eb;border:1px solid #e7ecdc;border-radius:8px;padding:7px 10px;color:#929e7f}
.report-total{margin:23px 0;background:#eef2e6;border:1px solid #e4eada;border-radius:21px;padding:26px 32px;position:relative;overflow:hidden;display:flex;align-items:center;gap:24px}
.report-total>div:first-child{flex:1;z-index:1}
.report-total .eyebrow{font-size:9px;letter-spacing:1.4px;color:#9aab88}
.total-line{display:flex;align-items:baseline;gap:11px;margin-top:3px}
.total-line>strong{font-size:70px;font-weight:450;line-height:1.15;letter-spacing:-3px;color:#859b6a}
.total-line>span{font-size:17px;color:#a0af8c}
.report-total p{font-size:10px;color:#acb79d;margin-top:6px}
.report-total>.avatar{margin-right:75px;z-index:1;background:#f5f7ef}
.report-total-decoration{position:absolute;right:-9px;bottom:-47px;font-size:175px;color:#e0e8d3;transform:rotate(-12deg)}
.report-empty{padding:45px 24px}
.visit-group{padding:24px 27px;margin-bottom:19px;min-width:0}
.visit-group-header{display:flex;align-items:center;gap:14px;margin-bottom:22px}
.section-badge{height:43px;width:43px;border-radius:13px;background:#f6eee2;display:inline-flex;align-items:center;justify-content:center;color:#c2ab83;flex-shrink:0}
.visit-group-header h3{font-size:16px;font-weight:600;color:#6c7b5a;letter-spacing:-.2px}
.visit-group-header p{font-size:10px;color:#aab49b;margin-top:4px}
.total-badge{margin-left:auto;padding:6px 10px;border-radius:8px;background:#f2f5e9;color:#90a079;font-size:12px;font-weight:600;white-space:nowrap}
.total-badge>span{font-size:9px;font-weight:400}
.visit-scroll{display:flex;gap:11px;overflow-x:auto;padding:3px 0 18px;scrollbar-width:thin;scrollbar-color:#dfe7d1 transparent}
.visit-date-card{border:1px solid #e7edde;background:#fcfdf8;border-radius:14px;min-width:91px;padding:14px 8px 12px;display:flex;align-items:center;flex-direction:column}
.visit-dot{border-radius:50%;height:28px;width:28px;background:color-mix(in srgb,var(--child-color) 17%,white);color:var(--child-color);display:flex;align-items:center;justify-content:center;margin-bottom:9px}
.visit-date-card>strong{font-size:24px;line-height:1.3;font-weight:550;color:#869674}
.visit-date-card>span:not(.visit-dot){font-size:11px;color:#aab69b;margin-top:1px}
.visit-date-card>small{font-size:8px;color:#b8c2aa;margin-top:8px;white-space:nowrap}
.visit-group-footer{display:flex;justify-content:space-between;align-items:center;padding-top:14px;border-top:1px solid #edf1e3;font-size:9px;color:#b4bea7}
.visit-group-footer>span:last-child{display:flex;align-items:center;gap:5px}
.more-page{max-width:1030px}
.menu-card{padding:4px 22px;margin-bottom:22px;max-width:740px}
.menu-card>button{width:100%;text-align:left;display:flex;align-items:center;gap:15px;padding:21px 0;border-bottom:1px solid #edf0e3}
.menu-card>button:last-child{border-bottom:0}
.menu-icon{width:43px;height:43px;border-radius:13px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.menu-icon.coral{background:#f9e7db;color:#d79870}.menu-icon.lavender{background:#eeebf3;color:#a59cbd}.menu-icon.sage{background:#eaf1e2;color:#9bb184}.menu-icon.neutral{background:#f0f3e8;color:#b0bd9c}
.menu-card>button>span:nth-child(2){flex:1}.menu-card b{display:block;font-size:14px;color:#7b8c66;font-weight:600}.menu-card small{display:block;font-size:10px;color:#afbba0;margin-top:5px}.menu-card>button>svg{color:#c1cbb3}
.app-version{max-width:740px;font-size:10px;line-height:1.8;text-align:center;color:#b6c0a9;margin:30px 0}
.subpage-toolbar{display:flex;align-items:center;justify-content:space-between;margin:-6px 0 20px;gap:15px}
.archive-toggle{font-size:11px;color:#a1ae91;display:flex;align-items:center;gap:8px;cursor:pointer}
.archive-toggle input{accent-color:#95a87c}
.children-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:21px}
.child-card{text-align:center;padding:29px 24px 13px;max-width:340px}
.child-card h3{font-size:21px;color:#778c60;margin-top:18px;font-weight:600;letter-spacing:-.4px}
.child-card>p{font-size:11px;color:#acba9a;margin-top:8px;margin-bottom:24px}
.child-card-actions{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #edf1e3;padding-top:12px;gap:10px}
.child-card-actions>.text-link{font-size:11px;color:#b49876}
.archived{opacity:.65}
.archived-label{display:inline-block;background:#f1f2e9;border-radius:5px;color:#a6b197;font-size:9px;padding:3px 7px;margin-top:7px}
.sections-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}
.section-card{padding:24px 23px 13px;max-width:420px}
.section-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:17px}
.activity-pill{font-size:9px;color:#a1ad8e;background:#f2f5e9;border-radius:7px;padding:5px 9px}
.section-card h3{font-size:17px;letter-spacing:-.3px;font-weight:600;color:#74885c;line-height:1.45}
.section-address{display:flex;align-items:flex-start;gap:6px;color:#aeba98;font-size:11px;line-height:1.6;margin:9px 0 17px;min-height:35px}
.section-members{display:flex;align-items:center;gap:5px;min-height:33px;margin-bottom:18px}
.section-members>span:not(.avatar){font-size:10px;color:#bbc5a8}
.profile-card{padding:27px;max-width:740px;margin-bottom:22px}
.profile-title{display:flex;align-items:center;gap:15px;margin-bottom:26px}
.user-letter.large{height:58px;width:58px;font-size:24px;background:#eef2e1;color:#acb992}
.profile-title h3{font-size:21px;font-weight:600;color:#7c8f62}
.profile-title p{font-size:10px;color:#b0bf9b;margin-top:6px}
.profile-card>h3{font-size:17px;font-weight:600;color:#819568;margin-bottom:12px}
.profile-card>.subtle{font-size:12px;max-width:560px}
.profile-card>.field-note{margin-bottom:0}
.backup-actions{display:flex;flex-wrap:wrap;align-items:center;gap:17px;margin-top:21px}
.file-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #e3e8d9;border-radius:12px;padding:12px 13px;font-size:12px;font-weight:600;color:#91a177;cursor:pointer;position:relative;overflow:hidden;min-height:44px}
.file-button input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}
.logout-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;color:#ba816b;font-size:13px;padding:13px 19px}
.sheet-dialog .v-overlay__scrim{background:#192319!important;opacity:.34!important;backdrop-filter:blur(3px)}
.sheet-dialog .v-overlay__content{border-radius:25px!important;box-shadow:0 25px 100px #23301d30!important;width:calc(100% - 36px)!important;max-height:calc(100dvh - 48px)!important;overflow:auto!important}
.sheet-card{background:#fffefa;border-radius:25px;padding:20px 27px 27px;overflow:auto;min-width:0}
.sheet-handle{width:38px;height:4px;background:#dde3d2;border-radius:4px;margin:0 auto 15px}
.sheet-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:25px}
.sheet-header h2{font-size:21px;font-weight:650;letter-spacing:-.6px;color:#5f7050}
.sheet-header>.icon-button{background:#f0f3e9;min-width:31px;min-height:31px;border-radius:50%;color:#a1b18d}
.sheet-card>.subtle{margin-bottom:20px}
.lesson-detail-title{display:flex;align-items:center;gap:13px;margin:4px 0 22px}
.lesson-detail-title span:not(.avatar):not(.avatar-letter){font-size:11px;color:#a6b493}
.lesson-detail-title h3{font-size:20px;letter-spacing:-.5px;color:#647d4b;line-height:1.3;margin-top:4px;font-weight:600}
.detail-meta{display:flex;flex-direction:column;gap:13px;margin-bottom:27px}
.detail-meta>p{display:flex;align-items:center;gap:10px;font-size:12px;color:#9eb28b;line-height:1.5}
.detail-meta>p>svg{color:#bdcbb0;flex-shrink:0}
.attendance-fieldset{border:0;margin:0 0 24px;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.attendance-fieldset>legend{font-size:12px;color:#89a172;font-weight:600;margin-bottom:13px}
.attendance-fieldset>label{display:flex;align-items:center;gap:8px;padding:13px 11px;border-radius:12px;border:1px solid #e5ebdc;cursor:pointer}
.attendance-fieldset>label.selected{background:#f4f8ed;border-color:#c7d6b4}
.attendance-fieldset input{accent-color:#94ad7b;width:16px;height:16px}
.attendance-fieldset>label>span:last-child{font-size:12px;font-weight:600;color:#8ca775}
.attendance-example{height:22px;width:25px;border:1.5px solid var(--child-color);border-radius:6px;display:flex;align-items:center;justify-content:center}
.attendance-example.filled{background:color-mix(in srgb,var(--child-color) 35%,white);color:var(--child-color)}
.detail-actions{display:flex;justify-content:space-between;gap:20px;margin-top:17px}
.photo-picker{display:flex;align-items:center;gap:20px;margin:3px 0 25px}
.photo-picker>label{position:relative;cursor:pointer;flex-shrink:0}
.photo-picker input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}
.camera-badge{position:absolute;right:-2px;bottom:1px;background:#f0f5e5;border:2px solid #fffefa;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#adbc95}
.photo-picker b{font-size:13px;color:#8fa674;font-weight:600}
.photo-picker p{font-size:10px;color:#b6c5a0;line-height:1.7;margin-top:6px}
.photo-picker .text-link{font-size:10px;margin-top:4px}
.color-picker{border:0;display:flex;gap:14px;margin:23px 0 0;padding:0}
.color-picker>legend{font-size:12px;color:#8ea476;font-weight:600;margin-bottom:15px}
.color-picker>label{width:38px;height:38px;border:3px solid transparent;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--swatch);cursor:pointer;color:#fffefa;position:relative}
.color-picker>label.selected{outline:2px solid var(--swatch);outline-offset:3px}
.color-picker>label>input[type=radio]{position:absolute;width:1px;height:1px;opacity:0}
.color-picker .custom-color{border:1px dashed #c7d6b3;background:#f5f8ee;color:#b4c49e;overflow:hidden}
.custom-color>input{position:absolute;inset:-5px;opacity:0;cursor:pointer}
.member-picker{border:0;margin:26px 0;padding:0;display:flex;flex-direction:column;gap:9px}
.member-picker>legend{font-size:12px;color:#8ea476;font-weight:600;margin-bottom:13px}
.member-picker>label{display:flex;align-items:center;gap:10px;cursor:pointer;border:1px solid #e8eedd;border-radius:12px;padding:9px 12px}
.member-picker>label.selected{border-color:#ccdcb6;background:#f6f9ef}
.member-picker input{accent-color:#9db482}
.member-picker>label>span:not(.avatar){font-size:13px;color:#8ba76e}
.member-picker>label>svg{margin-left:auto;color:#acbf93}
.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.switch-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 0;margin:4px 0 19px;cursor:pointer;border-top:1px solid #edf2e3;border-bottom:1px solid #edf2e3}
.switch-row b{font-size:12px;color:#849f67;font-weight:600}
.switch-row small{display:block;font-size:10px;color:#b0c297;line-height:1.5;margin-top:5px}
.ios-switch{position:relative;width:46px;height:28px;flex-shrink:0}
.ios-switch input{position:absolute;width:100%;height:100%;opacity:0;inset:0;cursor:pointer;z-index:1}
.ios-switch i{position:absolute;inset:0;border-radius:20px;background:#e0e7d5;transition:background .18s}
.ios-switch i::after{content:"";position:absolute;width:24px;height:24px;border-radius:50%;background:white;left:2px;top:2px;box-shadow:0 2px 5px #5d6f4426;transition:transform .18s}
.ios-switch input:checked+i{background:#a4ba89}
.ios-switch input:checked+i::after{transform:translateX(18px)}
.ios-switch input:disabled+i{opacity:.6}
.scope-picker{border:0;margin:22px 0 25px;padding:0;display:flex;flex-direction:column;gap:11px}
.scope-picker legend{font-size:12px;color:#8da573;font-weight:600;margin-bottom:14px}
.scope-picker label{display:flex;align-items:center;gap:9px;font-size:13px;color:#91ad74;cursor:pointer}
.scope-picker input{accent-color:#a3b987;height:17px;width:17px}
.scope-picker .field-note{margin:3px 0 0}
.month-picker-head{display:flex;align-items:center;justify-content:space-between;margin:-8px 0 18px}
.month-picker-head h3{font-size:16px;text-transform:capitalize;font-weight:600;color:#849f67}
.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-bottom:25px}
.month-weekday{text-align:center;font-size:10px;padding:7px 0 11px;color:#b2c39c}
.month-grid button{height:41px;font-size:13px;color:#90aa71;border-radius:11px}
.month-grid button.other{opacity:.3}
.month-grid button.today{border:1px solid #d5bb9c;color:#c09d79}
.month-grid button.selected{background:#da9273;color:white}
.month-grid button:hover{background:#f2f7e8}
.month-grid button.selected:hover{background:#da9273}
.sync-status-card{text-align:center;padding:5px 7px 8px}
.sync-status-card>svg{color:#a8be8d;margin-bottom:14px}
.sync-status-card h3{color:#88a268;font-size:23px;font-weight:550;letter-spacing:-.5px;margin-bottom:12px}
.sync-status-card p{font-size:13px;color:#acbf94;line-height:1.75}
.v-snackbar__content{font-size:13px!important;line-height:1.55!important}
@media(min-width:1500px){.main-column{padding:42px 56px 26px}.day-layout{grid-template-columns:minmax(0,1fr) 284px;gap:29px}.sidebar{padding-left:27px;padding-right:27px}.app-shell{grid-template-columns:248px minmax(0,1fr)}.lesson-card>strong{font-size:13px}.lesson-time{font-size:10px}.timeline-scroller{max-height:730px}.family-note{padding:28px 28px 93px}.family-note h2{font-size:35px}}
@media(max-width:1190px){.app-shell{grid-template-columns:194px minmax(0,1fr)}.sidebar{padding:30px 15px 18px}.sidebar>.brand{font-size:26px;padding-left:6px}.brand-mark{height:32px;width:32px}.brand-note{font-size:8px}.main-column{padding:26px 25px 20px}.day-layout{grid-template-columns:minmax(0,1fr) 216px;gap:19px}.family-note{padding:22px 20px 74px}.family-note h2{font-size:29px}.aside-card{padding:16px}.heading-actions{gap:15px}.desktop-sync{display:none}.page-heading h1{font-size:39px}.report-period-row{flex-wrap:wrap}.date-presets{margin-left:0;padding-top:0}.report-total>.avatar{margin-right:40px}.week-strip{padding-left:17px;padding-right:17px;gap:5px}.calendar-toolbar{padding-left:18px;padding-right:18px}.day-context{padding-left:18px;padding-right:18px}.month-button{font-size:13px}.calendar-legend{padding:15px 17px;gap:11px}}
@media(max-width:980px){.app-shell{grid-template-columns:174px minmax(0,1fr)}.sidebar{padding:27px 11px 17px}.sidebar>.brand{font-size:25px;margin-bottom:38px}.sidebar .brand-note{font-size:7px}.desktop-nav>button{font-size:11px;padding:12px 9px;gap:10px}.sidebar-label{font-size:7px;padding-left:9px;letter-spacing:.8px}.offline-promise{padding:11px 7px;gap:6px}.offline-promise>span{width:27px;height:27px}.offline-promise b{font-size:9px}.offline-promise p{font-size:8px}.user-chip b{font-size:11px}.user-chip small{font-size:8px}.day-layout{grid-template-columns:minmax(0,1fr)}.day-aside{display:none}.calendar-card{max-width:none}.page-heading h1{font-size:37px}.main-column{padding:22px 26px}.report-total>.avatar{margin-right:32px}.timeline-scroller{max-height:720px}.children-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.child-card{padding:24px 19px 12px}}
@media(max-width:700px){
  html,body{overscroll-behavior-y:none}
  .app-shell{display:block}
  .sidebar{display:none}
  .main-column{padding:0 17px 112px}
  .mobile-topbar{display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:72px;padding:10px 1px 8px}
  .mobile-topbar .brand{font-size:25px;gap:8px}.mobile-topbar .brand-mark{width:28px;height:28px;gap:2px}.mobile-topbar .brand-mark span{border-radius:6px}
  .mobile-topbar .sync-pill{font-size:9px;background:#ecefe4;border-radius:20px;padding:6px 9px;color:#93a57d}.mobile-topbar .sync-pill.offline{background:#f2ede1;color:#b9a37f}.mobile-topbar .sync-pill.demo{background:#eeebef;color:#a69bb6}
  .page-heading{min-height:0;margin:21px 0 23px;align-items:center;gap:9px}
  .page-heading .eyebrow{font-size:7px;letter-spacing:1.35px;line-height:1.5}
  .page-heading h1{font-size:34px;letter-spacing:-1.4px;line-height:1.2;margin:7px 0 5px}
  .heading-sub{font-size:10px;line-height:1.5;max-width:245px}
  .heading-actions{gap:0;flex-shrink:0;margin-top:11px}
  .heading-actions .primary-btn.v-btn{padding:0 13px!important;min-height:41px;height:41px;font-size:11px;border-radius:11px!important}
  .heading-actions .primary-btn .v-btn__content{gap:4px}.heading-actions .primary-btn svg{width:17px;height:17px}
  .day-layout{display:block}
  .calendar-card{border-radius:21px}
  .calendar-toolbar{padding:19px 17px 11px}
  .month-button{font-size:13px;gap:4px}.month-button>svg{width:14px;height:14px}
  .date-actions{gap:0}.date-actions .icon-button{min-width:26px;min-height:30px}.date-actions .today-button{font-size:9px;padding:5px 7px;margin-right:2px}
  .week-strip{padding:0 13px 17px;gap:4px}
  .week-day{height:68px;border-radius:12px;gap:4px}
  .week-day>span{font-size:9px}.week-day>b{font-size:21px}.week-day>i{bottom:7px}
  .day-context{padding:16px 17px}.child-select{gap:8px}.child-select select{font-size:12px}.child-select small{font-size:6.5px;letter-spacing:1px}.child-select>svg{margin-left:0}
  .day-mini-count>b{font-size:26px}.day-mini-count>span{font-size:8px}.day-mini-count small{font-size:7px}
  .selection-hint{font-size:9px;padding:9px 17px;line-height:1.6}
  .timeline-scroller{max-height:none;overscroll-behavior:auto;scrollbar-width:none}
  .lane-heads{height:57px;position:relative}
  .lane-heading button{gap:6px;padding:0 3px}.lane-heading span:not(.avatar):not(.avatar-letter){font-size:10px}
  .time-axis,.time-axis-head{width:43px}.time-axis>span{font-size:8px;left:9px}.timeline-lanes{margin-right:8px}.timeline{margin-top:13px}
  .lesson-card{border-radius:9px;padding:8px 8px;gap:4px}.lesson-card>strong{font-size:11px;line-height:1.2}.lesson-time{font-size:8px;gap:2px}.lesson-activity{font-size:8px}.lesson-time>svg{width:11px;height:11px}
  .calendar-legend{padding:15px 16px;font-size:8px;gap:13px}.legend-tip{font-size:7px}
  .empty-state{padding:43px 24px}.day-empty,.onboarding-empty{min-height:400px}.empty-state h3{font-size:19px}.empty-state p{font-size:11px}
  .bottom-nav{position:fixed;z-index:20;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(4,1fr);padding:10px 14px calc(9px + env(safe-area-inset-bottom));background:#fffefaed;border-top:1px solid #e7ebdc;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}
  .bottom-nav>button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:#b0b9a1;min-height:45px;border-radius:11px}.bottom-nav>button>span{font-size:9px;font-weight:500}.bottom-nav>button.active{color:#d48862}.bottom-nav>button.active>svg{stroke-width:2}
  .desktop-footer{display:none}
  .demo-banner{font-size:8px;padding:7px 9px;margin:1px 0 -3px}.demo-banner button{font-size:8px}.demo-banner svg{height:12px;width:12px}
  .update-banner{font-size:9px;padding:8px}
  .schedule-page{padding:19px 16px}.list-toolbar{gap:8px}.segmented>button{font-size:11px;padding:6px 13px}.plain-select{font-size:10px;max-width:132px;padding:7px}.schedule-period{font-size:12px;padding-top:16px}.agenda-group{padding:16px 0}.agenda-event{gap:8px;padding:10px 0}.agenda-time{font-size:11px;min-width:34px}.agenda-time small{font-size:9px}.agenda-name>b{font-size:11px}.agenda-name>small{font-size:9px}.agenda-stripe{margin-right:1px}.agenda-event .avatar{width:29px!important;height:29px!important;font-size:11px!important}.agenda-event>svg{width:14px}.agenda-date{gap:11px}.agenda-date>b{font-size:12px}.agenda-date>span{width:39px;height:42px;font-size:19px}.agenda-date small{font-size:8px}
  .series-row{gap:12px;padding:21px 0}.series-row b{font-size:12px}.series-row small{font-size:9px}.series-row em{font-size:8px}.series-row>.avatar{width:36px!important;height:36px!important}
  .report-filters{padding:20px 17px}.report-selects{gap:12px;grid-template-columns:1fr}.report-selects .field{margin-bottom:15px}
  .report-period-row{gap:8px;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}
  .report-period-row>.field{width:auto;min-width:0}.report-period-row input{padding:0 9px;font-size:13px}.date-presets{grid-column:1/4;padding-top:13px;gap:8px}.date-presets>button{font-size:9px;padding:6px 9px}
  .report-total{padding:23px 21px;margin:19px 0;border-radius:19px;gap:12px}.total-line>strong{font-size:61px}.total-line>span{font-size:15px}.report-total>.avatar{margin-right:6px;width:57px!important;height:57px!important;font-size:23px!important}.report-total p{font-size:8px;line-height:1.6;max-width:230px}.report-total-decoration{font-size:140px;bottom:-43px;right:-27px}.report-total .eyebrow{font-size:8px;letter-spacing:1.1px}
  .visit-group{padding:19px 16px}.visit-group-header{gap:10px;margin-bottom:17px}.section-badge{height:36px;width:36px;border-radius:11px}.section-badge>svg{width:20px}.visit-group-header h3{font-size:13px;line-height:1.3}.visit-group-header p{font-size:9px}.total-badge{padding:5px 8px;font-size:12px;align-self:flex-start}.total-badge>span{display:none}.visit-scroll{gap:9px}.visit-date-card{min-width:78px;padding:12px 7px}.visit-date-card>strong{font-size:23px}.visit-date-card>small{font-size:7px}.visit-group-footer{font-size:8px;gap:8px}
  .menu-card{padding:3px 17px;margin-bottom:18px}.menu-card>button{gap:12px;padding:18px 0}.menu-card b{font-size:13px}.menu-card small{font-size:9px}.menu-icon{height:40px;width:40px}
  .subpage-toolbar{margin-top:-6px;margin-bottom:19px}.archive-toggle{font-size:9px}.subpage-toolbar>.text-link{font-size:11px}
  .children-grid{gap:13px}.child-card{padding:23px 13px 12px;border-radius:18px}.child-card>.avatar{width:65px!important;height:65px!important;font-size:25px!important}.child-card h3{font-size:19px;margin-top:15px}.child-card>p{font-size:10px;margin-bottom:19px}.child-card-actions>.text-link{font-size:9px;gap:4px}.child-card-actions>.text-link>svg{width:13px;height:13px}.child-card-actions>.icon-button{min-width:26px;min-height:29px}.child-card-actions>.icon-button>svg{width:16px;height:16px}
  .sections-grid{grid-template-columns:1fr;gap:16px}.section-card{max-width:none;padding:22px 21px 13px}.section-card h3{font-size:17px}.section-card .child-card-actions>.text-link{font-size:11px}
  .profile-card{padding:22px 19px;margin-bottom:18px}.profile-title{gap:12px}.profile-title h3{font-size:20px}.profile-title p{font-size:9px;line-height:1.5}.profile-card>.subtle{font-size:11px}.backup-actions{gap:10px}.backup-actions>.v-btn{font-size:11px;padding:0 12px!important}.file-button{font-size:11px;padding:10px}
  .sheet-dialog .v-overlay__content{align-self:flex-end!important;margin:0!important;width:100%!important;max-width:100%!important;max-height:calc(100dvh - 28px)!important;border-radius:25px 25px 0 0!important}
  .sheet-card{padding:13px 23px calc(26px + env(safe-area-inset-bottom));border-radius:25px 25px 0 0}
  .sheet-header{margin-bottom:23px}.sheet-header h2{font-size:20px}.sheet-handle{margin-bottom:18px}
  .field>span{font-size:11px}.field input,.field select{font-size:16px;height:49px}.field input::placeholder{font-size:12px}.field-note{font-size:11px}
  .attendance-fieldset>label{padding:12px 9px;gap:7px}.attendance-fieldset>label>span:last-child{font-size:12px}.attendance-example{width:22px;height:21px}.attendance-fieldset input{width:15px;height:15px}
  .photo-picker{gap:16px}.photo-picker b{font-size:12px}.photo-picker p{font-size:9px}
  .auth-page{display:block;min-height:100dvh}.auth-art{display:none}.auth-form-panel{min-height:100dvh;padding:25px 27px 40px;flex-direction:column;justify-content:flex-start}
  .mobile-auth-brand{display:flex;font-size:26px;gap:9px;width:100%;max-width:370px;margin:8px 0 39px}.mobile-auth-brand .brand-mark{width:30px;height:30px}
  .auth-form{max-width:370px}.auth-form h2{font-size:28px}.auth-form>.subtle{font-size:12px;margin-bottom:28px}.greeting-icon{width:54px;height:54px;border-radius:18px}.auth-privacy{font-size:10px}.auth-divider{margin:22px 0}
}
@media(max-width:360px){.main-column{padding-left:12px;padding-right:12px}.heading-sub{font-size:9px;max-width:215px}.page-heading h1{font-size:31px}.page-heading .eyebrow{font-size:6.5px;letter-spacing:1px}.calendar-toolbar{padding-left:13px;padding-right:13px}.month-button{font-size:12px}.today-button{display:none}.week-strip{padding-left:10px;padding-right:10px}.day-context{padding-left:13px;padding-right:13px}.calendar-legend{padding-left:12px;padding-right:12px;gap:10px}.legend-tip{display:none}.attendance-fieldset{gap:7px}.attendance-fieldset>label{gap:5px}.attendance-fieldset>label>span:last-child{font-size:11px}.sheet-card{padding-left:19px;padding-right:19px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* Readability pass: keep the soft surfaces, increase the contrast of primary information. */
.heading-sub,.subtle{color:#737d6c}
.lesson-card>strong{color:#3e4937}
.lesson-activity{color:#707b65}
.time-axis>span{color:#7e8b72}
.lane-heading span:not(.avatar):not(.avatar-letter){color:#637554}
.field-note{color:#77866a}
.detail-meta>p{color:#70875b}
.detail-meta>p>svg{color:#9fb58a}
.lesson-detail-title span:not(.avatar):not(.avatar-letter){color:#7b9067}
.attendance-fieldset>legend,.attendance-fieldset>label>span:last-child{color:#6a8354}
.photo-picker b,.color-picker>legend,.member-picker>legend{color:#6e855a}
.photo-picker p{color:#899c75}
.member-picker>label>span:not(.avatar){color:#6f8858}
.switch-row b,.scope-picker legend,.scope-picker label{color:#6a8352}
.switch-row small{color:#849970}
.sync-status-card p{color:#7f966a}
.child-card h3,.section-card h3,.menu-card b,.profile-title h3,.profile-card>h3{color:#657e4d}
.section-address,.agenda-name>small,.series-row small{color:#7d9267}
.agenda-name>b,.series-row b,.visit-group-header h3{color:#607b46}
.visit-date-card>strong{color:#607b47}
.visit-date-card>span:not(.visit-dot){color:#7c9466}
.visit-date-card>small{color:#8ca578}
.report-total p{color:#81966d}
.report-total .eyebrow{color:#7a9166}
.total-line>strong{color:#667f50}
.total-line>span{color:#8ca471}
.month-weekday,.month-grid button{color:#7c9367}
.month-grid button.selected{color:#fff}
@media(max-width:700px){.lesson-card>strong{font-size:12px}.lesson-time{font-size:9px}.lesson-activity{font-size:9px}.time-axis>span{font-size:9px}}

/* RYADOM_DESKTOP_CARD_FIX_1001
   Keep whole text lines inside time-proportional cards. In a flex column,
   overflow:hidden made the title/description shrink below their line height.
   Density is based on the card's content height, never on its text length.
   All overrides are desktop-only; the mobile layout remains unchanged. */
@media (min-width:701px) {
  .lesson-card {
    container-name:ryadom-lesson;
    container-type:size;
    padding:5px 10px;
    gap:2px;
  }
  .lesson-card.compact,.lesson-card.tight {padding:4px 6px}
  .lesson-card>.lesson-time {
    flex:0 0 14px;
    min-height:14px;
    line-height:14px;
  }
  .lesson-card>strong {
    flex:0 0 auto;
    display:block;
    min-height:18px;
    line-height:18px;
    white-space:nowrap;
    text-overflow:ellipsis;
  }
  .lesson-card.compact>strong {min-height:14px;line-height:14px}
  .lesson-card>.lesson-activity {flex:0 0 12px;line-height:12px}
  /* A partial third line is worse than no subtitle. Full details remain
     available on click, even in a short or overlapping calendar slot. */
  @container ryadom-lesson (max-height:47px) {
    .lesson-card>.lesson-activity {display:none}
  }
  @container ryadom-lesson (max-height:34px) {
    .lesson-card>.lesson-time {display:none}
  }
  /* Longer slots have room for two complete title lines. */
  @container ryadom-lesson (min-height:66px) {
    .lesson-card:not(.compact)>strong {
      display:-webkit-box;
      white-space:normal;
      -webkit-line-clamp:2;
      -webkit-box-orient:vertical;
      overflow-wrap:anywhere;
    }
  }
}

/* 1.1.0: standalone iPhone safe areas. Native Android insets are handled by Capacitor. */
@media(max-width:700px){
  html.pwa-standalone .main-column{padding-top:env(safe-area-inset-top);padding-bottom:calc(112px + env(safe-area-inset-bottom))}
  html.pwa-standalone .auth-form-panel{padding-top:calc(25px + env(safe-area-inset-top));padding-bottom:calc(40px + env(safe-area-inset-bottom))}
  html.pwa-standalone .main-column{padding-left:max(17px,env(safe-area-inset-left));padding-right:max(17px,env(safe-area-inset-right))}
}
.install-card{max-width:660px}
.install-card h3{margin:20px 0 12px}
.install-card p{line-height:1.7}
.install-status{display:flex;gap:10px;align-items:flex-start;font-size:13px;padding:14px;border-radius:14px;background:#f3f0e9;color:#746c5b}
.install-status.prepared{background:#eef3e8;color:#496236}
.apk-link{display:flex;align-items:center;justify-content:center;gap:12px;min-height:48px;padding:12px 18px;border-radius:14px;background:#DE7156;color:white;text-decoration:none;font-weight:600;margin:16px 0}
