/* V1.6 shared presentation */
#main{display:flow-root}#main>.card,#main>.home-block{margin-bottom:20px}.home-school-grid,.home-bottom-grid{gap:20px}.card{transition:border-color .18s,box-shadow .18s}.card:has(button:hover,a:hover){border-color:color-mix(in srgb,var(--brand,#4777ff) 40%,var(--border,#252b36))}button,a.button{transition:background .16s,border-color .16s,transform .12s}button:active:not(:disabled),a.button:active{transform:translateY(1px)}input:focus,textarea:focus,select:focus{outline:2px solid var(--brand,#557cff);outline-offset:2px;box-shadow:none}dialog::backdrop{background:radial-gradient(ellipse at 50% 20%,#15346c33,#0009 65%);backdrop-filter:blur(7px)}dialog{max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);overscroll-behavior:contain}dialog.managed-modal{padding:0;overflow:auto}dialog.managed-modal>.section-head{position:sticky;top:0;margin:0;padding:20px 24px;background:var(--surface,#0b0e14);z-index:3}dialog.managed-modal form{display:flex;flex-direction:column;min-height:0;margin:0}dialog.managed-modal .modal-form-head{padding:20px 24px;background:var(--surface,#0b0e14);margin:0;flex-shrink:0}.modal-form-body{overflow:auto;max-height:calc(100dvh - 205px);padding:8px 24px 20px;overscroll-behavior:contain;min-height:0}.modal-form-body>label{margin-bottom:16px}.modal-form-body textarea{min-height:90px;max-height:35dvh}.managed-modal .modal-form-actions{display:flex;justify-content:flex-end;gap:10px;flex-shrink:0;position:sticky;bottom:0;margin:0;padding:16px 24px;background:var(--surface,#0b0e14);border-top:1px solid var(--border,#252b36);z-index:3}.confirmation-dialog{max-width:440px;width:calc(100vw - 40px);padding:24px}.confirmation-dialog p{line-height:1.6}.confirmation-dialog .form-actions{margin-top:24px}.confirmation-dialog button{white-space:normal}.confirmation-dialog h2{font-size:20px}
.session-context{max-height:calc(100dvh - 24px);overflow:auto}.range-selected{background:color-mix(in srgb,var(--brand,#557cff) 22%,transparent)!important}.missed-session{border-style:dashed!important}.missed-label{color:#e7b669;font-size:10px}.personal-library-links{display:flex;gap:6px;margin:16px 20px}.personal-library-links button{padding:8px;font-size:12px}.weekly-notice{font-size:11px;max-width:140px;white-space:normal}.document-filters{display:flex;gap:12px;margin:20px 0}.document-filters input{flex:1;min-width:0}.document-grid,.reports-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px;margin:18px 0}.document-tile{display:flex;flex-direction:column;gap:12px;min-width:0}.document-tile strong{overflow-wrap:anywhere}.document-thumbnail{height:160px;background:var(--surface,#10151e);border-radius:12px;overflow:hidden;display:grid;place-items:center}.document-thumbnail img{width:100%;height:100%;object-fit:contain}.document-thumbnail iframe{width:100%;height:100%;border:0;pointer-events:none}.document-tile small{color:var(--muted,#9ba5b8)}.file-type{font-size:25px;letter-spacing:2px;color:var(--brand,#557cff)}.note-image img{display:block;max-width:100%;max-height:500px;object-fit:contain;border-radius:10px}.note-image figcaption{font-size:12px;color:var(--muted,#9ba5b8)}.note-image-add{font-size:12px;padding:5px 9px;cursor:pointer}
.report-tile{display:flex;flex-direction:column;gap:16px;text-align:left}.report-tile>strong{font-size:32px}.report-hero{display:flex;flex-direction:column;padding:28px 0;gap:8px}.report-hero>strong{font-size:48px;letter-spacing:-2px;color:var(--brand,#779bff)}.report-bar{display:grid;grid-template-columns:minmax(80px,1fr) 2fr auto;gap:12px;align-items:center;margin:12px 0}.report-bar meter{width:100%;height:14px;accent-color:var(--brand,#557cff)}.report-columns{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:24px}.report-columns p{font-size:13px;line-height:1.6}.report-columns small,.report-columns strong{display:block}#weekly-report-dialog{width:720px}.report-columns small{color:var(--muted,#9ba5b8)}
.timer-display{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:220px;min-height:220px;padding:25px;text-align:center}.timer-display .active-focus-clock{font-size:40px}.timer-progress{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);pointer-events:none}.timer-progress circle{fill:none;stroke:var(--brand,#557cff);stroke-width:1.8;stroke-dasharray:100;transition:stroke-dashoffset 1s linear}.break .timer-progress circle{stroke:#7ed1aa}.js-end-time{display:block;font-size:11px;color:var(--muted,#a0aec5);line-height:1.4}.timer-pill .js-end-time{font-size:9px;max-width:120px}.personal-subject .subject-monogram{color:var(--subject-color);background:color-mix(in srgb,var(--subject-color) 14%,transparent)}.personal-subject{border-top:2px solid var(--subject-color)}.subject-accent{border-left:2px solid var(--subject-color)!important}
/* Visual privacy only: account security continues to rely on authentication. */
.privacy #account-name,.privacy #account-avatar,.privacy #main h1,.privacy #main .task-name,.privacy #main .badge,.privacy #main .grade-row,.privacy #main .average-summary,.privacy #main .grade-chart,.privacy #main .grades-chart,.privacy #main .subject-summary,.privacy #main .home-school-grid,.privacy #main .notes-page,.privacy #main .document-grid,.privacy #main .reports-list,.privacy #main .week-day,.privacy #main .week-block strong,.privacy #main .week-block span,.privacy #main .report-columns,.privacy #main .history-row,.privacy #main .settings-extra,.privacy #main .subject-grid,.privacy #main .subject-content,.privacy #main .subject-library{filter:blur(9px);user-select:none;pointer-events:none}.privacy dialog:not(.confirmation-dialog)>:not(.section-head),.privacy #focus-widget strong{filter:blur(9px);pointer-events:none;user-select:none}.privacy .quick-search{visibility:hidden}.privacy #main .grade-stats,.privacy #main .grade-overview,.privacy #main .grades-grid,.privacy #main .grade-list{filter:blur(9px);pointer-events:none}
@media(max-width:700px){dialog{max-width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}.modal-form-body{padding:8px 16px 16px;max-height:calc(100dvh - 185px)}.managed-modal .modal-form-actions{padding:12px 16px}.managed-modal .modal-form-actions button{min-height:42px;flex:1}.managed-modal .form-grid{grid-template-columns:1fr}dialog.managed-modal>.section-head,dialog.managed-modal .modal-form-head{padding:16px}.header-tools{gap:6px}#privacy-toggle{font-size:10px;padding:8px}.weekly-notice{max-width:88px;font-size:9px;padding:6px}.document-filters{flex-wrap:wrap}.document-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.document-tile{padding:12px}.document-thumbnail{height:110px}.document-tile button{font-size:10px;padding:8px}.report-columns{grid-template-columns:1fr}.report-bar{grid-template-columns:1fr 1fr auto;font-size:11px}.active-focus-heading{flex-direction:column;align-items:center}.timer-display{width:190px;min-height:190px}.personal-library-links{display:none}.document-filters .select-trigger{max-width:100%}.report-hero>strong{font-size:38px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

dialog.managed-modal,dialog.confirmation-dialog{margin:auto;border-radius:22px;border-bottom:1px solid var(--line);width:min(620px,calc(100vw - 24px))}dialog.confirmation-dialog{width:min(440px,calc(100vw - 32px))}.privacy #main[data-private-all="true"]>:not(.page-heading),.privacy #main .day small,.privacy #main .plan-slot .slot-open,.privacy #main .active-focus-panel h2,.privacy #main .subtask-list{filter:blur(10px);pointer-events:none;user-select:none}#privacy-toggle{width:38px;height:38px;padding:8px;display:grid;place-items:center}#privacy-toggle svg{width:20px;height:20px}.loading-skeleton{display:grid;gap:12px;margin:18px 0}.loading-skeleton span{height:65px;border-radius:14px;background:linear-gradient(110deg,var(--surface) 20%,var(--surface-raised) 50%,var(--surface) 80%);background-size:200% 100%;animation:skeleton-pulse 1.8s ease infinite}@keyframes skeleton-pulse{50%{background-position:100% 0}}

.today-session{display:flex;gap:18px;width:100%;padding:16px 0;text-align:left;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0}.today-session time{min-width:46px;color:var(--brand)}.today-session small{display:block;margin-top:6px;color:var(--muted)}.today-session.done{opacity:.6}.privacy .today-session span{filter:blur(9px)}#grade-hover{position:fixed;z-index:90;max-width:280px;padding:10px 14px;background:var(--surface);border:1px solid var(--line);border-radius:10px;font-size:12px;box-shadow:0 8px 30px #0004;pointer-events:none}.privacy #grade-hover{display:none}

input:focus-visible,textarea:focus-visible,.select-trigger:focus-visible{outline:2px solid var(--brand);outline-offset:0;border-color:transparent;box-shadow:none}.modal-form-body .form-grid{margin-bottom:18px}

.document-filters>.select-trigger{flex:0 0 260px;width:260px}.document-filters>input{flex:1 1 240px;width:auto}.privacy #main .week-block{pointer-events:none}@media(max-width:700px){.document-filters>.select-trigger{flex:1 1 100%;width:100%}.document-filters>input{flex:1 1 100%;width:100%}}

.timer-progress .timer-track,.break .timer-progress .timer-track{stroke:var(--line);stroke-width:1.5;stroke-dashoffset:0}.timer-display .active-focus-clock{margin:0}@media(max-width:700px){.timer-display{width:170px;min-height:170px}.timer-display .active-focus-clock{font-size:35px}}

dialog.managed-modal,dialog.confirmation-dialog,dialog.note-editor{max-height:calc(var(--dialog-viewport,100dvh) - 24px)}.modal-form-body{max-height:calc(var(--dialog-viewport,100dvh) - 205px)}dialog.note-editor{margin:auto;width:min(1040px,calc(100vw - 24px));height:auto;border:1px solid var(--line);border-radius:22px}.note-editor #note-editor-form{max-height:calc(var(--dialog-viewport,100dvh) - 24px);height:auto;min-height:0;overflow:hidden}.note-editor-body{overflow:auto;min-height:0;max-height:calc(var(--dialog-viewport,100dvh) - 175px)}.note-editor .note-editor-top,.note-editor .note-editor-footer{flex-shrink:0}.note-format-bar{flex-wrap:wrap}.note-format-bar>div{flex-wrap:wrap}.keyboard-open dialog[open]{position:fixed;top:calc(var(--visual-top) + 12px);bottom:auto;margin:0 auto}@media(max-width:700px){.modal-form-body{max-height:calc(var(--dialog-viewport,100dvh) - 185px)}.note-editor .note-editor-footer{display:flex;flex-wrap:wrap}.note-editor .note-editor-footer>div:last-child{width:100%;justify-content:space-between}}
