.planner{--today-ring-size:26px;--bg:#f6f3ee;--surface:#fff;--ink:#1e232a;--muted:#5c6570;--outside:#a2a9b2;--line:#dedad3;--selected:#3156b8;--ice:#2864b4;--sala:#b53648;--soft:#efede8;--tint:#edf1fa;--warning:#85521c;--warning-bg:#fff3df;--error:#a0283e;--error-bg:#fff0f2;min-height:100vh;background:var(--bg);min-height:100dvh;color:var(--ink);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:Manrope,Arial,sans-serif}html[data-theme=dark] .planner{--bg:#111722;--surface:#1c2533;--ink:#f2f5fa;--muted:#b2bdd0;--outside:#68758a;--line:#3d4b63;--ice:#79baff;--sala:#ff6575;--soft:#202c3e;--tint:#233450;--warning:#f3c586;--warning-bg:#352c20;--error:#ff9aaa;--error-bg:#3d2531;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.planner *{box-sizing:border-box}.planner button,.planner select{font:inherit}.planner button{cursor:pointer}.planner button:disabled{opacity:.5;cursor:default}:is(.planner button:focus-visible,.planner select:focus-visible,.planner a:focus-visible,.planner summary:focus-visible){outline:3px solid var(--ice);outline-offset:3px}.planner-shell{max-width:1080px;margin:auto;padding:24px 36px 20px}.planner-top{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:0 0 18px;display:flex}.brand{flex-shrink:0;align-items:center;text-decoration:none;display:flex}.brand-logo{object-fit:contain;mix-blend-mode:multiply;width:82px;height:65px;display:block}html[data-theme=dark] .brand-logo{filter:invert();mix-blend-mode:screen}.private-tag{color:var(--muted);align-items:center;gap:7px;font-size:11px;display:flex}.private-tag>span{background:var(--ice);border-radius:50%;width:6px;height:6px}.planner-intro{justify-content:space-between;align-items:flex-end;gap:24px;padding:30px 0;display:flex}.planner .overline{letter-spacing:1.6px;color:var(--muted);margin:0 0 12px;font-size:9px;font-weight:800}.planner h1{letter-spacing:-1.7px;margin:0;font-size:36px;font-weight:700;line-height:1.2}.planner h1>span{color:var(--sala)}.intro-copy{color:var(--muted);margin:12px 0 0;font-size:12px}.group-control{min-width:245px}.group-control label{color:var(--muted);margin-bottom:9px;font-size:10px;font-weight:600;display:block}.select-wrap{border:1px solid var(--line);background:var(--surface);border-radius:11px;align-items:center;gap:10px;padding:0 13px;display:flex;position:relative}.select-wrap select{-webkit-appearance:none;appearance:none;color:var(--ink);cursor:pointer;outline-offset:0;background:0 0;border:0;width:100%;min-height:48px;padding-right:20px;font-size:14px;font-weight:700}.select-wrap option,.theme-control option{background:var(--surface);color:var(--ink)}.select-wrap>svg{pointer-events:none;position:absolute;right:14px}.group-dot{background:var(--selected);border-radius:50%;flex-shrink:0;width:7px;height:7px}.planner-columns{grid-template-columns:1.02fr 1fr;align-items:start;gap:34px;display:grid}.calendar-panel{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:26px 25px 0;overflow:hidden}.calendar-heading,.calendar-range{justify-content:space-between;align-items:center;gap:12px;display:flex}.calendar-heading h2{letter-spacing:-.6px;text-transform:capitalize;margin:0;font-size:23px;font-weight:700}.calendar-heading .overline{margin-bottom:10px;font-size:8px}.planner .today-button{border:1px solid var(--line);background:var(--surface);color:var(--ice);border-radius:7px;min-height:36px;margin:0;padding:7px 12px;font-size:10px}.calendar-range{color:var(--muted);margin:20px 0 9px;font-size:11px}.month-arrows{gap:5px;display:flex}.month-arrows button{color:var(--ink);background:0 0;border:0;border-radius:7px;place-items:center;width:36px;height:36px;margin:0;padding:0;display:grid}.month-arrows button:hover{background:var(--soft)}.weekday-row,.calendar-days{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.weekday-row span{text-align:center;letter-spacing:.8px;color:var(--muted);padding:14px 0;font-size:9px;font-weight:700}.weekday-row .weekend{color:var(--sala)}.calendar-days{gap:5px 2px}.planner .date-button{min-width:0;min-height:51px;color:var(--ink);background:0 0;border:0;border-radius:11px;flex-direction:column;justify-content:center;align-items:center;gap:5px;margin:0;padding:9px 0 5px;font-size:14px;display:flex;position:relative}.date-button>span:first-child{width:var(--today-ring-size);height:var(--today-ring-size);border-radius:50%;place-items:center;display:grid}.planner .date-button:hover{background:var(--soft)}.date-button.is-today>span:first-child{box-shadow:inset 0 0 0 1px var(--ice)}.planner .date-button.selected{background:var(--selected);color:#fff;box-shadow:0 4px 10px #00000015}.date-button.selected.is-today>span:first-child{box-shadow:inset 0 0 0 1px #ffffffa0}.calendar-panel.is-auto-measuring{visibility:hidden}.date-dots{flex-wrap:wrap;justify-content:center;align-items:center;gap:2px;max-width:calc(100% - 4px);min-height:5px;display:flex}.event-dot,.pending-dot{--dot:var(--ice);border-radius:50%;flex-shrink:0;width:5px;height:5px;display:inline-block}.event-dot{background:var(--dot)}.pending-dot{border:1px solid var(--muted)}.ice-dot{--dot:var(--ice)}.sala-dot{--dot:var(--sala)}.selected .event-dot{background:var(--dot);box-shadow:0 0 0 1px #fff}.selected .pending-dot{border-color:#fff}.calendar-legend{color:var(--muted);border-top:1px solid var(--line);justify-content:center;gap:15px;margin-top:13px;padding:22px 0;font-size:9px;display:flex}.calendar-legend>span{align-items:center;gap:6px;display:flex}.today-ring{border:1px solid var(--ice);width:var(--today-ring-size);height:var(--today-ring-size);border-radius:50%;flex-shrink:0;display:block}.period-summary{background:var(--soft);border-top:1px solid var(--line);color:var(--muted);align-items:center;gap:9px;margin:0 -25px;padding:17px 25px;font-size:10px;display:flex}.day-heading{justify-content:space-between;align-items:center;gap:12px;padding:6px 0 21px;display:flex}.day-heading h2{letter-spacing:-.8px;margin:0;font-size:26px;font-weight:600;line-height:1.2}.day-heading h2>span{letter-spacing:0;color:var(--muted);text-transform:capitalize;margin-top:8px;font-size:11px;font-weight:400;display:block}.day-heading .overline{margin-bottom:10px;font-size:8px}.lesson-count{color:var(--muted);background:var(--soft);border:1px solid var(--line);white-space:nowrap;border-radius:20px;padding:7px 10px;font-size:9px}.lesson-list{flex-direction:column;gap:8px;display:flex}.planner .lesson-card{background:var(--surface);border:1px solid var(--line);border-radius:11px;min-height:0;padding:12px 15px;position:relative;overflow:hidden}.lesson-card:before{content:"";background:var(--ice);border-radius:0 3px 3px 0;width:3px;position:absolute;top:12px;bottom:12px;left:0}.lesson-card.sala:before{background:var(--sala)}.lesson-main{grid-template-columns:67px minmax(0,1fr);align-items:start;column-gap:16px;display:grid}.lesson-card .lesson-time{letter-spacing:-.5px;font-variant-numeric:tabular-nums;flex-direction:column;align-items:flex-start;gap:5px;margin:0;font-size:20px;font-weight:600;line-height:1.2;display:flex}.lesson-time .time-end{color:var(--muted);font-weight:500}.lesson-card .lesson-time .unknown-time{letter-spacing:0;height:24px;color:var(--muted);font-size:11px;line-height:24px}.lesson-card .lesson-info{flex-direction:column;gap:5px;margin:0;display:flex}.lesson-card .lesson-info p{align-items:flex-start;gap:8px;min-height:24px;margin:0;font-size:13px;line-height:24px;display:flex}.lesson-info svg{color:var(--muted);stroke-width:1.5px;flex-shrink:0;margin-top:4px}.lesson-info p>span{overflow-wrap:anywhere;min-width:0}.lesson-info p:first-child>span{font-weight:500}.lesson-bottom{flex-wrap:wrap;align-items:center;gap:5px 12px;min-height:14px;margin-top:7px;display:flex}.type-label{color:var(--ice);align-items:center;font-weight:800;display:flex}.sala .type-label{color:var(--sala)}.lesson-card .lesson-source{min-width:0;color:var(--muted);margin:0;font-size:9px;line-height:1.4}.lesson-source summary{cursor:pointer;align-items:center;gap:5px;list-style:none;display:inline-flex}.lesson-source summary:after{content:"+";font-size:10px}.lesson-source[open] summary:after{content:"−"}.lesson-source .type-label{letter-spacing:.5px;gap:4px;font-size:8px}.lesson-source[open]{flex-basis:100%}.lesson-source[open] p{overflow-wrap:anywhere;margin:6px 0 2px;font-size:9px;line-height:1.6}.compact-arrival{color:var(--ice);align-items:center;gap:4px;font-size:10px;line-height:14px;display:inline-flex}.compact-arrival strong{font-weight:700}.compact-status{color:var(--muted);font-size:9px;line-height:14px}.empty-state{border:1px dashed var(--line);text-align:center;background:var(--soft);border-radius:16px;flex-direction:column;justify-content:center;align-items:center;min-height:260px;padding:32px;display:flex}.empty-icon{background:var(--tint);width:54px;height:54px;color:var(--ice);border-radius:50%;place-items:center;display:grid}.empty-state h3{letter-spacing:-.3px;margin:20px 0 0;font-size:17px;font-weight:600}.empty-state p{color:var(--muted);max-width:250px;margin:10px 0;font-size:11px;line-height:1.7}.rest-note{color:var(--muted);margin-top:10px;font-size:9px}.planner .primary-small{background:var(--selected);color:#fff;border:0;border-radius:8px;margin-top:14px;padding:11px 16px;font-size:10px}.cancelled-list{color:var(--muted);border-top:1px solid var(--line);margin-top:20px;padding:16px 0;font-size:11px}.cancelled-list summary{cursor:pointer}.cancelled-list p{font-size:10px}.planner .planner-footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;gap:14px;margin-top:35px;padding:18px 0;font-size:10px;display:flex}.sync-info{align-items:center;gap:9px;display:flex}.sync-dot{border-radius:50%;flex-shrink:0;width:12px;height:12px}.sync-dot.fresh{background:#2f9d63}.sync-dot.aging{background:#d3a11f}.sync-dot.stale{background:#c84657}html[data-theme=dark] .sync-dot.fresh{background:#55d68a}html[data-theme=dark] .sync-dot.aging{background:#ffd166}html[data-theme=dark] .sync-dot.stale{background:#ff6575}.sync-info small{color:var(--muted);margin-top:4px;font-size:8px;display:block}.footer-controls{align-items:center;gap:10px;display:flex}.theme-control{align-items:center;gap:8px;font-size:10px;display:flex;position:relative}.theme-control>span{color:var(--muted)}.theme-control select{-webkit-appearance:none;appearance:none;border:1px solid var(--line);background:var(--surface);min-height:44px;color:var(--ink);cursor:pointer;border-radius:8px;padding:0 25px 0 10px;font-size:11px}.theme-control>svg{pointer-events:none;position:absolute;right:8px}.planner .refresh-button{min-height:44px;color:var(--ice);background:0 0;border:0;align-items:center;gap:7px;margin:0;padding:10px;font-size:10px;display:flex}.planner-bottom{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;padding-bottom:15px;font-size:8px;display:flex}.planner-bottom a{color:var(--muted);font-size:8px;text-decoration:none}.notice{color:var(--warning);background:var(--warning-bg);border:1px solid var(--line);border-radius:10px;align-items:center;gap:10px;margin-bottom:20px;padding:13px 16px;font-size:11px;line-height:1.5;display:flex}.notice svg{flex-shrink:0}.notice button{color:inherit;background:0 0;border:0;margin:0 0 0 auto;padding:8px;font-size:10px;text-decoration:underline}.notice.error{color:var(--error);background:var(--error-bg)}.date-skeleton{background:var(--soft);border-radius:9px;height:51px;margin:3px}.spin{animation:1.4s linear infinite planner-spin}@keyframes planner-spin{to{transform:rotate(360deg)}}@media (max-width:740px){.planner-shell{max-width:520px;padding:12px 16px 16px}.planner-top{border:0;width:72px;height:44px;padding:0}.brand-logo{width:64px;height:51px}.private-tag{display:none}.planner-intro{margin-top:-44px;margin-bottom:12px;padding:0}.planner-intro>div:first-child,.group-control>label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:0;padding:0;position:absolute;overflow:hidden}.group-control{width:100%;min-width:0;margin:0;padding-left:78px}.select-wrap{border-radius:9px;gap:7px;padding:0 10px}.select-wrap select{text-overflow:ellipsis;min-width:0;height:44px;min-height:44px;padding-right:16px;font-size:16px}.select-wrap>svg{width:16px;right:10px}.group-dot{width:6px;height:6px}.planner-columns{grid-template-columns:minmax(0,1fr);gap:20px}.calendar-panel{border-radius:14px;padding:16px 14px 0}.calendar-heading .overline{display:none}.calendar-heading h2{font-size:21px}.planner .today-button{min-height:36px;padding:7px 11px}.calendar-range{min-height:36px;margin:6px 0 2px}.weekday-row span{padding:8px 0;font-size:10px}.planner .date-button{gap:2px;min-height:44px;padding:4px 0}.calendar-days{gap:2px 0}.calendar-legend{gap:14px;margin-top:9px;padding:11px 0;font-size:8px}.calendar-legend>span{gap:5px}.period-summary{min-height:37px;margin:0 -14px;padding:10px 14px;font-size:9px}.day-heading{padding:0 1px 18px}.day-heading h2{font-size:26px}.day-heading h2>span{font-size:10px}.day-heading .overline{font-size:8px}.empty-state{min-height:235px}.planner .planner-footer{flex-wrap:wrap;gap:8px;margin-top:24px;padding:12px 0}.footer-controls{flex:1;justify-content:flex-end;gap:8px}.theme-control>span,.planner .refresh-button>span{display:none}.planner-bottom{font-size:7px}.planner-bottom a{font-size:8px}}@media (max-width:360px){.planner-shell{padding-left:12px;padding-right:12px}.calendar-panel{padding-left:10px;padding-right:10px}.period-summary{margin-left:-10px;margin-right:-10px;padding-left:10px;padding-right:10px}.calendar-legend{gap:10px}.planner .lesson-card{padding:11px 13px}.lesson-main{grid-template-columns:60px minmax(0,1fr);column-gap:11px}.lesson-card .lesson-info p{gap:6px;font-size:12px}.lesson-bottom{column-gap:9px}.theme-control select{max-width:112px}.footer-controls{gap:2px}}@media (prefers-reduced-motion:reduce){.spin{animation:none}}.planner-sr-title{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:0;padding:0;position:absolute;overflow:hidden}.planner-top{gap:24px;width:100%;min-height:65px;margin-bottom:20px}.toolbar-right{align-items:center;gap:24px;min-width:0;display:flex}.toolbar-right .group-control{width:280px;min-width:0}@media (max-width:740px){.planner-top{gap:14px;height:44px;min-height:44px;margin-bottom:12px;padding:0}.toolbar-right{flex:1;min-width:0;display:block}.toolbar-right .group-control{width:100%;margin:0;padding-left:0}.group-control>label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:0;padding:0;position:absolute;overflow:hidden}}.planner .group-select-trigger{border:1px solid var(--line);background:var(--surface);width:100%;min-width:0;min-height:48px;color:var(--ink);text-align:left;box-shadow:none;border-radius:11px;outline:none;align-items:center;gap:10px;margin:0;padding:0 14px;font-size:14px;font-weight:700;display:flex}.group-select-trigger>span[data-placeholder],.group-select-trigger>span:not(.group-dot):not(.group-select-arrow){text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.group-select-arrow{color:var(--muted);flex-shrink:0;align-items:center;margin-left:auto;display:flex}.planner .group-select-trigger:focus-visible{outline:2px solid var(--muted);outline-offset:3px}.planner .group-select-trigger[data-state=open]{border-color:var(--muted)}.group-select-menu{z-index:100;width:var(--radix-select-trigger-width);max-width:calc(100vw - 24px);max-height:var(--radix-select-content-available-height);background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:11px;outline:none;font-family:Manrope,Arial,sans-serif;overflow:hidden;box-shadow:0 12px 30px #00000030}.group-select-options{padding:6px}.group-select-option{cursor:pointer;-webkit-user-select:none;user-select:none;overflow-wrap:anywhere;border-radius:6px;outline:none;align-items:center;min-height:44px;padding:10px 32px 10px 14px;font-size:14px;line-height:1.4;display:flex;position:relative}.group-select-option[data-highlighted]{background:var(--soft);color:var(--ink)}.group-select-option[data-state=checked]{font-weight:700}.group-select-check{color:var(--ice);display:flex;position:absolute;right:10px}.group-select-scroll{background:var(--surface);min-height:28px;color:var(--muted);justify-content:center;align-items:center;display:flex}@media (max-width:740px){.planner .group-select-trigger{border-radius:9px;height:44px;min-height:44px;padding-left:14px;padding-right:12px;font-size:16px}.group-select-option{font-size:16px}}.planner .group-select-trigger[data-state=open]{outline:none}.calendar-range{margin-bottom:0}.planner .date-button.outside{color:var(--outside)}.planner{--confirmation:#805500;--warning-symbol:#ffd166;--warning-symbol-ink:#302300}html[data-theme=dark] .planner{--confirmation:#ffd166}.date-dots{gap:4px;min-height:8px}.event-dot,.pending-dot{width:8px;height:8px}.pending-dot{border:2px solid var(--dot);background:0 0}.calendar-legend .status-dot{--dot:var(--ink)}.date-button.selected .ice-dot{--dot:#b8d9ff}.date-button.selected .sala-dot{--dot:#ffb8c2}.date-button.selected .event-dot{background:var(--dot);box-shadow:none}.date-button.selected .pending-dot{border-color:var(--dot)}.calendar-legend{flex-wrap:wrap;gap:8px 14px;font-size:10px}.planner .lesson-card.is-unconfirmed{padding-right:75px}.lesson-warning{pointer-events:none;width:48px;height:48px;color:var(--warning-symbol-ink);position:absolute;top:calc(50% - 6px);right:15px;transform:translateY(-50%)}.lesson-warning svg{width:48px;height:48px;fill:var(--warning-symbol);stroke:var(--warning-symbol-ink);stroke-width:1.8px;display:block}.lesson-card .confirmation-status{color:var(--confirmation);font-size:14px;font-weight:650;line-height:21px}@media (max-width:360px){.planner .lesson-card.is-unconfirmed{padding-right:73px}.lesson-warning{right:13px}}.planner-account{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.planner-account strong,.planner-account a{font-size:9px}.planner-account button{min-height:0;color:var(--muted);background:0 0;border:0;padding:4px;font-size:9px;text-decoration:underline}
