@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700&family=Fraunces:opsz,wght@9..144,500;9..144,600&display=swap');

:root{
  --page:#f5f5f0;
  --page-alt:#edece6;
  --ink:#141715;
  --muted:#6d716d;
  --line:rgba(20,23,21,.13);
  --card:#ffffff;
  --soft:#f2f3ee;
  --hero:#14242b;
  --hero-soft:#1b3037;
  --hero-text:#f8f7f1;
  --accent:#b8ee70;
  --accent-ink:#1f3423;
  --blue:#5f75f4;
  --purple:#a98cf7;
  --peach:#ffad82;
  --yellow:#f8d75b;
  --shadow:0 18px 50px rgba(22,28,25,.10);
  --radius:22px;
  --radius-sm:14px;
  --nav:#14242b;
  --bg:var(--page);
}

[data-theme=dark]{
  --page:#101311;
  --page-alt:#161a17;
  --ink:#f5f6f0;
  --muted:#a2a8a2;
  --line:rgba(245,246,240,.13);
  --card:#1b211e;
  --soft:#222a25;
  --hero:#071419;
  --hero-soft:#0d2128;
  --hero-text:#f8f7f1;
  --accent:#b8ee70;
  --accent-ink:#1d3222;
  --shadow:0 22px 54px rgba(0,0,0,.28);
  --nav:#0d1a17;
  --bg:var(--page);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{min-width:320px;margin:0;background:var(--page);color:var(--ink);font-family:"DM Sans",Arial,sans-serif;font-size:14px;transition:background .2s ease,color .2s ease}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
button,a{color:inherit}
a{text-decoration:none}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[contenteditable=true]:focus-visible{outline:3px solid rgba(184,238,112,.48);outline-offset:2px}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}

/* Shared application frame */
.app-shell{display:flex;min-height:100vh;background:var(--page)}
.sidebar{position:fixed;z-index:5;display:flex;flex-direction:column;width:230px;height:100vh;padding:28px 15px 18px;background:var(--nav);color:#f8f7f1}
.app-brand,.brand{display:inline-flex;align-items:center;gap:9px;color:inherit;font-size:19px;font-weight:700;letter-spacing:-.6px;text-decoration:none}
.app-brand>span,.brand-mark,.mobile-brand span{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:var(--accent);color:#112016;font-family:Georgia,serif;font-size:20px;font-style:italic;font-weight:700;line-height:1;padding-bottom:3px}
.app-brand{margin:0 10px 45px}
.app-brand strong{font-size:19px;font-weight:700}
.sidebar nav{display:grid;gap:5px}
.nav-link{display:flex;align-items:center;gap:11px;width:100%;min-height:43px;padding:0 11px;border:0;border-radius:11px;background:transparent;color:#aab9b2;text-align:left;font-size:13px;font-weight:500;transition:background .18s,color .18s}
.nav-link i{display:grid;place-items:center;width:18px;color:#91a49a;font-size:16px;font-style:normal}
.nav-link:hover{background:rgba(255,255,255,.08);color:#fff}
.nav-link.active{background:#314d42;color:#fff;font-weight:600}
.nav-link.active i{color:var(--accent)}
.nav-link.locked{position:relative;opacity:.54}.nav-link.locked::after{margin-left:auto;color:#91a49a;content:"LOCKED";font:600 8px "DM Mono",monospace;letter-spacing:.45px}.nav-link.locked:hover{background:rgba(255,255,255,.045);color:#aab9b2}
.local-status{margin-top:auto;padding:17px 10px 2px;border-top:1px solid rgba(255,255,255,.12);color:#a9b7b1;font-size:10px;line-height:1.65}
.local-status b{display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:var(--accent)}
.local-status a{display:block;margin-top:7px;color:#e0e9e3;font-size:10px}
.main-column{width:calc(100% - 230px);margin-left:230px}
.app-header,.view{width:min(1230px,100%);margin-inline:auto;padding-inline:48px}
.app-header{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:112px;padding-top:28px;padding-bottom:24px}
.app-header>div:first-child>p:not(.mobile-brand),.section-head>div>p,.overview-heading p,.panel-top p{margin:0 0 8px;color:var(--muted);font:500 10px "DM Mono",monospace;letter-spacing:1.1px}
.app-header h1{margin:0;font-size:30px;letter-spacing:-1.25px}
.mobile-brand{display:none}
.header-actions{display:flex;align-items:center;gap:9px}
.header-actions button{height:40px;border:1px solid var(--line);background:var(--card);color:var(--ink)}
#themeButton{display:inline-flex;align-items:center;gap:7px;padding:0 13px;border-radius:12px;font-size:12px;font-weight:600}
.avatar{width:40px;border-radius:50%;background:#f1c59c!important;color:#263b31!important;font-size:10px;font-weight:700}
.view{display:none;padding-bottom:64px}
.view.active{display:block}

/* Shared controls and surfaces */
.panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow)}
.padded{padding:25px}
.panel-top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.panel-top p{margin-bottom:7px}
.panel-top h3{margin:0;font-size:21px;letter-spacing:-.65px}
.primary,.secondary,.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 16px;border:1px solid transparent;border-radius:12px;font-size:12px;font-weight:700;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
.primary,.primary-button{background:var(--accent);color:var(--accent-ink)}
.primary:hover,.primary-button:hover{transform:translateY(-2px);box-shadow:0 10px 18px rgba(42,79,40,.17)}
.secondary,.ghost-button{border-color:var(--line);background:var(--soft);color:var(--ink)}
.secondary:hover,.ghost-button:hover{background:var(--page-alt)}
.quiet-action{padding:6px 0;border:0;background:transparent;color:var(--muted);font-size:11px;font-weight:700}
.quiet-action:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.icon-button{display:grid;place-items:center;width:32px;height:32px;padding:0;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--muted);font-size:17px;line-height:1}
.icon-button:hover{border-color:var(--line);background:var(--soft);color:var(--ink)}
.inline-form input,.inline-form select,.event-form input,.event-form select,.task-form input,.task-form select,.select-label select{width:100%;height:42px;padding:0 12px;border:1px solid var(--line);border-radius:11px;outline:0;background:var(--soft);color:var(--ink);font-size:12px}
.inline-form input:focus,.inline-form select:focus,.event-form input:focus,.event-form select:focus,.task-form input:focus,.task-form select:focus,.select-label select:focus{border-color:#98ce69;box-shadow:0 0 0 3px rgba(184,238,112,.18)}
.empty-copy,.task-empty,.week-empty{margin:16px 0;color:var(--muted);font-size:12px;line-height:1.55}

/* Overview */
.overview-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:8px 0 24px}
.overview-heading h2{margin:0;color:var(--ink);font-size:42px;line-height:.98;letter-spacing:-2px}
.overview-heading h2 em,.section-head h2 em{font-family:Fraunces,Georgia,serif;font-weight:500}
.overview-heading>div>span{display:block;max-width:430px;margin-top:14px;color:var(--muted);font-size:14px;line-height:1.55}
.today-schedule{max-width:620px;margin-bottom:18px;padding:25px}
.today-schedule-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.today-schedule-top p{margin:0 0 22px;color:var(--muted);font-size:13px}
.today-schedule-top h3{margin:0;font-size:23px;letter-spacing:-.7px}
.schedule-actions{display:flex;align-items:center;gap:8px}
.schedule-day-nav{display:flex;gap:5px}
.schedule-day-nav .icon-button{border-color:var(--line);background:var(--soft)}
.schedule-expand{padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:var(--soft);color:var(--ink);white-space:nowrap}
.today-class-list{display:grid;gap:9px;margin-top:22px}
.today-class{display:grid;grid-template-columns:76px 1fr 36px;align-items:center;gap:13px;min-height:64px;padding:12px 14px;border-radius:12px}
.today-class time{font:500 13px "DM Mono",monospace;letter-spacing:-.4px}
.today-class strong{font-size:14px}
.class-monogram{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;color:#fff;font-size:14px;font-weight:700}
.today-class.lilac,.class-chip.lilac{background:#eee8ff;color:#3d315e}.today-class.lilac .class-monogram{background:#9275ea}
.today-class.sky,.class-chip.sky{background:#e1f0ff;color:#285d87}.today-class.sky .class-monogram{background:#5c9fe8}
.today-class.apricot,.class-chip.apricot{background:#feeee1;color:#85502e}.today-class.apricot .class-monogram{background:#e88e4f}
.today-empty{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:72px;padding:15px;border:1px dashed var(--line);border-radius:12px;background:var(--soft)}
.today-empty p{margin:0;color:var(--muted);font-size:12px}
.schedule-week{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-top:18px}
.schedule-week .week-day{min-height:106px;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--soft);color:var(--ink);font:inherit;text-align:left}
.schedule-week .week-day:hover{border-color:#9fc977}.schedule-week .week-day.selected{outline:2px solid var(--accent);outline-offset:-2px;background:var(--card)}
.schedule-week .week-day>strong{display:block;margin-bottom:9px;color:var(--muted);font:500 9px "DM Mono",monospace;letter-spacing:.6px}
.schedule-week .class-chip{display:block;width:100%;margin-top:5px;padding:6px;border:0;border-radius:7px;font-size:9px;line-height:1.3}.schedule-week .class-chip time{display:block;margin-bottom:2px;font:500 8px "DM Mono",monospace}
.task-form{display:grid;grid-template-columns:1.45fr 1fr .9fr auto;align-items:end;gap:10px;margin:0 0 18px;padding:18px}
.task-form label,.inline-form label,.event-form label,.select-label{display:block;color:var(--muted);font:500 10px "DM Mono",monospace;letter-spacing:.7px;text-transform:uppercase}
.task-form input,.task-form select{margin-top:7px}.task-form .primary{height:42px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:18px}
.stats article{min-height:150px;padding:18px;border:1px solid var(--line);border-radius:18px;background:var(--card);box-shadow:var(--shadow)}
.stats i{display:grid;place-items:center;width:34px;height:34px;margin-bottom:18px;border-radius:11px;font-size:16px;font-style:normal}.violet{background:#e9ddff;color:#7058c4}.blue{background:#d7efff;color:#4789c4}.yellow{background:#fff0bd;color:#af7b18}.peach{background:#ffdfc8;color:#b86638}
.stats span,.stats small{display:block;color:var(--muted);font-size:10px}.stats strong{display:block;margin:6px 0 2px;font-size:29px;letter-spacing:-1.3px}
.task-manager{margin-top:18px;padding:25px}.task-manager-top{align-items:center}.task-manager-actions{display:flex;align-items:center;gap:9px}.task-manager .task-form{margin:18px 0 0;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--soft)}.task-manager .task-form+.kanban{margin-top:16px}.task-progress{padding:6px 9px;border-radius:9px;background:#e6f4d8;color:#4d7e3d;font-size:10px;font-weight:700}
.kanban{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:21px}.kanban>article{min-height:290px;padding:12px;border:1px solid var(--line);border-radius:15px;background:var(--soft)}
.kanban header{display:flex;align-items:center;justify-content:space-between;padding:2px 4px 12px}.kanban header span{font-size:12px;font-weight:700}.kanban header b{display:grid;place-items:center;min-width:24px;height:22px;padding:0 7px;border-radius:11px;background:var(--card);color:var(--muted);font-size:10px}
.task-stack{display:grid;gap:9px}.task-card{padding:13px;border:1px solid var(--line);border-radius:12px;background:var(--card);box-shadow:0 6px 13px rgba(30,39,32,.05)}
.task-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--muted);font-size:9px}.task-card h4{margin:17px 0 6px;font-size:13px;line-height:1.35}.task-card p{margin:0;color:var(--muted);font-size:10px}.task-status{padding:4px 6px;border-radius:6px;background:#e9ddff;color:#6d57c6;font-size:9px;font-weight:700}.task-status.doing{background:#ffe4d0;color:#b56a3b}.task-status.done{background:#dff2d3;color:#4d7e3d}.task-remove{width:23px;height:23px;padding:0;border:0;border-radius:7px;background:transparent;color:var(--muted);font-size:16px}.task-remove:hover{background:#fee2df;color:#ba5048}.task-move{width:100%;margin-top:13px;padding:9px 0 0;border:0;border-top:1px solid var(--line);background:transparent;color:var(--muted);font-size:10px;font-weight:700;text-align:left}.task-move:hover{color:var(--ink)}.new-task-link{width:100%;margin-top:9px;padding:9px;border:1px dashed #aeb9af;border-radius:9px;background:transparent;color:var(--muted);font-size:10px;font-weight:700}.new-task-link:hover{border-color:#85b468;color:var(--ink)}

/* Calculator */
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:8px 0 24px}.section-head h2{margin:0;font-size:34px;letter-spacing:-1.4px}.segmented{display:flex;padding:4px;border:1px solid var(--line);border-radius:13px;background:var(--card)}.segmented button{height:34px;padding:0 13px;border:0;border-radius:9px;background:transparent;color:var(--muted);font-size:11px;font-weight:700}.segmented button.active{background:var(--page-alt);color:var(--ink)}
.calculator-layout{display:grid;grid-template-columns:1.22fr .52fr;gap:16px}.calculator-card{padding:25px;border:1px solid rgba(255,255,255,.12);border-radius:24px;background:#101a19;color:#f4f6f2;box-shadow:0 25px 52px rgba(12,23,19,.22)}.display{display:flex;min-height:153px;flex-direction:column;justify-content:flex-end;padding:0 6px 18px;border-bottom:1px solid rgba(255,255,255,.15)}.display label{margin-bottom:auto;color:#a7b4ac;font:500 10px "DM Mono",monospace;letter-spacing:1px}.display input{width:100%;margin:10px 0 15px;padding:0;border:0;outline:0;background:transparent;color:#d2dcd6;font:400 16px "DM Mono",monospace;text-align:right}.display input::placeholder{color:#718078}.display>div{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.display small{color:#a3b1a9;font-size:10px}.display strong{max-width:76%;overflow:hidden;color:#fbfcf8;font-size:40px;font-weight:500;letter-spacing:-1.8px;line-height:1;text-overflow:ellipsis;white-space:nowrap}.calc-tools{display:flex;align-items:center;gap:10px;min-height:48px;color:#9ead9f;font-size:10px}.calc-tools button{padding:6px 8px;border:1px solid rgba(184,238,112,.35);border-radius:7px;background:#22332b;color:#c9f08b;font:500 10px "DM Mono",monospace}.science-keys{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;padding-bottom:7px}.science-keys.hidden{display:none}.science-keys button{min-height:34px;border:0;border-radius:8px;background:#21302a;color:#d3ded5;font-size:12px}.keypad{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.keypad button{min-height:48px;border:0;border-radius:9px;background:#26322d;color:#f4f6f2;font-size:17px}.keypad button:hover,.science-keys button:hover{filter:brightness(1.15)}.keypad .soft{background:#1d2824;color:#d4ded7}.keypad .operator{background:#39483f}.keypad .equals{grid-column:span 5;background:var(--accent);color:#183523;font-size:19px}.history{display:flex;min-height:552px;flex-direction:column;padding:25px}.history #historyList{display:grid;gap:4px;margin-top:17px}.history-item{display:block;width:100%;padding:12px 8px;border:0;border-radius:10px;background:transparent;color:var(--ink);text-align:right}.history-item:hover{background:var(--soft)}.history-item small,.history-item strong{display:block}.history-item small{overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.history-item strong{margin-top:5px;font-size:18px;font-weight:500}.history>small{margin-top:auto;padding-top:16px;border-top:1px solid var(--line);color:var(--muted);font-size:10px;line-height:1.45}

/* Study space */
.two-column{display:grid;grid-template-columns:1.08fr .92fr;gap:16px}.study-columns>.panel{min-height:360px}.subjects{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:20px 0}.subject-row{position:relative;display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:9px;min-height:92px;padding:13px;border:1px solid var(--line);border-radius:14px;background:var(--soft);color:var(--ink);text-align:left}.subject-row:hover{border-color:#91bd71;background:var(--card)}.subject-row.selected{outline:2px solid var(--accent);outline-offset:-2px;background:var(--card)}.subject-dot{width:11px;height:11px;border-radius:50%;background:var(--purple);box-shadow:0 0 0 5px #eee8ff}.subject-row:nth-child(3n+2) .subject-dot{background:var(--blue);box-shadow:0 0 0 5px #e1f0ff}.subject-row:nth-child(3n+3) .subject-dot{background:var(--peach);box-shadow:0 0 0 5px #feeee1}.subject-row b,.subject-row small{display:block}.subject-row b{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.subject-row small{margin-top:4px;color:var(--muted);font-size:10px}.subject-arrow{color:var(--muted);font-size:17px}.inline-form{padding-top:18px;border-top:1px solid var(--line)}.inline-form>label{margin-bottom:8px}.inline-form>div{display:flex;gap:8px}.inline-form .primary{min-width:64px}.files-panel{display:flex;flex-direction:column}.file-item{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:10px;margin-top:9px;padding:11px;border:1px solid var(--line);border-radius:12px;background:var(--soft)}.file-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#e9ddff;color:#7058c4;font:500 9px "DM Mono",monospace}.file-item b,.file-item small{display:block}.file-item b{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.file-item small{margin-top:3px;color:var(--muted);font-size:9px}.upload{display:flex;min-height:120px;flex-direction:column;align-items:center;justify-content:center;margin-top:auto;border:1px dashed #aeb9af;border-radius:14px;background:var(--soft);color:var(--muted);text-align:center}.upload i{font-size:21px;font-style:normal}.upload strong{margin-top:4px;color:var(--ink);font-size:11px}.upload small{margin-top:4px;font-size:9px}.upload:hover{border-color:#8eb875;background:var(--card)}.upload.disabled{opacity:.4;pointer-events:none}.schedule{margin-top:16px}.event-form{display:grid;grid-template-columns:1.2fr .8fr .8fr auto;align-items:end;gap:10px;margin-top:20px}.event-form label{margin:0}.event-form label>*{display:block;margin-top:7px}.event-form .primary{height:42px}.event-list{display:grid;gap:2px;margin-top:18px}.schedule-row{display:grid;grid-template-columns:78px 9px 1fr auto;align-items:center;gap:10px;min-height:55px;padding:0 4px;border-bottom:1px solid var(--line)}.schedule-row:last-child{border-bottom:0}.event-time{font:500 11px "DM Mono",monospace}.event-dot{width:8px;height:8px;border-radius:50%;background:var(--purple)}.event-dot.blue-dot{background:var(--blue)}.event-dot.peach-dot{background:var(--peach)}.schedule-row b,.schedule-row small{display:block}.schedule-row b{font-size:12px}.schedule-row small{margin-top:3px;color:var(--muted);font-size:10px}

/* Notes library */
.empty-workspace{display:grid;place-items:center;min-height:390px;padding:28px;border:1px dashed var(--line);border-radius:22px;background:var(--card);text-align:center}.empty-workspace i{display:grid;place-items:center;width:54px;height:54px;border-radius:16px;background:#e9ddff;color:#735ec8;font-size:25px;font-style:normal}.empty-workspace h3{margin:16px 0 6px;font-size:20px}.empty-workspace p{max-width:290px;margin:0 0 20px;color:var(--muted);font-size:13px;line-height:1.55}.notes-library-layout{display:grid;gap:16px}.notes-library{padding:25px}.notes-section-top,.notes-collection-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.notes-section-top p,.notes-collection-top p{margin:0 0 7px;color:var(--muted);font:500 10px "DM Mono",monospace;letter-spacing:1px}.notes-section-top h3,.notes-collection-top h3{margin:0;font-size:21px;letter-spacing:-.65px}.notes-filter{display:flex;gap:3px;padding:4px;border:1px solid var(--line);border-radius:12px;background:var(--soft)}.notes-filter button{height:31px;padding:0 10px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:10px;font-weight:700}.notes-filter button.active{background:var(--card);color:var(--ink);box-shadow:0 3px 8px rgba(20,28,22,.08)}.folder-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-top:18px}.folder-card{display:flex;min-height:136px;flex-direction:column;align-items:stretch;padding:15px;border:1px solid transparent;border-radius:16px;color:#302a37;text-align:left;transition:transform .16s ease,box-shadow .16s ease}.folder-card:hover{transform:translateY(-3px);box-shadow:0 13px 21px rgba(26,32,28,.12)}.folder-card.selected{outline:2px solid var(--accent);outline-offset:2px}.folder-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:auto}.folder-card-top small{font:500 9px "DM Mono",monospace;opacity:.63}.folder-card-top b{font-size:18px;line-height:1}.folder-card strong{display:block;overflow:hidden;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.folder-card>span:last-child{margin-top:4px;font-size:10px;opacity:.68}.note-colour-0{background:#dbeeff}.note-colour-1{background:#ffd9d6}.note-colour-2{background:#fff7bf}.note-colour-3{background:#e7deff}.notes-collection-top{align-items:flex-end;margin-top:30px;padding-top:23px;border-top:1px solid var(--line)}.notes-collection-top h3 span{margin-left:5px;color:var(--muted);font-size:12px;font-weight:500}.note-count{padding:6px 9px;border-radius:9px;background:var(--soft);color:var(--muted);font:500 10px "DM Mono",monospace}.note-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-top:18px}.note-card{display:flex;min-height:230px;flex-direction:column;padding:15px;border:1px solid transparent;border-radius:16px;color:#2b2b31;text-decoration:none;transition:transform .16s ease,box-shadow .16s ease}.note-card:hover{transform:translateY(-3px);box-shadow:0 14px 22px rgba(25,30,27,.14)}.note-card-top{display:flex;align-items:center;justify-content:space-between}.note-card-top small{font:500 9px "DM Mono",monospace;letter-spacing:.5px;opacity:.62}.note-card-top b{padding:4px 6px;border-radius:6px;background:rgba(255,255,255,.47);font-size:9px}.note-card h4{margin:17px 0 10px;font-size:15px;line-height:1.25;letter-spacing:-.25px}.note-card p{display:-webkit-box;overflow:hidden;margin:0;color:inherit;font-size:11px;line-height:1.55;opacity:.76;-webkit-box-orient:vertical;-webkit-line-clamp:4}.note-card-date{display:block;margin-top:auto;padding-top:13px;font:500 9px "DM Mono",monospace;opacity:.65}.note-yellow{background:#f4eb75}.note-peach{background:#efaaa9}.note-sky{background:#82bfdf}.note-lilac{background:#cbbcf0}.note-create-card{display:flex;min-height:230px;flex-direction:column;align-items:center;justify-content:center;padding:15px;border:1px dashed #aeb9af;border-radius:16px;background:var(--soft);color:var(--muted);text-decoration:none}.note-create-card:hover{border-color:#86b76b;background:var(--card);color:var(--ink)}.note-create-card>span{display:grid;place-items:center;width:35px;height:35px;margin-bottom:9px;border-radius:11px;background:var(--card);color:var(--ink);font-size:22px}.note-create-card strong{font-size:12px}.note-create-card small{margin-top:4px;font-size:10px}.notes-sketch{min-height:430px}.notes-sketch .sketch-wrap{min-height:300px}.sketch-note{display:flex;flex-direction:column}.sketch-note .panel-top>div:last-child{display:flex;gap:8px}.sketch-note input[type=color]{width:29px;height:29px;padding:0;border:0;border-radius:50%;overflow:hidden;background:transparent}.sketch-wrap{position:relative;flex:1;min-height:280px;overflow:hidden;margin:20px 0 14px;border:1px solid var(--line);border-radius:14px;background-color:var(--soft);background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:26px 26px}.sketch-wrap canvas{display:block;width:100%;height:100%;touch-action:none}

/* Nested notes navigation */
.notes-section-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px}.folder-nav{display:flex;align-items:center;gap:3px;padding:3px;border:1px solid var(--line);border-radius:12px;background:var(--soft)}.folder-nav .icon-button{width:29px;height:29px;border-radius:8px;font-size:16px}.folder-nav .icon-button:disabled{cursor:not-allowed;opacity:.38}.folder-position{min-width:39px;color:var(--muted);font:500 9px "DM Mono",monospace;text-align:center;white-space:nowrap}.folder-path-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px;padding:11px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.folder-breadcrumb{display:flex;align-items:center;gap:6px;min-width:0;overflow:auto;color:var(--muted);white-space:nowrap}.folder-breadcrumb>span{color:var(--muted);font:500 11px "DM Mono",monospace}.folder-crumb{max-width:180px;overflow:hidden;padding:3px 0;border:0;background:transparent;color:var(--muted);font:600 11px "DM Sans",Arial,sans-serif;text-overflow:ellipsis;white-space:nowrap}.folder-crumb:hover,.folder-crumb.current{color:var(--ink)}.folder-crumb.current{font-weight:750}.folder-toolbar-actions{display:flex;align-items:center;flex:0 0 auto;gap:11px}.compact-action{min-height:32px;padding:0 11px;border-radius:9px;font-size:10px}.subfolder-form{display:grid;grid-template-columns:auto minmax(150px,1fr) auto auto;align-items:center;gap:8px;margin-top:13px;padding:10px 11px;border:1px solid var(--line);border-radius:13px;background:var(--soft)}.subfolder-form label{color:var(--muted);font:500 9px "DM Mono",monospace;letter-spacing:.65px;text-transform:uppercase}.subfolder-form input{height:34px;min-width:0;padding:0 10px;border:1px solid var(--line);border-radius:8px;outline:0;background:var(--card);color:var(--ink);font:600 11px "DM Sans",Arial,sans-serif}.subfolder-form input:focus{border-color:#9fca79;box-shadow:0 0 0 3px rgba(184,239,96,.18)}.subfolder-form .primary{min-height:34px;padding:0 11px;border-radius:8px;font-size:10px}.note-subfolder-card{display:flex;min-height:162px;flex-direction:column;padding:15px;border:1px solid transparent;border-radius:16px;color:#2b2b31;text-align:left;transition:transform .16s ease,box-shadow .16s ease}.note-subfolder-card:hover{transform:translateY(-3px);box-shadow:0 14px 22px rgba(25,30,27,.14)}.note-subfolder-card h4{margin:17px 0 10px;font-size:15px;line-height:1.25;letter-spacing:-.25px}.note-subfolder-card p{margin:0;color:inherit;font-size:11px;line-height:1.55;opacity:.76}.note-subfolder-card .note-card-date{margin-top:auto}.note-subfolder-card .note-card-top b{font-size:14px}.note-subfolder-card .note-card-top small{letter-spacing:.8px}[data-theme=dark] .note-subfolder-card{color:#f3f5ee}

/* Full-screen graph lab */
#graphs.view{width:100%;max-width:none;padding:0}.graph-screen{width:100%;min-height:calc(100dvh - 112px)}.graph-stage{position:relative;min-height:calc(100dvh - 112px);overflow:hidden;background:#091310}.graph-stage canvas{position:absolute;inset:0;display:block;width:100%;height:100%;touch-action:none;cursor:grab}.graph-stage canvas:active{cursor:grabbing}.graph-corner-controls{position:absolute;top:22px;right:24px;z-index:1;width:min(308px,calc(100% - 48px));padding:15px;border:1px solid rgba(211,238,219,.16);border-radius:16px;background:rgba(15,28,22,.92);box-shadow:0 20px 42px rgba(0,0,0,.28);backdrop-filter:blur(16px);color:#eef6f0}.graph-control-top{display:flex;align-items:center;gap:7px;min-height:17px}.graph-control-top p{margin:0;color:#a7b7ac;font:500 10px "DM Mono",monospace;letter-spacing:1px}.graph-live-dot{width:7px;height:7px;border-radius:50%;background:#8ee168;box-shadow:0 0 0 4px rgba(142,225,104,.12)}#graphStatus{margin-left:auto;color:#f3a398;font-size:10px}.graph-corner-controls>label{display:grid;grid-template-columns:31px 1fr;align-items:center;gap:7px;margin-top:12px;color:#b7c8bb;font:500 11px "DM Mono",monospace}.graph-corner-controls input,.graph-corner-controls select{width:100%;height:40px;border:1px solid rgba(218,238,224,.17);border-radius:10px;outline:0;background:rgba(255,255,255,.07);color:#f4faf5;font:500 12px "DM Mono",monospace}.graph-corner-controls input{padding:0 10px}.graph-corner-controls select{padding:0 8px}.graph-corner-controls input:focus,.graph-corner-controls select:focus{border-color:#a3ea7b;box-shadow:0 0 0 3px rgba(163,234,123,.13)}.graph-zoom-controls{display:grid;grid-template-columns:42px 1fr 42px;gap:6px;margin-top:11px}.graph-zoom-controls button{height:34px;border:1px solid rgba(218,238,224,.16);border-radius:9px;background:rgba(255,255,255,.08);color:#f4faf5;font:700 13px "DM Sans",Arial,sans-serif}.graph-zoom-controls button:hover{background:rgba(184,238,112,.18);border-color:rgba(184,238,112,.45)}.graph-scale-label{margin:8px 0 0;color:#9eafa3;font:500 9px "DM Mono",monospace;text-align:center}.graph-save-panel{margin-top:13px;padding-top:11px;border-top:1px solid rgba(218,238,224,.13)}.graph-save-panel summary{color:#bdcbbf;font-size:10px;font-weight:700;cursor:pointer;list-style:none}.graph-save-panel summary::-webkit-details-marker{display:none}.graph-save-panel summary:after{float:right;content:'+';color:#8ee168;font-size:15px;line-height:9px}.graph-save-panel[open] summary:after{content:'−'}.graph-save-panel label{display:grid;grid-template-columns:50px 1fr;align-items:center;gap:7px;margin-top:10px;color:#aebfb2;font:500 9px "DM Mono",monospace;letter-spacing:.5px;text-transform:uppercase}.graph-save-panel .primary{width:100%;min-height:35px;margin-top:11px;background:var(--accent);color:var(--accent-ink)}.graph-readout{position:absolute;bottom:22px;left:24px;z-index:1;display:grid;gap:4px;padding:12px 14px;border:1px solid rgba(211,238,219,.13);border-radius:13px;background:rgba(11,23,17,.76);color:#f1f7f1;backdrop-filter:blur(8px)}.graph-readout strong{font:500 13px "DM Mono",monospace}.graph-readout span{color:#a7b7ac;font-size:10px}.saved-graphs{width:min(1230px,100%);min-height:auto;margin:24px auto 62px;padding:0 48px!important;border:0;background:transparent;box-shadow:none}.saved-graphs>.panel-top{padding:22px 24px 0;border:1px solid var(--line);border-bottom:0;border-radius:22px 22px 0 0;background:var(--card);box-shadow:var(--shadow)}.saved-graphs>div:last-child{display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:18px 24px 24px;border:1px solid var(--line);border-top:0;border-radius:0 0 22px 22px;background:var(--card);box-shadow:var(--shadow)}.graph-chip{display:grid;grid-template-columns:29px auto auto;align-items:center;gap:8px;min-width:182px;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--soft);color:var(--ink);text-align:left}.graph-chip:hover{border-color:#91bd71;background:var(--card)}.graph-chip i{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:#e9ddff;color:#725bc7;font-style:normal}.graph-chip strong,.graph-chip small{display:block}.graph-chip strong{max-width:105px;overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.graph-chip small{margin-top:3px;color:var(--muted);font:400 9px "DM Mono",monospace}.graph-chip b{color:var(--muted);font-size:15px}

/* File editor */
.file-page{min-height:100vh;background:var(--page)}.file-editor-shell{width:min(1180px,calc(100% - 48px));min-height:100vh;margin:auto;padding:23px 0 60px}.file-editor-topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:64px;padding-bottom:20px;border-bottom:1px solid var(--line)}.brand-link{color:var(--ink)}.file-editor-actions{display:flex;align-items:center;gap:8px}.muted-label{color:var(--muted);font:500 10px "DM Mono",monospace;letter-spacing:1px;text-transform:uppercase}.file-editor-actions .button{min-height:40px;padding:0 13px;border-radius:11px;font-size:11px}.primary-button{background:var(--accent);color:var(--accent-ink)}.ghost-button{border:1px solid var(--line);background:var(--card);color:var(--ink)}.file-page .icon-button{border:1px solid var(--line);background:var(--card)}.file-editor-workspace{max-width:920px;margin:42px auto 0;padding:12px 0 42px;border:0;border-radius:0;background:transparent;box-shadow:none}.editor-meta{display:flex;align-items:center;gap:10px;margin-bottom:19px;color:var(--muted);font-size:11px}.file-page .file-mark{width:36px;height:36px}.document-title-input,.document-body-input{width:100%;border:0;outline:0;background:transparent;color:var(--ink)}.document-title-input{margin-bottom:23px;font:600 42px/1.08 "DM Sans",Arial,sans-serif;letter-spacing:-1.8px}.document-title-input::placeholder,.document-body-input::placeholder{color:var(--muted)}.editor-toolbar{position:sticky;top:14px;z-index:2;display:flex;align-items:center;gap:3px;max-width:100%;margin:0 0 18px;padding:7px;border:1px solid var(--line);border-radius:14px;overflow-x:auto;background:var(--card);box-shadow:0 12px 26px rgba(18,29,22,.09)}.toolbar-select select{height:33px;min-width:88px;padding:0 27px 0 9px;border:0;border-radius:8px;outline:0;background:var(--soft);color:var(--ink);font:600 10px "DM Sans",Arial,sans-serif}.toolbar-colour{display:grid;place-items:center;width:33px;height:33px;border-radius:8px;background:var(--soft);cursor:pointer}.toolbar-colour input{width:18px;height:18px;padding:0;border:0;border-radius:50%;background:transparent;cursor:pointer}.toolbar-divider{width:1px;height:21px;margin:0 3px;background:var(--line);flex:0 0 auto}.toolbar-button{height:33px;padding:0 8px;border:0;border-radius:8px;background:transparent;color:var(--ink);font:600 10px "DM Sans",Arial,sans-serif;white-space:nowrap}.toolbar-button:hover,.toolbar-button[aria-pressed=true]{background:var(--soft);color:var(--ink)}.toolbar-lines{color:#607e52}.text-bold{font-size:16px;font-weight:800}.text-italic{font-size:16px;font-family:Georgia,serif;font-style:italic}.text-underline{text-decoration:underline;font-size:15px}.text-strike{text-decoration:line-through;font-size:15px}.toolbar-link{color:#5f75f4}.toolbar-undo,.toolbar-redo{color:var(--muted)}.link-popover{display:flex;align-items:flex-end;gap:8px;margin:-7px 0 18px;padding:12px;border:1px solid var(--line);border-radius:13px;background:var(--soft)}.link-popover label{display:block;color:var(--muted);font:500 10px "DM Mono",monospace;letter-spacing:.7px;text-transform:uppercase}.link-popover input{width:100%;height:36px;margin-top:6px;padding:0 9px;border:1px solid var(--line);border-radius:8px;outline:0;background:var(--card);color:var(--ink);font-size:12px}.link-popover .button{min-height:36px;white-space:nowrap}.document-body-input{min-height:58vh;resize:none;font:400 16px/1.78 "DM Sans",Arial,sans-serif}.rich-document{margin-top:0;padding:26px 30px 52px;border-radius:20px;background:var(--card);box-shadow:0 18px 40px rgba(18,29,22,.08);white-space:pre-wrap}.rich-document.with-text-lines{padding-left:76px;background-image:linear-gradient(90deg,transparent 0 51px,rgba(137,181,101,.34) 51px 52px,transparent 52px),repeating-linear-gradient(180deg,transparent 0 27px,rgba(126,147,133,.18) 27px 28px,transparent 28px 28.5px);background-size:100% 100%,100% 28.5px;background-position:0 0,0 25px}.rich-document:focus{box-shadow:0 22px 48px rgba(18,29,22,.13)}.rich-document:empty:before{content:attr(data-placeholder);color:var(--muted);pointer-events:none}.rich-document h2,.rich-document h3{margin:1.35em 0 .5em;line-height:1.2}.rich-document h2{font-size:1.65em}.rich-document h3{font-size:1.28em}.rich-document blockquote{margin:1.35em 0;padding:5px 0 5px 18px;border-left:3px solid var(--accent);color:var(--muted)}.rich-document ul,.rich-document ol{padding-left:1.4em}.rich-document a{color:#526bdd;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.editor-unavailable{max-width:540px;margin:120px auto;padding:40px;text-align:center}.editor-unavailable h1{margin:9px 0;font-size:31px;letter-spacing:-1.2px}.editor-unavailable p:not(.eyebrow){margin:0 0 22px;color:var(--muted);font-size:14px;line-height:1.6}.editor-unavailable .eyebrow{margin:0;color:var(--muted);font:500 10px "DM Mono",monospace;letter-spacing:1px}

/* Infinite drawing board */
.sketch-board-page{height:100vh;overflow:hidden;background:var(--page)}.sketch-board{position:relative;width:100vw;height:100vh;overflow:hidden;background:var(--page)}.sketch-board>canvas{position:absolute;inset:0;display:block;touch-action:none}.sticky-layer{position:absolute;inset:0;z-index:2;pointer-events:none}.board-sticky{position:absolute;z-index:1;width:210px;min-height:150px;padding:8px 12px 12px;border:1px solid rgba(28,37,29,.12);border-radius:4px 4px 16px 4px;box-shadow:0 12px 26px rgba(25,35,27,.16);transform-origin:top left;pointer-events:auto}.board-sticky.sticky-yellow{background:#fff19a}.board-sticky.sticky-peach{background:#ffc9bd}.board-sticky.sticky-lilac{background:#ded0ff}.board-sticky.sticky-sky{background:#b9e4ff}.sticky-drag{display:flex;height:25px;align-items:center;justify-content:space-between;cursor:grab}.sticky-drag:active{cursor:grabbing}.sticky-drag>span{width:34px;height:4px;border-radius:99px;background:rgba(31,42,33,.32)}.sticky-drag button{width:22px;height:22px;border:0;border-radius:7px;background:rgba(255,255,255,.44);color:rgba(31,42,33,.7);font-size:16px;line-height:1}.board-sticky textarea{width:100%;min-height:108px;padding:6px 1px;border:0;outline:0;resize:none;background:transparent;color:#2b302e;font:600 14px/1.45 "DM Sans",Arial,sans-serif}.board-sticky textarea::placeholder{color:rgba(43,48,46,.46)}.board-topbar{position:absolute;top:18px;right:22px;left:22px;z-index:5;display:grid;grid-template-columns:1fr minmax(190px,420px) 1fr;align-items:center;gap:14px;padding:10px 13px;border:1px solid var(--line);border-radius:17px;background:color-mix(in srgb,var(--card) 88%,transparent);box-shadow:0 12px 32px rgba(22,32,25,.11);backdrop-filter:blur(16px)}.board-title{display:flex;min-width:0;align-items:center;gap:9px}.board-title input{min-width:0;flex:1;padding:4px;border:0;outline:0;background:transparent;color:var(--ink);font:700 14px "DM Sans",Arial,sans-serif;text-align:center}.board-title input::placeholder{color:var(--muted)}.board-title span{display:none;color:var(--muted);font:500 9px "DM Mono",monospace}.board-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px}.board-icon,.board-action-link,.board-save{display:inline-flex;height:33px;align-items:center;justify-content:center;padding:0 10px;border:1px solid var(--line);border-radius:9px;background:var(--card);color:var(--ink);font:700 10px "DM Sans",Arial,sans-serif;text-decoration:none}.board-icon{width:33px;padding:0;font-size:15px}.board-save{border-color:transparent;background:var(--accent);color:var(--accent-ink)}.tool-island{position:absolute;z-index:5;right:24px;bottom:24px;display:flex;align-items:center;gap:8px;max-width:calc(100vw - 24px);padding:7px;border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--card) 93%,transparent);box-shadow:0 14px 34px rgba(22,32,25,.16);backdrop-filter:blur(16px)}.tool-island-handle{display:flex;align-items:center;gap:3px;padding:0 5px;cursor:grab;touch-action:none}.tool-island-handle:active{cursor:grabbing}.tool-island-handle span{width:3px;height:3px;border-radius:50%;background:var(--muted)}.tool-island-handle b{margin-left:3px;color:var(--muted);font:600 9px "DM Mono",monospace;letter-spacing:.4px}.tool-row{display:flex;gap:3px}.board-tool{display:grid;width:32px;height:32px;place-items:center;padding:0;border:0;border-radius:9px;background:transparent;color:var(--ink);font-size:15px}.board-tool:hover,.board-tool.active{background:var(--soft)}.board-tool.active{box-shadow:inset 0 0 0 1px #9acb72;background:#effbdc}.tool-divider{width:1px;height:24px;background:var(--line)}.board-colour{display:grid;place-items:center;width:31px;height:31px;border-radius:9px;background:var(--soft);cursor:pointer}.board-colour input{width:19px;height:19px;padding:0;border:0;border-radius:50%;background:transparent;cursor:pointer}.pen-size{display:flex;align-items:center;gap:5px;padding-right:3px}.pen-size input{width:80px;accent-color:#665bd3}.pen-size output{min-width:16px;color:var(--muted);font:600 9px "DM Mono",monospace}.sticky-add{background:#fff09a;color:#6a5a18;font-size:21px}.board-zoom{position:absolute;bottom:24px;left:24px;z-index:5;display:grid;grid-template-columns:34px 56px 34px;gap:4px;padding:5px;border:1px solid var(--line);border-radius:13px;background:color-mix(in srgb,var(--card) 93%,transparent);box-shadow:0 14px 34px rgba(22,32,25,.14);backdrop-filter:blur(16px)}.board-zoom button{height:31px;border:0;border-radius:8px;background:transparent;color:var(--ink);font:700 11px "DM Sans",Arial,sans-serif}.board-zoom button:hover{background:var(--soft)}.board-hint{position:absolute;bottom:70px;left:24px;z-index:4;margin:0;color:var(--muted);font:500 9px "DM Mono",monospace;letter-spacing:.1px}.sketch-board-page [hidden]{display:none!important}[data-theme=dark] .sketch-board{background:#101916}[data-theme=dark] .board-topbar,[data-theme=dark] .tool-island,[data-theme=dark] .board-zoom{background:color-mix(in srgb,#17231d 90%,transparent)}[data-theme=dark] .board-tool.active{background:#314428;color:#e7f4df}

/* Clear drawing-control iconography */
.tool-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.tool-icon-accent{fill:#f7df42;stroke:#c9a93d}.highlighter-tool{color:#9c7c1c}.danger-tool{color:#a95b52}.danger-tool:hover{background:#fff0ed;color:#a54e44}.tool-size-icon{width:16px;height:16px;fill:none;stroke:var(--muted);stroke-width:1.7;stroke-linecap:round}

/* File type chooser and drawing workspace */
.note-create-card{cursor:pointer;text-align:center;font-family:"DM Sans",Arial,sans-serif}.note-sketch-preview{display:block;width:100%;height:78px;margin:0 0 6px;border:1px solid rgba(26,35,29,.12);border-radius:9px;background:rgba(255,255,255,.52);object-fit:cover}.drawing-file-card h4{margin-bottom:10px}.file-type-dialog{width:min(560px,calc(100% - 32px));margin:auto;padding:24px;border:1px solid var(--line);border-radius:22px;background:var(--card);color:var(--ink);box-shadow:0 28px 70px rgba(14,26,19,.25)}.file-type-dialog::backdrop{background:rgba(18,28,23,.52);backdrop-filter:blur(4px)}.file-type-dialog-top{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.file-type-dialog-top p{margin:0 0 7px;color:var(--muted);font:500 10px "DM Mono",monospace;letter-spacing:1px}.file-type-dialog-top h2{margin:0;font-size:25px;letter-spacing:-.9px}.file-type-dialog-copy{max-width:410px;margin:12px 0 18px;color:var(--muted);font-size:12px;line-height:1.55}.file-type-grid{display:grid;gap:10px}.file-type-choice{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:12px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--soft);color:var(--ink);text-decoration:none;transition:transform .16s ease,border-color .16s ease,background .16s ease}.file-type-choice:hover{transform:translateY(-2px);border-color:#8eb875;background:var(--card)}.file-type-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#e8ddff;color:#725bc7;font:700 18px "DM Sans",Arial,sans-serif}.drawing-choice .file-type-icon{background:#d8f0e4;color:#276b50}.file-type-choice strong,.file-type-choice small{display:block}.file-type-choice strong{font-size:13px}.file-type-choice small{margin-top:4px;color:var(--muted);font-size:10px}.file-type-choice>b{color:var(--muted);font-size:18px}.drawing-workspace{max-width:1000px;margin:42px auto 0;padding:38px 42px;border:1px solid var(--line);border-radius:28px;background:var(--card);box-shadow:var(--shadow)}.drawing-mark{background:#d8f0e4!important;color:#276b50!important;font-size:17px!important}.drawing-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:18px;padding:8px;border:1px solid var(--line);border-radius:14px;background:var(--soft)}.drawing-toolbar label{display:flex;align-items:center;gap:7px;color:var(--muted);font:500 9px "DM Mono",monospace;letter-spacing:.5px;text-transform:uppercase}.drawing-colour{padding:0 4px}.drawing-colour input{width:25px;height:25px;padding:0;border:0;border-radius:50%;background:transparent;cursor:pointer}.drawing-size input{width:100px;accent-color:#665bd3}.drawing-size output{min-width:29px;color:var(--ink);font-size:9px}.drawing-toolbar>p{margin:0 0 0 auto;color:var(--muted);font-size:10px}.drawing-canvas-shell{height:min(62vh,640px);min-height:410px;overflow:hidden;border:1px solid var(--line);border-radius:17px;background-color:var(--soft);background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:28px 28px}.drawing-canvas-shell canvas{display:block;width:100%;height:100%;touch-action:none;cursor:crosshair}.drawing-canvas-shell canvas:active{cursor:grabbing}

[data-theme=dark] .today-class.lilac,[data-theme=dark] .class-chip.lilac{background:#332b53;color:#ede9ff}[data-theme=dark] .today-class.sky,[data-theme=dark] .class-chip.sky{background:#1f3d5b;color:#d9ecff}[data-theme=dark] .today-class.apricot,[data-theme=dark] .class-chip.apricot{background:#4b3222;color:#ffe8d9}[data-theme=dark] .folder-card,[data-theme=dark] .note-card{color:#f3f5ee}[data-theme=dark] .note-colour-0{background:#24455a}[data-theme=dark] .note-colour-1{background:#59383c}[data-theme=dark] .note-colour-2{background:#554f24}[data-theme=dark] .note-colour-3{background:#42385d}[data-theme=dark] .note-yellow{background:#585224}[data-theme=dark] .note-peach{background:#603f42}[data-theme=dark] .note-sky{background:#285470}[data-theme=dark] .note-lilac{background:#493f68}[data-theme=dark] .editor-toolbar{box-shadow:0 12px 26px rgba(0,0,0,.25)}

@media(max-width:1040px){.sidebar{width:210px}.main-column{width:calc(100% - 210px);margin-left:210px}.app-header,.view{padding-inline:30px}.stats{grid-template-columns:repeat(2,1fr)}.folder-grid,.note-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.file-editor-shell{width:min(100% - 48px,1000px)}.file-editor-actions{flex-wrap:wrap;justify-content:flex-end}.muted-label{display:none}}
@media(max-width:760px){.sidebar{position:fixed;bottom:0;left:0;width:100%;height:70px;flex-direction:row;padding:8px;background:var(--nav)}.app-brand,.local-status{display:none}.sidebar nav{display:grid;width:100%;grid-template-columns:repeat(5,1fr);gap:3px}.nav-link{min-height:53px;flex-direction:column;justify-content:center;gap:2px;padding:0;border-radius:10px;font-size:8px}.nav-link i{width:auto;height:17px;font-size:15px}.main-column{width:100%;margin:0;padding-bottom:70px}.app-header,.view{padding-inline:16px}.app-header{min-height:88px;padding-top:18px;padding-bottom:16px}.app-header h1{font-size:22px}.app-header>div:first-child>p:not(.mobile-brand){display:none}.mobile-brand{display:flex;align-items:center;gap:6px;margin:0 0 6px;color:var(--muted);font-size:10px;font-weight:600}.mobile-brand span{width:19px;height:19px;border-radius:6px;font-size:13px}.header-actions #themeButton{width:40px;justify-content:center;padding:0}.header-actions #themeButton span{display:none}.overview-heading{align-items:flex-start;flex-direction:column;margin-top:4px}.overview-heading h2{font-size:32px}.overview-heading>div>span{font-size:12px}.today-schedule{max-width:none;padding:20px}.today-schedule-top p{margin-bottom:17px;font-size:11px}.today-schedule-top h3{font-size:20px}.schedule-actions{align-items:flex-end;flex-direction:column}.schedule-expand{font-size:9px}.today-class{grid-template-columns:64px 1fr 31px;gap:10px;min-height:60px;padding:10px}.today-class time{font-size:11px}.today-class strong{font-size:13px}.class-monogram{width:31px;height:31px}.schedule-week{grid-template-columns:repeat(2,1fr)}.task-form,.event-form{grid-template-columns:1fr}.task-form .primary,.event-form .primary{grid-column:auto}.stats{grid-template-columns:repeat(2,1fr);gap:9px}.stats article{min-height:125px;padding:14px}.stats i{margin-bottom:14px}.stats strong{font-size:25px}.task-manager{padding:17px}.kanban{grid-template-columns:1fr;gap:10px}.kanban>article{min-height:0}.section-head{align-items:flex-start}.section-head h2{font-size:27px}.segmented{margin-top:5px}.calculator-layout,.two-column{grid-template-columns:1fr}.calculator-card{padding:16px;border-radius:19px}.display{min-height:130px}.display strong{font-size:32px}.keypad{gap:6px}.keypad button{min-height:44px}.history{min-height:205px;padding:19px}.history #historyList{max-height:220px;overflow:auto}.subjects{grid-template-columns:1fr}.study-columns>.panel{min-height:auto}.files-panel{min-height:310px}.event-form{gap:9px}.notes-library{padding:18px}.notes-section-top{align-items:flex-start;flex-direction:column}.notes-filter{width:100%;overflow:auto}.notes-filter button{flex:1;white-space:nowrap}.folder-grid,.note-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:15px}.folder-card{min-height:116px;padding:12px}.note-card,.note-create-card{min-height:188px;padding:13px}.note-card h4{margin:13px 0 8px}.note-card p{-webkit-line-clamp:3}.notes-collection-top{margin-top:23px;padding-top:18px}.notes-sketch{min-height:370px}.notes-sketch .sketch-wrap{min-height:240px}#graphs.view{padding:0}.graph-screen,.graph-stage{min-height:calc(100svh - 158px)}.graph-corner-controls{top:12px;right:12px;width:calc(100% - 24px);padding:12px}.graph-readout{right:12px;bottom:14px;left:12px}.graph-readout span{display:none}.saved-graphs{margin:15px auto 26px;padding:0 16px!important}.saved-graphs>.panel-top{padding:18px 18px 0}.saved-graphs>div:last-child{padding:16px 18px 18px}.file-editor-shell{width:100%;padding:16px 16px 36px}.file-editor-topbar{align-items:flex-start;flex-direction:column;gap:15px}.file-editor-actions{width:100%;justify-content:flex-start}.file-editor-actions .muted-label{display:block;margin-right:auto}.file-editor-workspace{margin-top:28px;padding:26px 20px;border-radius:22px}.document-title-input{font-size:32px}.document-body-input{min-height:55vh;font-size:15px}.editor-toolbar{position:static;margin-bottom:15px;border-radius:12px}.toolbar-button{height:31px;padding:0 7px}.toolbar-divider{margin:0 1px}.toolbar-select select{min-width:76px}.link-popover{align-items:stretch;flex-wrap:wrap}.link-popover label{width:100%}.link-popover .button{margin-left:auto}}
@media(max-width:760px){.notes-section-actions{width:100%;align-items:stretch;flex-direction:column}.folder-nav{align-self:flex-start}.folder-path-toolbar{align-items:flex-start;flex-direction:column;gap:10px}.folder-toolbar-actions{width:100%;justify-content:space-between}.folder-breadcrumb{max-width:100%}.subfolder-form{grid-template-columns:1fr auto;gap:8px}.subfolder-form label{grid-column:1/-1}.subfolder-form input{grid-column:1/-1}.subfolder-form .primary{width:100%}.subfolder-form .quiet-action{justify-self:end}.note-subfolder-card{min-height:158px;padding:13px}}
@media(max-width:760px){.file-type-dialog{padding:19px}.file-type-dialog-top h2{font-size:22px}.drawing-workspace{margin-top:28px;padding:26px 20px;border-radius:22px}.drawing-toolbar{align-items:flex-start;flex-wrap:wrap}.drawing-toolbar>p{width:100%;margin:2px 0 0}.drawing-toolbar .toolbar-divider{display:none}.drawing-canvas-shell{height:56vh;min-height:350px}.drawing-size input{width:82px}}
@media(max-width:760px){.board-topbar{top:10px;right:10px;left:10px;grid-template-columns:auto 1fr auto;padding:8px 9px}.board-topbar .brand span:last-child,.board-actions .muted-label,.board-action-link{display:none}.board-title input{font-size:12px;text-align:left}.board-save{height:31px;padding:0 10px}.tool-island{right:10px;bottom:10px;gap:5px;max-width:calc(100vw - 20px);padding:5px}.tool-island-handle b,.tool-island-handle span,.tool-island .tool-divider{display:none}.board-tool{width:30px;height:30px;font-size:14px}.tool-row{gap:1px}.pen-size input{width:58px}.board-zoom{bottom:10px;left:10px}.board-hint{display:none}.board-sticky{width:190px;min-height:135px}.board-sticky textarea{min-height:92px;font-size:13px}}
.study-schedule-priority{margin-top:0}.study-schedule-priority .panel-top{align-items:center}.schedule-priority-label,.subject-count-label{color:var(--muted);font:500 10px "DM Mono",monospace;letter-spacing:.3px}.subjects-panel{margin-top:16px}.subjects-panel .panel-top{align-items:flex-end}.subjects{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:20px 0 0}.subject-card{display:flex;min-height:166px;flex-direction:column;align-items:stretch;gap:0;padding:17px;border:1px solid transparent;border-radius:17px;background:#dcd0ff;color:#2a2535;text-align:left;transition:transform .16s ease,box-shadow .16s ease}.subject-card:hover{transform:translateY(-3px);box-shadow:0 16px 28px rgba(28,35,29,.13)}.subject-card.selected{outline:2px solid var(--accent);outline-offset:2px;background:#dcd0ff}.subject-card:nth-child(4n+2){background:#bfe9f4;color:#1d3840}.subject-card:nth-child(4n+3){background:#ffd6b5;color:#473326}.subject-card:nth-child(4n+4){background:#d3efb7;color:#27391d}.subject-card-icon{display:grid;width:38px;height:38px;place-items:center;border-radius:11px;background:rgba(255,255,255,.6);font:700 18px Georgia,serif}.subject-card-content{display:block;margin-top:auto}.subject-card b,.subject-card small{display:block}.subject-card b{overflow:hidden;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.subject-card small{margin-top:8px;font-size:10px;opacity:.7}.subject-card .subject-arrow{align-self:flex-end;margin-top:-14px;font-size:22px}.subject-create-card{display:flex;min-height:166px;flex-direction:column;align-items:flex-start;justify-content:center;padding:17px;border:1px dashed #819086;border-radius:17px;background:var(--soft);color:var(--muted);text-align:left}.subject-create-card:hover{border-color:#8eb875;background:var(--card);color:var(--ink)}.subject-create-card>span{display:grid;width:38px;height:38px;place-items:center;margin-bottom:18px;border-radius:11px;background:var(--card);color:var(--ink);font-size:21px}.subject-create-card strong{font-size:13px}.subject-create-card small{margin-top:6px;font-size:10px}.subject-create-form{margin-top:16px}.subject-create-form>div{display:flex;gap:8px}.subject-create-form input{flex:1}.files-panel{min-height:320px;margin-top:16px}.card-wrap{position:relative;min-width:0}.card-wrap>.folder-card,.card-wrap>.note-subfolder-card,.card-wrap>.note-card{width:100%;height:100%}.card-menu{position:absolute;top:10px;right:9px;z-index:1;display:grid;width:26px;height:26px;place-items:center;padding:0;border:0;border-radius:8px;background:rgba(255,255,255,.46);color:inherit;font-size:17px;line-height:1}.card-menu:hover{background:rgba(255,255,255,.82)}.card-wrap .note-card-top b{margin-right:28px}.manage-item-dialog{width:min(520px,calc(100% - 32px));margin:auto;padding:24px;border:1px solid var(--line);border-radius:22px;background:var(--card);color:var(--ink);box-shadow:0 28px 70px rgba(14,26,19,.25)}.manage-item-dialog::backdrop{background:rgba(18,28,23,.52);backdrop-filter:blur(4px)}.manage-item-form{display:grid;gap:8px}.manage-item-form>label{color:var(--muted);font:500 9px "DM Mono",monospace;letter-spacing:.7px;text-transform:uppercase}.manage-item-form>input{height:42px;padding:0 12px;border:1px solid var(--line);border-radius:10px;outline:0;background:var(--soft);color:var(--ink);font:600 13px "DM Sans",Arial,sans-serif}.manage-item-form>input:focus{border-color:#94c371;box-shadow:0 0 0 3px rgba(184,239,96,.18)}.manage-item-form>div{display:grid;grid-template-columns:auto 1fr auto auto;gap:8px;margin-top:10px}.danger-button{min-height:38px;padding:0 12px;border:1px solid #efbbb3;border-radius:10px;background:#fff2ee;color:#a24236;font:700 11px "DM Sans",Arial,sans-serif}.danger-button:hover{background:#ffe4dc}.manage-item-form .secondary,.manage-item-form .primary{min-height:38px;padding:0 12px;border-radius:10px;font-size:11px}.board-image{position:absolute;z-index:1;overflow:hidden;border:1px solid rgba(28,37,29,.2);border-radius:10px;background:#fff;box-shadow:0 14px 28px rgba(25,35,27,.2);transform-origin:top left;pointer-events:auto}.board-image img{display:block;width:100%;height:calc(100% - 25px);object-fit:cover}.image-drag{display:flex;height:25px;align-items:center;justify-content:space-between;padding:0 5px;background:rgba(255,255,255,.9);cursor:grab}.image-drag:active{cursor:grabbing}.image-drag span{color:#4e5a50;font:600 8px "DM Mono",monospace;text-transform:uppercase}.image-drag button{width:20px;height:20px;border:0;border-radius:6px;background:#f1ece6;color:#596057;font-size:15px;line-height:1}.image-add{background:#d9f0ff;color:#2d6687;font-size:17px}.board-topbar,.tool-island,.board-zoom{background:var(--card)}@supports (background:color-mix(in srgb,white,transparent)){.board-topbar{background:color-mix(in srgb,var(--card) 88%,transparent)}.tool-island,.board-zoom{background:color-mix(in srgb,var(--card) 93%,transparent)}}
@media(max-width:420px){.overview-heading h2{font-size:29px}.overview-heading .primary{width:100%}.section-head{flex-direction:column}.folder-grid,.note-grid{grid-template-columns:1fr}.graph-corner-controls{width:calc(100% - 20px);right:10px}.graph-readout{right:10px;left:10px}.file-editor-actions .button{padding-inline:10px;font-size:10px}.file-editor-actions .ghost-button:first-of-type{display:none}}
@media(max-width:1040px){.subjects{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.study-schedule-priority .panel-top{align-items:flex-start}.schedule-priority-label,.subject-count-label{display:none}.subjects{grid-template-columns:repeat(2,minmax(0,1fr))}.subject-card,.subject-create-card{min-height:142px}.subject-card{padding:14px}.subject-card small{margin-top:5px}.subject-create-form>div{flex-direction:column}.subject-create-form .primary{width:100%}}@media(max-width:420px){.subjects{grid-template-columns:1fr}}
.subject-create-card{border-color:rgba(218,239,222,.25);background:#18231e;color:#eef5ed}.subject-create-card:hover{border-color:#a4d879;background:#23332a;color:#fff}.subject-create-card>span{background:#223029;color:#d7f5c7}.subject-create-card small{color:#afc0b4}
@media(max-width:760px){.task-manager-top{align-items:flex-start}.task-manager-actions{width:100%;justify-content:space-between}.task-manager .task-form{padding:14px}.task-manager .task-form+.kanban{margin-top:12px}}

/* Rich-file embeds */
.document-embed{position:relative;box-sizing:border-box;margin:22px 0;padding:0;overflow:hidden;border:1px solid var(--line);border-radius:16px;background:var(--soft);box-shadow:0 9px 20px rgba(21,31,24,.06)}.document-image-embed{width:min(100%,640px)}.document-image-embed img{display:block;width:100%;max-height:520px;object-fit:contain;background:var(--page-alt)}.document-image-embed figcaption{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:35px;padding:0 12px;color:var(--muted);font:500 9px "DM Mono",monospace;letter-spacing:.35px}.document-sketch-embed{width:min(100%,430px);transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease}.document-sketch-embed:hover{border-color:#92c06f;box-shadow:0 13px 24px rgba(21,31,24,.12);transform:translateY(-2px)}.document-sketch-open{display:grid;grid-template-columns:126px 1fr;min-height:116px;color:var(--ink);text-decoration:none}.document-sketch-preview{display:grid;overflow:hidden;place-items:center;min-width:0;background-color:var(--page-alt);background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:20px 20px}.document-sketch-preview img{width:100%;height:100%;object-fit:cover}.document-sketch-empty{max-width:88px;color:var(--muted);font:600 9px/1.45 "DM Sans",Arial,sans-serif;text-align:center}.document-sketch-meta{display:flex;min-width:0;flex-direction:column;justify-content:center;padding:14px 39px 14px 14px}.document-sketch-meta small{color:#7763c7;font:600 9px "DM Mono",monospace;letter-spacing:.8px}.document-sketch-meta strong{overflow:hidden;margin:7px 0 8px;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.document-sketch-meta em{color:var(--muted);font-size:10px;font-style:normal}.document-embed-remove{position:absolute;top:8px;right:8px;display:grid;width:24px;height:24px;place-items:center;padding:0;border:0;border-radius:7px;background:rgba(255,255,255,.82);color:#596057;font-size:16px;line-height:1;opacity:0;transition:opacity .15s ease}.document-embed:hover .document-embed-remove,.document-embed:focus-within .document-embed-remove{opacity:1}.document-embed-remove:hover{background:#fee2df;color:#a64339}@media(max-width:760px){.document-sketch-open{grid-template-columns:108px 1fr;min-height:104px}.document-embed-remove{opacity:1}.document-image-embed figcaption{padding-right:41px}}

/* Notes uploads */
.note-upload-card{border-color:#b7c7ba;background:var(--soft)}.note-upload-card>span{background:#d9f0ff;color:#2d6687}.uploaded-note-card{cursor:pointer}.note-upload-preview{display:block;width:100%;height:82px;margin:8px 0 2px;border:1px solid rgba(25,34,29,.12);border-radius:9px;background:rgba(255,255,255,.52);object-fit:cover}.note-upload-pdf{display:grid;width:52px;height:52px;place-items:center;margin:14px 0 4px;border-radius:13px;background:rgba(255,255,255,.58);color:#c24c53;font:800 11px "DM Mono",monospace;letter-spacing:.3px}.uploaded-note-card h4{margin-top:12px}.uploaded-note-card p{display:block;-webkit-line-clamp:unset}.uploaded-note-card:hover{border-color:rgba(30,47,36,.24)}[data-theme=dark] .note-upload-card{border-color:rgba(218,239,222,.25);background:#18231e;color:#eef5ed}[data-theme=dark] .note-upload-card>span{background:#223029;color:#bde7ff}

/* Subject management */
.subject-card-wrap{position:relative;min-width:0}.subject-card-wrap .subject-card{width:100%}.subject-card-wrap:nth-child(4n+2) .subject-card{background:#bfe9f4;color:#1d3840}.subject-card-wrap:nth-child(4n+3) .subject-card{background:#ffd6b5;color:#473326}.subject-card-wrap:nth-child(4n+4) .subject-card{background:#d3efb7;color:#27391d}.subject-card-menu{top:10px;right:10px;background:rgba(255,255,255,.52)}.subject-card-menu:hover{background:rgba(255,255,255,.82)}

/* Multi-function graph controls */
.graph-expression-list{display:grid;gap:7px;margin-top:12px}.graph-expression-row{display:grid;grid-template-columns:8px minmax(0,1fr) 28px;align-items:center;gap:7px;padding:5px;border:1px solid transparent;border-radius:11px;transition:border-color .16s ease,background .16s ease}.graph-expression-row.active{border-color:rgba(163,234,123,.35);background:rgba(163,234,123,.06)}.graph-expression-row>label{display:grid;grid-template-columns:35px minmax(0,1fr);align-items:center;gap:5px;margin:0!important}.graph-expression-row>label>span{color:#b7c8bb;font:500 10px "DM Mono",monospace}.graph-expression-row input{height:34px!important}.graph-expression-colour{width:8px;height:28px;border-radius:999px;background:var(--graph-colour);box-shadow:0 0 13px color-mix(in srgb,var(--graph-colour) 55%,transparent)}.remove-graph-expression,.graph-expression-spacer{display:grid;width:28px;height:28px;place-items:center;border:0;border-radius:8px;background:transparent;color:#b7c8bb;font-size:18px;line-height:1}.remove-graph-expression:hover{background:rgba(255,144,126,.15);color:#ffa695}.graph-function-actions{display:flex;align-items:center;gap:7px;margin-top:9px}.graph-add-function,.graph-keyboard-button{display:inline-flex;height:33px;align-items:center;justify-content:center;gap:6px;padding:0 10px;border:1px solid rgba(218,238,224,.16);border-radius:9px;background:rgba(255,255,255,.08);color:#f4faf5;font:700 10px "DM Sans",Arial,sans-serif}.graph-add-function{flex:1}.graph-add-function span{color:#9dea75;font-size:16px}.graph-add-function:hover,.graph-keyboard-button:hover,.graph-keyboard-button[aria-expanded=true]{border-color:rgba(184,238,112,.45);background:rgba(184,238,112,.18)}.graph-keyboard-button{font-family:"DM Mono",monospace}.math-keyboard{margin-top:9px;padding:10px;border:1px solid rgba(218,238,224,.15);border-radius:11px;background:rgba(0,0,0,.16)}.math-keyboard[hidden]{display:none}.math-keyboard>p{margin:0 0 8px;color:#9eafa3;font:500 8px "DM Mono",monospace;letter-spacing:.9px}.math-key-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.math-key-grid button{min-height:30px;border:1px solid rgba(218,238,224,.12);border-radius:7px;background:rgba(255,255,255,.07);color:#edf5ef;font:600 10px "DM Mono",monospace}.math-key-grid button:hover{border-color:rgba(184,238,112,.45);background:rgba(184,238,112,.18)}.math-key-grid sup{font-size:7px}.graph-readout strong{max-width:min(62vw,780px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.graph-intersections{position:absolute;right:24px;bottom:22px;z-index:1;width:min(290px,calc(100% - 48px));max-height:224px;overflow:auto;padding:12px 13px;border:1px solid rgba(211,238,219,.16);border-radius:13px;background:rgba(11,23,17,.83);box-shadow:0 16px 30px rgba(0,0,0,.2);color:#eff7f0;backdrop-filter:blur(10px)}.graph-intersections[hidden]{display:none}.graph-intersections-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:8px;border-bottom:1px solid rgba(211,238,219,.12)}.graph-intersections-heading p{margin:0;color:#c5d8c8;font:600 9px "DM Mono",monospace;letter-spacing:.9px}.graph-intersections-heading span{color:#9dea75;font:500 9px "DM Mono",monospace}.graph-intersections ul{display:grid;gap:6px;margin:10px 0 0;padding:0;list-style:none}.graph-intersections li{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#b9c9bc;font:500 9px "DM Mono",monospace}.graph-intersections li span{white-space:nowrap}.graph-intersections li b{color:#f3f8f3;font-weight:600;text-align:right}.graph-intersections-empty{margin:10px 0 0;color:#a6b7aa;font-size:10px;line-height:1.45}
@media(max-width:760px){.graph-expression-row>label{grid-template-columns:30px minmax(0,1fr)}.graph-expression-row>label>span{font-size:9px}.graph-function-actions{gap:6px}.graph-add-function,.graph-keyboard-button{padding:0 8px;font-size:9px}.math-key-grid{gap:4px}.math-key-grid button{min-height:28px;font-size:9px}.graph-readout strong{max-width:calc(100vw - 52px)}.graph-intersections{right:12px;bottom:14px;width:calc(100% - 24px);max-height:176px}.graph-intersections li{font-size:8px}}

/* A dedicated top bar keeps global controls apart from every page title. */
.account-dialog{width:min(520px,calc(100% - 32px));margin:auto;padding:25px;border:1px solid var(--line);border-radius:22px;background:var(--card);color:var(--ink);box-shadow:0 28px 70px rgba(14,26,19,.28)}.account-dialog::backdrop{background:rgba(18,28,23,.56);backdrop-filter:blur(4px)}.account-form{display:grid;gap:13px}.account-form label{display:grid;gap:7px;color:var(--muted);font:500 9px "DM Mono",monospace;letter-spacing:.7px;text-transform:uppercase}.account-form input{width:100%;height:42px;padding:0 12px;border:1px solid var(--line);border-radius:11px;outline:0;background:var(--soft);color:var(--ink);font:600 12px "DM Sans",Arial,sans-serif}.account-form input:focus{border-color:#98ce69;box-shadow:0 0 0 3px rgba(184,238,112,.18)}.account-notice{min-height:16px;margin:-3px 0 0;color:var(--muted);font-size:11px;line-height:1.45}.local-status span{display:inline-block}.local-status.syncing b{background:#e4bd71;box-shadow:0 0 0 3px rgba(228,189,113,.15)}
.account-form .forgot-password{justify-self:start;margin:-5px 0 1px;padding:0;border:0;background:transparent;color:#6e9d4f;font-size:10px;font-weight:700;text-decoration:underline;text-underline-offset:3px}.account-form .forgot-password:hover{color:var(--ink)}.email-verification-panel{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:15px;padding:15px;border:1px solid rgba(168,218,103,.48);border-radius:14px;background:linear-gradient(135deg,rgba(184,238,112,.17),rgba(104,210,192,.11));}.email-verification-panel>div{display:grid;gap:5px}.email-verification-panel p{margin:0;color:#638d47;font:700 8px "DM Mono",monospace;letter-spacing:.85px}.email-verification-panel h3{margin:0;font-size:15px;letter-spacing:-.45px}.email-verification-panel span{color:var(--muted);font-size:10px;line-height:1.45}.email-verification-panel .secondary{flex:0 0 auto;min-height:37px;padding:0 10px;font-size:10px}@media(max-width:560px){.email-verification-panel{align-items:stretch;flex-direction:column}.email-verification-panel .secondary{width:100%}}
.main-column{position:relative}.app-shell[data-view]:not([data-view=home]) .app-header{position:relative;z-index:4;width:min(1230px,100%);min-height:86px;margin-inline:auto;padding:19px 48px 15px;border-bottom:1px solid var(--line)}.app-shell[data-view]:not([data-view=home]) .app-header>div:first-child{display:none}.app-shell[data-view]:not([data-view=home]) .app-header .header-actions{margin-left:auto}.app-shell[data-view=graphs] .app-header{display:none}@media(max-width:1040px){.app-shell[data-view]:not([data-view=home]) .app-header{padding-inline:30px}}@media(max-width:760px){.app-shell[data-view]:not([data-view=home]) .app-header{min-height:66px;padding:12px 16px 10px}.app-shell[data-view]:not([data-view=home]) .app-header .header-actions{width:auto}.app-shell[data-view]:not([data-view=home]) .app-header #themeButton{width:40px;padding:0}.app-shell[data-view]:not([data-view=home]) .app-header #themeButton span{display:none}}

/* Calm, balanced desktop overview typography */
.overview-heading h2 em{font-family:inherit;font-style:normal;font-weight:600}.overview-heading>div>span{max-width:560px}@media(min-width:761px){.overview-heading{margin:12px 0 22px}.overview-heading h2{max-width:860px;font-size:clamp(36px,3.4vw,46px);line-height:1.08;letter-spacing:-2.2px}.today-schedule{max-width:760px;padding:27px}}

/* Sticky notes grow with their text instead of scrolling internally */
.board-sticky textarea{height:108px;overflow:hidden;overflow-wrap:anywhere;resize:none}

/* Editable board images */
.image-actions{display:flex;align-items:center;gap:4px}.image-drag .image-actions button{display:grid;place-items:center}.image-resize-handle{position:absolute;right:7px;bottom:7px;z-index:2;display:grid;width:23px;height:23px;place-items:center;padding:0;border:0;border-radius:7px;background:rgba(31,40,34,.84);color:#fff;cursor:nwse-resize;touch-action:none}.image-resize-handle::before{content:'↘';font:700 14px/1 "DM Sans",Arial,sans-serif}.image-resize-handle span{display:none}.image-resize-handle:hover{background:#587567}


/* Calculator Math tools */
.math-toolbox{min-height:552px}.math-toolbox-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:17px;border-bottom:1px solid rgba(255,255,255,.13)}.math-toolbox-heading p{margin:0 0 7px;color:#a7b4ac;font:500 10px "DM Mono",monospace;letter-spacing:1px}.math-toolbox-heading h3{margin:0;color:#f4f6f2;font-size:22px;letter-spacing:-.8px}.math-toolbox-heading>span{padding:6px 8px;border-radius:8px;background:rgba(184,238,112,.13);color:#cce9a4;font:500 9px "DM Mono",monospace}.math-tool-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:18px 0}.math-tool-card{display:grid;min-height:84px;grid-template-columns:25px 1fr;align-content:center;column-gap:7px;padding:9px;border:1px solid rgba(255,255,255,.11);border-radius:11px;background:#1b2823;color:#f4f6f2;text-align:left}.math-tool-card:hover,.math-tool-card.active{border-color:rgba(184,238,112,.65);background:#26382e}.math-tool-card>span{grid-row:span 2;display:grid;width:25px;height:25px;place-items:center;border-radius:8px;background:rgba(255,255,255,.11);color:#cce9a4;font:700 12px "DM Sans",Arial,sans-serif}.math-tool-card small{align-self:end;color:#9fac9f;font:500 7px "DM Mono",monospace;letter-spacing:.55px}.math-tool-card strong{align-self:start;overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.math-tool-form{padding:15px;border:1px solid rgba(255,255,255,.13);border-radius:14px;background:#17221e}.math-tool-form-top h3{margin:0;color:#f4f6f2;font-size:17px}.math-tool-form-top p{margin:0 0 5px;color:#cce9a4;font:500 8px "DM Mono",monospace;letter-spacing:1px}.math-tool-form-top span{display:block;margin-top:6px;color:#9fac9f;font-size:10px;line-height:1.45}.math-tool-inputs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px}.math-tool-inputs.fields-1{grid-template-columns:1fr}.math-tool-inputs.fields-4{grid-template-columns:repeat(4,minmax(0,1fr))}.math-tool-inputs label{display:block;color:#a7b4ac;font:500 8px "DM Mono",monospace;letter-spacing:.5px;text-transform:uppercase}.math-tool-inputs input{width:100%;height:37px;margin-top:5px;padding:0 9px;border:1px solid rgba(255,255,255,.16);border-radius:8px;outline:0;background:rgba(255,255,255,.07);color:#f4f6f2;font:500 11px "DM Mono",monospace}.math-tool-inputs input:focus{border-color:#a3ea7b;box-shadow:0 0 0 3px rgba(163,234,123,.13)}.math-tool-submit{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:10px;margin-top:14px}.math-tool-submit .primary{min-height:37px;padding:0 12px;font-size:10px}.math-tool-submit output{min-width:0;color:#d9e7dc;font-size:10px;line-height:1.45}.math-tool-submit output.error{color:#ffb0a8}
@media(max-width:1040px) and (min-width:761px){.app-shell[data-view=calculator] #calculator .section-head{align-items:flex-start;flex-direction:column;padding-right:0}.app-shell[data-view=calculator] #calculator .segmented{align-self:flex-start}}
@media(max-width:760px){.math-toolbox{min-height:auto}.math-tool-list{grid-template-columns:repeat(2,minmax(0,1fr))}.math-tool-card{min-height:74px}.math-tool-inputs.fields-4{grid-template-columns:repeat(2,minmax(0,1fr))}.math-tool-submit{grid-template-columns:1fr}.math-tool-submit .primary{width:100%}}

/* Matrix calculator */
.matrix-tool-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.matrix-size-switch{display:flex;padding:3px;border:1px solid rgba(218,238,224,.15);border-radius:9px;background:rgba(255,255,255,.06)}.matrix-size-switch button,.matrix-operation-bar button{height:29px;padding:0 8px;border:0;border-radius:6px;background:transparent;color:#adbaaf;font:700 9px "DM Mono",monospace}.matrix-size-switch button.active,.matrix-operation-bar button.active{background:#d9f69b;color:#203023}.matrix-operation-bar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-top:14px}.matrix-operation-bar button{border:1px solid rgba(218,238,224,.13);border-radius:8px;background:rgba(255,255,255,.05);color:#dae7dc}.matrix-operation-bar button:hover,.matrix-size-switch button:hover{background:rgba(184,238,112,.16);color:#eff8ed}.matrix-workspace{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.matrix-grid-panel{min-width:0;margin:0;padding:11px;border:1px solid rgba(218,238,224,.14);border-radius:11px;background:rgba(255,255,255,.035)}.matrix-grid-panel legend{padding:0 4px;color:#c8d9ca;font:600 9px "DM Mono",monospace;letter-spacing:.55px}.matrix-grid{position:relative;display:grid;grid-template-columns:repeat(var(--matrix-size),minmax(0,1fr));gap:5px;padding:3px 8px}.matrix-grid::before,.matrix-grid::after{position:absolute;top:0;bottom:0;width:5px;content:""}.matrix-grid::before{left:0;border-top:1px solid #9ebba5;border-bottom:1px solid #9ebba5;border-left:1px solid #9ebba5;border-radius:4px 0 0 4px}.matrix-grid::after{right:0;border-top:1px solid #9ebba5;border-right:1px solid #9ebba5;border-bottom:1px solid #9ebba5;border-radius:0 4px 4px 0}.matrix-grid input{width:100%;height:32px;padding:0 4px;border:1px solid rgba(218,238,224,.13);border-radius:6px;outline:0;background:#233129;color:#f6faf4;font:600 11px "DM Mono",monospace;text-align:center}.matrix-grid input:focus{border-color:#b7ed80;box-shadow:0 0 0 2px rgba(184,238,112,.14)}.matrix-secondary-hint{display:grid;min-height:108px;place-items:center;margin:0;padding:15px;border:1px dashed rgba(218,238,224,.18);border-radius:11px;color:#a8b7ab;font-size:10px;line-height:1.5;text-align:center}.matrix-tool-submit{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;margin-top:14px}.matrix-tool-submit .primary{min-height:37px;padding:0 12px;font-size:10px}.matrix-result{display:flex;min-width:0;align-items:center;gap:9px;color:#dce9dd;font:600 10px "DM Mono",monospace}.matrix-result>span{white-space:nowrap}.matrix-result-grid{position:relative;display:grid;grid-template-columns:repeat(var(--matrix-size),minmax(30px,1fr));gap:3px;padding:3px 8px}.matrix-result-grid::before,.matrix-result-grid::after{position:absolute;top:0;bottom:0;width:4px;content:""}.matrix-result-grid::before{left:0;border-top:1px solid #b9e886;border-bottom:1px solid #b9e886;border-left:1px solid #b9e886;border-radius:4px 0 0 4px}.matrix-result-grid::after{right:0;border-top:1px solid #b9e886;border-right:1px solid #b9e886;border-bottom:1px solid #b9e886;border-radius:0 4px 4px 0}.matrix-result-grid b{display:grid;min-width:30px;min-height:22px;place-items:center;padding:0 4px;border-radius:4px;background:rgba(184,238,112,.1);color:#eaf7da;font-size:9px}
@media(max-width:760px){.matrix-workspace{grid-template-columns:1fr}.matrix-secondary-hint{min-height:68px}.matrix-tool-submit{grid-template-columns:1fr}.matrix-tool-submit .primary{width:100%}.matrix-result{justify-content:center;flex-wrap:wrap}.matrix-operation-bar{gap:4px}.matrix-operation-bar button{padding:0 4px;font-size:8px}}

/* Task planning dialog and draggable study board */
.task-dialog{width:min(680px,calc(100% - 32px));max-height:min(850px,calc(100svh - 32px));margin:auto;padding:25px;border:1px solid var(--line);border-radius:22px;background:var(--card);color:var(--ink);box-shadow:0 28px 70px rgba(14,26,19,.28)}.task-dialog::backdrop{background:rgba(18,28,23,.56);backdrop-filter:blur(4px)}.task-dialog-form{display:grid;gap:13px}.task-dialog-form>label{display:grid;gap:7px;color:var(--muted);font:500 9px "DM Mono",monospace;letter-spacing:.7px;text-transform:uppercase}.task-dialog-form input,.task-dialog-form textarea,.task-dialog-form select{width:100%;border:1px solid var(--line);border-radius:11px;outline:0;background:var(--soft);color:var(--ink);font:600 12px "DM Sans",Arial,sans-serif}.task-dialog-form input,.task-dialog-form select{height:42px;padding:0 12px}.task-dialog-form textarea{min-height:92px;padding:11px 12px;resize:vertical;line-height:1.48}.task-dialog-form #taskDialogLinks{min-height:61px}.task-dialog-form input:focus,.task-dialog-form textarea:focus,.task-dialog-form select:focus{border-color:#98ce69;box-shadow:0 0 0 3px rgba(184,238,112,.18)}.task-dialog-form small{margin-top:-3px;color:var(--muted);font:400 10px/1.4 "DM Sans",Arial,sans-serif;letter-spacing:0;text-transform:none}.task-dialog-meta{display:grid;grid-template-columns:.8fr 1.2fr 1fr;gap:10px}.task-dialog-meta label{display:grid;gap:7px;color:var(--muted);font:500 9px "DM Mono",monospace;letter-spacing:.7px;text-transform:uppercase}.task-attachment-box{display:flex;align-items:center;gap:10px;padding:11px;border:1px dashed var(--line);border-radius:12px;background:var(--soft)}.task-attachment-box .secondary{min-height:35px;padding:0 11px;font-size:10px;white-space:nowrap}.task-attachment-box span{overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.task-dialog-notice{min-height:14px;margin:-4px 0 0;color:var(--muted);font-size:10px}.task-dialog-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:3px}.task-dialog-actions .primary,.task-dialog-actions .secondary{min-height:40px}.task-dialog-actions .primary:disabled{opacity:.65;cursor:wait}.task-card{position:relative;cursor:default;transition:opacity .16s ease,transform .16s ease,box-shadow .16s ease,border-color .16s ease}.task-card.dragging{opacity:.38;transform:scale(.98)}.task-card-top>div{display:flex;align-items:center;gap:4px}.task-priority{padding:4px 6px;border-radius:6px;background:#ecefe9;color:#657064;font-size:8px;font-weight:800}.task-priority.low{background:#dcefff;color:#386a8e}.task-priority.high{background:#ffe2c7;color:#ae6135}.task-priority.urgent{background:#ffded9;color:#a34238}.task-card h4{display:flex;align-items:flex-start;gap:7px;margin:15px 0 5px}.task-drag-mark{cursor:grab;color:var(--muted);font:700 12px/1 "DM Mono",monospace;letter-spacing:-3px;user-select:none}.task-drag-mark:active{cursor:grabbing}.task-subject{font-weight:600}.task-description{display:-webkit-box!important;overflow:hidden;margin-top:10px!important;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-height:1.5}.task-resources{display:flex;align-items:center;gap:5px;overflow:hidden;margin-top:11px}.task-resources a,.task-resources button,.task-resources span{overflow:hidden;max-width:118px;padding:5px 6px;border:0;border-radius:6px;background:var(--soft);color:var(--muted);font:600 8px "DM Mono",monospace;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.task-resources a:hover,.task-resources button:hover{background:var(--page-alt);color:var(--ink)}.task-resources button{cursor:pointer}.kanban>[data-task-dropzone]{transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}.kanban>[data-task-dropzone].drop-target{border-color:#a9e473;background:rgba(184,238,112,.08);box-shadow:inset 0 0 0 2px rgba(184,238,112,.15)}
@media(max-width:760px){.task-dialog{width:min(100% - 20px,680px);padding:20px}.task-dialog-meta{grid-template-columns:1fr}.task-attachment-box{align-items:stretch;flex-direction:column}.task-attachment-box span{white-space:normal}.task-dialog-actions{justify-content:stretch}.task-dialog-actions .primary,.task-dialog-actions .secondary{flex:1}.task-resources a,.task-resources button{max-width:94px}}

/* Open and edit saved task details */
.task-card{cursor:pointer}.task-card button,.task-card a{cursor:pointer}.task-detail-dialog{width:min(610px,calc(100% - 32px))}.task-detail-meta{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin:18px 0}.task-detail-meta>#taskDetailSubject{max-width:100%;overflow:hidden;padding:5px 7px;border-radius:7px;background:var(--soft);color:var(--muted);font:600 9px "DM Mono",monospace;text-overflow:ellipsis;white-space:nowrap}.task-detail-section{padding:15px 0;border-top:1px solid var(--line)}.task-detail-section>p{margin:0 0 9px;color:var(--muted);font:500 9px "DM Mono",monospace;letter-spacing:.8px}.task-detail-description{color:var(--ink);font-size:13px;line-height:1.65;white-space:pre-wrap}.task-detail-resources{display:flex;flex-wrap:wrap;gap:7px}.task-detail-resources a,.task-detail-resources button,.task-detail-empty{max-width:100%;padding:8px 9px;border:0;border-radius:8px;background:var(--soft);color:var(--muted);font:600 10px "DM Sans",Arial,sans-serif;text-decoration:none}.task-detail-resources a:hover,.task-detail-resources button:hover{background:var(--page-alt);color:var(--ink)}.task-detail-resources button{cursor:pointer}.task-detail-empty{padding:0;background:transparent;font-weight:400}@media(max-width:760px){.task-detail-meta{margin:15px 0}.task-detail-description{font-size:12px}}

/* Refined task detail view */
.task-detail-dialog{width:min(790px,calc(100% - 32px));max-height:min(760px,calc(100svh - 32px));padding:0;overflow:auto;border-radius:24px}
.task-detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:28px 30px 23px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,rgba(184,238,112,.13),transparent 48%)}
.task-detail-heading{min-width:0}.task-detail-heading>p{margin:0 0 9px;color:var(--muted);font:500 10px "DM Mono",monospace;letter-spacing:1px}.task-detail-heading h2{margin:0;overflow:hidden;font-size:32px;letter-spacing:-1.2px;line-height:1.08;text-overflow:ellipsis;white-space:nowrap}
.task-detail-close{flex:0 0 auto;width:42px;height:42px;border:1px solid var(--line);border-radius:13px;background:var(--soft);color:var(--muted);font-size:23px;line-height:1}.task-detail-close:hover{border-color:#9dca75;background:var(--card);color:var(--ink)}
.task-detail-meta{gap:7px;margin:16px 0 0}.task-detail-meta .task-status,.task-detail-meta .task-priority,.task-detail-meta>#taskDetailSubject{min-height:27px;padding:0 9px;border-radius:8px;font:700 9px/27px "DM Mono",monospace;letter-spacing:.15px}.task-detail-meta>#taskDetailSubject{max-width:min(100%,300px);background:var(--soft);color:var(--muted);text-overflow:ellipsis;white-space:nowrap}
.task-detail-layout{display:grid;grid-template-columns:minmax(0,1.17fr) minmax(230px,.83fr);gap:14px;padding:22px 30px 24px}.task-detail-section{min-width:0;padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--soft)}.task-detail-main-section{min-height:218px}.task-detail-section-heading{display:flex;align-items:center;gap:8px;margin-bottom:14px}.task-detail-section-heading>span{display:grid;place-items:center;width:25px;height:25px;border-radius:8px;background:var(--card);color:#779c5a;font:700 13px/1 "DM Mono",monospace}.task-detail-section-heading>p{margin:0;color:var(--muted);font:600 9px "DM Mono",monospace;letter-spacing:.9px}
.task-detail-description{min-height:132px;color:var(--ink);font-size:14px;line-height:1.72;white-space:pre-wrap}.task-detail-resources-column{display:grid;align-content:start;gap:14px}.task-detail-resource-section{padding:16px}.task-detail-resource-section .task-detail-section-heading{margin-bottom:11px}.task-detail-resources{display:grid;gap:7px}.task-detail-resources a,.task-detail-resources button{display:flex;align-items:center;justify-content:flex-start;min-height:42px;max-width:100%;padding:0 11px;border:1px solid transparent;border-radius:10px;background:var(--card);color:var(--ink);font:600 10px "DM Sans",Arial,sans-serif;line-height:1.25;text-align:left;text-decoration:none}.task-detail-resources a:hover,.task-detail-resources button:hover{border-color:#a0ca7e;background:var(--page-alt);color:var(--ink)}.task-detail-resources button{cursor:pointer}.task-detail-empty{display:flex;align-items:center;min-height:42px;padding:0 11px;border:1px dashed var(--line);border-radius:10px;background:transparent;color:var(--muted);font:500 10px "DM Sans",Arial,sans-serif}
.task-detail-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 30px 26px;border-top:1px solid var(--line)}.task-detail-footer>p{margin:0;color:var(--muted);font-size:10px;line-height:1.45}.task-detail-footer>p span{margin-right:5px;color:#7fac5d}.task-detail-footer .task-dialog-actions{flex:0 0 auto;padding:0}.task-detail-footer .primary,.task-detail-footer .secondary{min-height:42px;padding:0 15px}
@media(max-width:760px){.task-detail-dialog{width:calc(100% - 20px);max-height:calc(100svh - 20px)}.task-detail-header{padding:22px 20px 19px}.task-detail-heading h2{font-size:25px}.task-detail-layout{grid-template-columns:1fr;padding:16px 20px 20px}.task-detail-main-section{min-height:0}.task-detail-description{min-height:88px;font-size:13px}.task-detail-resources-column{grid-template-columns:1fr}.task-detail-footer{align-items:stretch;flex-direction:column;padding:15px 20px 20px}.task-detail-footer .task-dialog-actions{width:100%}.task-detail-footer .primary,.task-detail-footer .secondary{flex:1}.task-detail-meta>#taskDetailSubject{max-width:100%}}

/* Direct task dragging */
.task-card{touch-action:none}.task-drag-mark{display:inline-grid;width:18px;height:18px;flex:0 0 18px;place-items:center;border-radius:6px;background:var(--soft);color:#76945f;cursor:grab;font:700 13px/1 "DM Mono",monospace;letter-spacing:-2px;touch-action:none;user-select:none}.task-drag-mark:active{cursor:grabbing}.task-card.pointer-dragging{opacity:.22;transform:scale(.98)}.task-drag-preview{position:fixed;top:0;left:0;z-index:80;width:min(310px,calc(100vw - 34px));margin:0;pointer-events:none;opacity:.96;box-shadow:0 20px 42px rgba(10,22,14,.24);will-change:transform}.task-drag-preview .task-remove,.task-drag-preview .task-move{display:none}body.task-dragging{cursor:grabbing;user-select:none}.kanban>[data-task-dropzone].drop-target{transform:translateY(-2px);box-shadow:inset 0 0 0 2px rgba(184,238,112,.24),0 12px 20px rgba(40,66,39,.09)}
@media(max-width:760px){.task-drag-preview{width:min(280px,calc(100vw - 28px))}.task-drag-mark{width:22px;height:22px;flex-basis:22px;font-size:14px}}

/* Personal profile */
.avatar{overflow:hidden;padding:0}.avatar img{width:100%;height:100%;object-fit:cover}
.profile-card .profile-cover{height:120px;background:radial-gradient(circle at 22% 118%,rgba(255,224,137,.47) 0 14%,transparent 14.5%),radial-gradient(circle at 88% 17%,rgba(255,255,255,.32) 0 13%,transparent 13.5%),linear-gradient(118deg,#a9e96a 0%,#65d4bd 33%,#6e8de6 68%,#b89be9 100%)}.profile-card .profile-cover:before{right:-17px;bottom:-76px;background:rgba(255,255,255,.25)}.profile-card .profile-cover:after{left:54%;top:-40px;background:rgba(255,246,204,.38)}.profile-card .profile-logo-mark,.avatar-editor-preview-cover .profile-logo-mark,.profile-preview-cover .profile-logo-mark{position:absolute;top:17px;left:19px;z-index:1;display:grid;width:34px;height:34px;place-items:center;border-radius:10px;background:#b8ee70;color:#163022;font:700 23px/1 Georgia,serif;font-style:italic;box-shadow:0 6px 14px rgba(24,52,35,.15)}.profile-avatar img{transition:transform .16s ease}.profile-preview-card .profile-preview-cover{position:relative;background:radial-gradient(circle at 16% 100%,rgba(255,223,126,.38) 0 16%,transparent 16.5%),linear-gradient(118deg,#a9e96a 0%,#65d4bd 33%,#6e8de6 68%,#b89be9 100%)}

/* Profile photo framing */
.avatar-editor-dialog{width:min(820px,calc(100% - 32px));margin:auto;padding:26px;border:1px solid var(--line);border-radius:24px;background:var(--card);color:var(--ink);box-shadow:0 30px 80px rgba(12,25,16,.34)}.avatar-editor-dialog::backdrop{background:rgba(10,20,14,.62);backdrop-filter:blur(6px)}.avatar-editor-copy{max-width:560px;margin:12px 0 20px;color:var(--muted);font-size:12px;line-height:1.55}.avatar-editor-layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(230px,.95fr);gap:16px}.avatar-editor-profile-preview{position:relative;overflow:hidden;min-height:300px;border:1px solid var(--line);border-radius:18px;background:var(--soft)}.avatar-editor-preview-cover{position:relative;height:128px;background:radial-gradient(circle at 80% 22%,rgba(255,255,255,.34) 0 14%,transparent 14.5%),linear-gradient(118deg,#a9e96a 0%,#65d4bd 33%,#6e8de6 68%,#b89be9 100%)}.avatar-editor-preview-cover .profile-logo-mark{top:16px;left:16px}.avatar-editor-photo{width:142px;height:142px;margin:-71px 0 0 23px;border-width:5px;background:#f2c89f;font-size:31px}.avatar-editor-preview-copy{display:grid;gap:5px;padding:13px 23px 16px}.avatar-editor-preview-copy p{margin:0;color:var(--muted);font:600 9px "DM Mono",monospace;letter-spacing:.9px}.avatar-editor-preview-copy strong{font-size:21px;letter-spacing:-.75px}.avatar-editor-preview-copy span{color:var(--muted);font-size:10px}.avatar-editor-mini-row{display:flex;align-items:center;gap:10px;padding:12px 17px;border-top:1px solid var(--line);background:var(--card);color:var(--muted);font-size:10px;line-height:1.4}.avatar-editor-mini-avatar{width:40px;height:40px;flex:0 0 40px;border-width:2px;font-size:10px}.avatar-editor-controls{display:grid;align-content:start;gap:14px;padding:19px;border:1px solid var(--line);border-radius:18px;background:var(--soft)}.avatar-editor-controls>label{display:grid;grid-template-columns:1fr auto;gap:9px;color:var(--ink);font:600 10px "DM Mono",monospace;letter-spacing:.35px}.avatar-editor-controls output{color:#638d47}.avatar-editor-controls input{grid-column:1/-1;width:100%;accent-color:#92cc61}.avatar-editor-controls>div{display:flex;align-items:center;justify-content:space-between;gap:9px;padding-top:3px}.avatar-editor-controls .secondary{min-height:37px;padding:0 10px;font-size:10px}.avatar-editor-controls .quiet-action{font-size:10px}.avatar-editor-dialog>.task-dialog-actions{margin-top:20px}
@media(max-width:760px){.avatar-editor-dialog{width:calc(100% - 20px);padding:20px}.avatar-editor-layout{grid-template-columns:1fr}.avatar-editor-profile-preview{min-height:284px}.avatar-editor-photo{width:126px;height:126px;margin-top:-63px}.avatar-editor-preview-copy strong{font-size:19px}.avatar-editor-dialog>.task-dialog-actions .primary,.avatar-editor-dialog>.task-dialog-actions .secondary{flex:1}}
.profile-card{overflow:hidden;border:1px solid var(--line);border-radius:18px;background:var(--soft)}.profile-cover{position:relative;height:96px;overflow:hidden;background:linear-gradient(120deg,#a9e46d 0%,#75d3c3 39%,#7096e8 70%,#dba3e6 100%)}.profile-cover:before,.profile-cover:after{position:absolute;border-radius:50%;content:""}.profile-cover:before{width:150px;height:150px;right:-38px;bottom:-90px;background:rgba(255,255,255,.28)}.profile-cover:after{width:86px;height:86px;left:46%;top:-50px;background:rgba(255,249,219,.35)}.profile-cover span{position:absolute;top:17px;left:19px;z-index:1;display:grid;width:30px;height:30px;place-items:center;border-radius:9px;background:rgba(255,255,255,.78);color:#24382b;font:700 19px/1 Georgia,serif}.profile-summary{position:relative;display:flex;align-items:flex-end;gap:14px;margin-top:-34px;padding:0 18px 17px}.profile-avatar-wrap{position:relative;flex:0 0 auto}.profile-avatar{display:grid;place-items:center;overflow:hidden;border:4px solid var(--card);border-radius:50%;background:#f2c89f;color:#294030;font:800 21px/1 "DM Sans",Arial,sans-serif;box-shadow:0 6px 14px rgba(24,36,28,.16)}.profile-avatar img{width:100%;height:100%;object-fit:cover}.profile-avatar-large{width:76px;height:76px}.profile-avatar-change{position:absolute;right:-1px;bottom:-1px;display:grid;width:27px;height:27px;place-items:center;padding:0;border:2px solid var(--card);border-radius:9px;background:var(--accent);color:var(--accent-ink);font-size:12px}.profile-avatar-change:hover{transform:translateY(-1px);box-shadow:0 5px 10px rgba(28,46,31,.17)}.profile-identity{min-width:0;padding-bottom:2px}.profile-identity p{margin:0 0 6px;color:var(--muted);font:500 8px "DM Mono",monospace;letter-spacing:1px}.profile-identity h3{overflow:hidden;margin:0;font-size:20px;letter-spacing:-.7px;text-overflow:ellipsis;white-space:nowrap}.profile-identity span{display:block;overflow:hidden;margin-top:5px;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.profile-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;border-top:1px solid var(--line);background:var(--line)}.profile-stats article{display:grid;gap:3px;padding:13px 17px;background:var(--soft)}.profile-stats strong{font-size:17px;letter-spacing:-.5px}.profile-stats span{color:var(--muted);font-size:9px}.profile-edit-form{display:grid;gap:9px;margin-top:16px}.profile-edit-form>label{display:grid;gap:7px;color:var(--muted);font:500 9px "DM Mono",monospace;letter-spacing:.7px;text-transform:uppercase}.profile-edit-form input{width:100%;height:42px;padding:0 12px;border:1px solid var(--line);border-radius:11px;outline:0;background:var(--soft);color:var(--ink);font:600 12px "DM Sans",Arial,sans-serif}.profile-edit-form input:focus{border-color:#98ce69;box-shadow:0 0 0 3px rgba(184,238,112,.18)}.profile-edit-form>div{display:flex;justify-content:flex-end;gap:8px}.profile-edit-form .primary,.profile-edit-form .secondary{min-height:39px;padding:0 13px;font-size:11px}.profile-preview-dialog{width:min(650px,calc(100% - 32px));margin:auto;padding:25px;border:1px solid var(--line);border-radius:22px;background:var(--card);color:var(--ink);box-shadow:0 28px 70px rgba(14,26,19,.28)}.profile-preview-dialog::backdrop{background:rgba(18,28,23,.56);backdrop-filter:blur(4px)}.profile-preview-card{position:relative;overflow:hidden;margin:19px 0 22px;padding:0 23px 23px;border:1px solid var(--line);border-radius:18px;background:var(--soft)}.profile-preview-cover{height:108px;margin:0 -23px;background:linear-gradient(120deg,#a9e46d,#75d3c3 39%,#7096e8 70%,#dba3e6)}.profile-avatar-preview{width:86px;height:86px;margin:-43px 0 0;font-size:25px}.profile-preview-email{margin:12px 0 0;color:var(--muted);font-size:11px}.profile-preview-copy{max-width:405px;margin:18px 0;color:var(--ink);font-size:13px;line-height:1.6}.profile-preview-stats{display:flex;flex-wrap:wrap;gap:7px}.profile-preview-stats span{padding:7px 9px;border-radius:8px;background:var(--card);color:var(--muted);font:500 9px "DM Mono",monospace}.profile-preview-stats strong{margin-right:3px;color:var(--ink);font-size:11px}
@media(max-width:760px){.profile-summary{gap:11px;padding:0 14px 14px}.profile-avatar-large{width:68px;height:68px}.profile-identity h3{font-size:18px}.profile-stats article{padding:12px 13px}.profile-edit-form>div{justify-content:stretch}.profile-edit-form .primary,.profile-edit-form .secondary{flex:1}.profile-preview-dialog{width:calc(100% - 20px);padding:20px}.profile-preview-card{padding:0 17px 18px}.profile-preview-cover{margin-inline:-17px}.profile-preview-copy{font-size:12px}}

/* Learn and Kids */
.learn-intro{max-width:590px;margin:-8px 0 25px;color:var(--muted);font-size:14px;line-height:1.6}.learn-track-tabs{display:flex;gap:5px;padding:4px;border:1px solid var(--line);border-radius:12px;background:var(--soft)}.learn-track-tabs button{min-height:34px;padding:0 15px;border:0;border-radius:8px;background:transparent;color:var(--muted);font:700 11px "DM Sans",Arial,sans-serif;cursor:pointer}.learn-track-tabs button.active{background:var(--card);color:var(--ink);box-shadow:0 2px 8px rgba(13,27,18,.12)}.learn-progress-card{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:24px 27px}.learn-progress-card p,.lesson-studio-top p,.lesson-overline,.kids-learning-hero p,.kids-challenge-copy p{margin:0 0 8px;color:var(--muted);font:600 10px "DM Mono",monospace;letter-spacing:1px}.learn-progress-card h3{margin:0;font-size:22px;letter-spacing:-.75px}.learn-progress-card>div>span{display:block;margin-top:7px;color:var(--muted);font-size:12px}.learn-progress-visual{display:grid;grid-template-columns:auto minmax(120px,220px);align-items:center;gap:6px 11px;min-width:min(300px,42%)}.learn-progress-visual strong{grid-row:span 2;font-size:26px;letter-spacing:-1px}.learn-progress-visual>div{height:8px;overflow:hidden;border-radius:10px;background:var(--line)}.learn-progress-visual i{display:block;height:100%;min-width:3px;border-radius:inherit;background:linear-gradient(90deg,#9ae76d,#6fcfb4 55%,#7797ec)}.learn-progress-visual small{grid-column:2;color:var(--muted);font-size:9px}.learn-layout{display:grid;grid-template-columns:minmax(270px,.77fr) minmax(0,1.25fr);gap:16px;margin-top:16px}.learn-course-list{display:grid;gap:9px}.learn-course-card{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr);gap:11px;min-height:104px;padding:15px 16px;border:1px solid var(--line);border-radius:17px;background:var(--soft);transition:transform .16s ease,box-shadow .16s ease}.learn-course-card.current{border-color:#a3df6b;box-shadow:0 9px 20px rgba(77,135,60,.12)}.learn-course-card.current:hover{transform:translateY(-2px)}.learn-course-icon{display:grid;width:40px;height:40px;place-items:center;border-radius:12px;background:var(--card);font:700 16px Georgia,serif}.learn-course-card small{color:var(--muted);font:600 8px "DM Mono",monospace;letter-spacing:.65px}.learn-course-card h3{margin:5px 0 5px;font-size:14px;letter-spacing:-.25px}.learn-course-card p{margin:0;padding-right:38px;color:var(--muted);font-size:10px;line-height:1.45}.learn-course-card>b{position:absolute;right:14px;bottom:15px;color:var(--muted);font-size:9px}.learn-course-card.current>b{color:#528c37}.learn-course-card.mint .learn-course-icon{background:#ddf8cf;color:#407d2d}.learn-course-card.peach .learn-course-icon{background:#ffe1c3;color:#bd6b39}.learn-course-card.violet .learn-course-icon{background:#e8ddff;color:#7250d7}.learn-course-card.blue .learn-course-icon{background:#d8edff;color:#3d78bf}.learn-course-card.yellow .learn-course-icon{background:#fff0b8;color:#aa7b17}.lesson-studio{overflow:hidden;padding:0}.lesson-studio-top{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding:25px 27px 21px;border-bottom:1px solid var(--line)}.lesson-studio-top h3{margin:0;font-size:26px;letter-spacing:-1px}.lesson-status{display:inline-flex;align-items:center;justify-content:center;min-height:29px;padding:0 10px;border-radius:9px;background:#fff0bc;color:#946d1a;font:700 10px "DM Mono",monospace;white-space:nowrap}.lesson-status.done{background:#dbf6cf;color:#3b7c2b}.lesson-explainer{display:grid;grid-template-columns:230px minmax(0,1fr);gap:25px;align-items:center;padding:28px 27px}.unit-circle-visual{position:relative;width:190px;height:190px;justify-self:center;border:2px solid #8ab5e7;border-radius:50%;background:radial-gradient(circle at center,rgba(118,157,235,.13),transparent 63%)}.unit-circle-visual .circle-axis{position:absolute;background:#a9b2a8}.unit-circle-visual .axis-x{top:50%;right:-14px;left:-14px;height:1px}.unit-circle-visual .axis-y{top:-14px;bottom:-14px;left:50%;width:1px}.unit-circle-visual i{position:absolute;top:18px;right:36px;width:70px;height:2px;background:#79ce8c;transform:rotate(-42deg);transform-origin:right}.unit-circle-visual b{position:absolute;top:34px;right:57px;color:#5b9d5f;font:700 17px Georgia,serif}.unit-circle-visual em{position:absolute;right:-18px;bottom:26px;color:#5b6f61;font:600 10px "DM Mono",monospace;font-style:normal}.lesson-overline{color:#6d9c51}.lesson-explainer h4{max-width:420px;margin:0 0 10px;font-size:21px;line-height:1.1;letter-spacing:-.65px}.lesson-explainer p:not(.lesson-overline){max-width:470px;margin:0;color:var(--muted);font-size:13px;line-height:1.65}.lesson-graph-link{margin-top:16px;min-height:35px;padding-inline:11px;font-size:10px}.lesson-practice{display:grid;grid-template-columns:1fr auto;gap:13px 20px;padding:21px 27px 24px;border-top:1px solid var(--line);background:linear-gradient(105deg,rgba(173,237,116,.13),rgba(116,154,234,.08))}.lesson-practice p{margin:0 0 5px;color:#548f3d;font:600 9px "DM Mono",monospace;letter-spacing:.8px}.lesson-practice h4{margin:0;font-size:17px;letter-spacing:-.35px}.lesson-options{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.lesson-options button{min-width:44px;height:37px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink);font-weight:700;cursor:pointer}.lesson-options button:hover{border-color:#8ecb63;background:#effbdd}.lesson-notice{grid-column:1/-1!important;margin:0!important;color:var(--muted)!important;font:500 11px "DM Sans",Arial,sans-serif!important;letter-spacing:0!important}.kids-learning-hero{display:flex;align-items:center;justify-content:space-between;gap:22px;overflow:hidden;padding:29px 31px;background:radial-gradient(circle at 88% 14%,rgba(255,236,148,.55) 0 11%,transparent 11.5%),radial-gradient(circle at 72% 122%,rgba(255,155,204,.45) 0 20%,transparent 20.5%),linear-gradient(120deg,#8de0bd,#76aeea 56%,#a889ed);color:#16302a}.kids-learning-hero p{color:#315d54}.kids-learning-hero h3{max-width:515px;margin:0;font-size:31px;letter-spacing:-1.25px}.kids-learning-hero h3 em{font-family:Fraunces,Georgia,serif;font-weight:500}.kids-learning-hero>div>span{display:block;max-width:430px;margin-top:10px;color:#315d54;font-size:13px}.kids-star-bank{display:grid;grid-template-columns:auto auto;align-items:center;gap:0 9px;min-width:142px;padding:16px 18px;border:1px solid rgba(24,71,58,.16);border-radius:17px;background:rgba(255,255,255,.54);color:#294c42}.kids-star-bank b{grid-row:span 2;font-size:29px;color:#ffb44b}.kids-star-bank strong{font-size:23px;letter-spacing:-.7px}.kids-star-bank span{font-size:9px}.kids-route-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:16px}.kids-route-card{min-height:190px;padding:21px;border:1px solid rgba(33,59,46,.12);border-radius:19px;color:#203b31}.kids-route-card span{display:inline-grid;width:31px;height:31px;place-items:center;border-radius:10px;background:rgba(255,255,255,.66);font:700 10px "DM Mono",monospace}.kids-route-card h3{margin:25px 0 8px;font-size:20px;letter-spacing:-.55px}.kids-route-card p{max-width:210px;margin:0;color:#41685b;font-size:12px;line-height:1.55}.kids-route-card b{display:block;margin-top:20px;font-size:10px}.kids-route-card.coral{background:#ffc7ac}.kids-route-card.sky{background:#bfe6fc}.kids-route-card.grape{background:#dbcbff}.kids-challenge{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:16px;padding:25px 28px}.kids-challenge-copy h3{margin:0;font-size:30px;letter-spacing:-1px}.kids-challenge-copy>span{display:block;margin-top:8px;color:var(--muted);font-size:12px}.kids-answer-form{display:grid;grid-template-columns:minmax(130px,1fr) auto;gap:10px;min-width:min(370px,100%)}.kids-answer-form label{display:grid;gap:6px;color:var(--muted);font:600 9px "DM Mono",monospace;letter-spacing:.6px;text-transform:uppercase}.kids-answer-form input{width:100%;height:39px;padding:0 11px;border:1px solid var(--line);border-radius:10px;outline:0;background:var(--soft);color:var(--ink);font:700 14px "DM Sans",Arial,sans-serif}.kids-answer-form input:focus{border-color:#79bcf6;box-shadow:0 0 0 3px rgba(105,176,239,.16)}.kids-answer-form .primary{align-self:end;min-height:39px;padding-inline:14px;font-size:10px}.kids-answer-form p{grid-column:1/-1;margin:0;color:var(--muted);font-size:10px;line-height:1.4}
@media(max-width:760px){.sidebar nav{grid-template-columns:repeat(6,1fr)}.learn-section-head{gap:13px}.learn-track-tabs{width:100%}.learn-track-tabs button{flex:1}.learn-intro{margin-top:2px;font-size:12px}.learn-progress-card,.kids-learning-hero,.kids-challenge{align-items:flex-start;flex-direction:column;padding:20px}.learn-progress-card h3{font-size:19px}.learn-progress-visual{width:100%;min-width:0}.learn-layout{grid-template-columns:1fr}.learn-course-list{grid-template-columns:1fr}.learn-course-card{min-height:94px}.lesson-studio-top,.lesson-explainer,.lesson-practice{padding:19px}.lesson-studio-top h3{font-size:22px}.lesson-explainer{grid-template-columns:1fr}.unit-circle-visual{width:156px;height:156px}.lesson-practice{grid-template-columns:1fr}.lesson-options{justify-content:flex-start}.kids-learning-hero h3{font-size:25px}.kids-route-grid{grid-template-columns:1fr;gap:10px}.kids-route-card{min-height:0;padding:18px}.kids-route-card h3{margin-top:18px}.kids-challenge-copy h3{font-size:26px}.kids-answer-form{width:100%;min-width:0;grid-template-columns:1fr}.kids-answer-form .primary{width:100%}}

/* Phone dashboard: keep the daily plan and navigation easy to scan and tap. */
@media(max-width:760px){
  .sidebar{height:calc(74px + env(safe-area-inset-bottom));padding:7px 7px calc(7px + env(safe-area-inset-bottom));border-top:1px solid rgba(255,255,255,.08);box-shadow:0 -12px 32px rgba(5,15,10,.2)}
  .sidebar nav{grid-template-columns:repeat(6,minmax(0,1fr));gap:4px}
  .nav-link{min-width:0;min-height:60px;gap:3px;padding:5px 2px;border-radius:14px;line-height:1.08;text-align:center}
  .nav-link i{height:19px;font-size:17px}
  .nav-link span{display:block;width:100%;overflow:hidden;font-size:0;text-overflow:ellipsis;white-space:nowrap}
  .nav-link span::after{content:attr(data-mobile-label);font-size:8px;font-weight:600}
  .main-column{padding-bottom:calc(82px + env(safe-area-inset-bottom))}
  .app-header,.view{padding-inline:20px}
  .app-header{min-height:96px;padding-top:23px;padding-bottom:17px}
  .app-header h1{font-size:25px;letter-spacing:-1px}
  .header-actions{gap:8px}
  .header-actions button,.avatar{height:44px}
  #themeButton{border-radius:14px}
  .overview-heading{gap:12px;margin:8px 0 22px}
  .overview-heading p{margin-bottom:11px}
  .overview-heading h2{max-width:19ch;font-size:clamp(28px,8.5vw,34px);line-height:1.03;letter-spacing:-1.55px}
  .overview-heading>div>span{max-width:34ch;margin-top:13px;font-size:13px;line-height:1.55}
  .today-schedule{margin-bottom:15px;padding:20px;border-radius:22px}
  .today-schedule-top{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px}
  .today-schedule-top p{margin-bottom:10px;font-size:10px}
  .today-schedule-top h3{font-size:25px;letter-spacing:-.9px}
  .schedule-actions{display:contents}
  .schedule-day-nav{grid-column:2;grid-row:1;align-self:end;gap:6px}
  .schedule-day-nav .icon-button{width:40px;height:40px;border-radius:13px}
  .schedule-expand{grid-column:1/-1;grid-row:2;width:100%;min-height:40px;margin-top:2px;padding:0 12px;border-radius:12px;font-size:10px;text-align:center}
  .today-class-list{margin-top:15px}
  .today-empty{align-items:stretch;flex-direction:column;min-height:118px;padding:16px;border-radius:14px}
  .today-empty p{font-size:13px;line-height:1.45}
  .today-empty .quiet-action{align-self:flex-start;min-height:32px;padding:0 10px;border-radius:9px;background:var(--card);color:var(--ink);font-size:10px}
  .stats{gap:10px;margin-top:15px}
  .stats article{min-height:138px;padding:15px;border-radius:18px}
  .stats i{width:38px;height:38px;margin-bottom:14px;border-radius:12px}
  .stats strong{margin-top:7px;font-size:27px}
}
@media(max-width:370px){
  .app-header,.view{padding-inline:16px}
  .nav-link span::after{font-size:7px}
  .today-schedule{padding:17px}
  .overview-heading h2{font-size:29px}
}

/* Phone Graph Lab: keep the canvas larger than its controls. */
@media(max-width:760px){
  .app-shell[data-view="graphs"] .main-column{padding-bottom:calc(74px + env(safe-area-inset-bottom))}
  .graph-screen,.graph-stage{min-height:calc(100svh - 74px - env(safe-area-inset-bottom))}
  .graph-corner-controls{top:9px;right:9px;width:calc(100% - 18px);padding:10px 11px;border-radius:17px}
  .graph-control-top{min-height:15px}
  .graph-control-top p,#graphStatus{font-size:9px}
  .graph-expression-list{gap:5px;margin-top:7px}
  .graph-expression-row{grid-template-columns:7px minmax(0,1fr) 25px;gap:5px;padding:4px}
  .graph-expression-row>label{grid-template-columns:27px minmax(0,1fr)}
  .graph-expression-row input{height:36px!important;font-size:11px!important}
  .graph-expression-colour{height:26px}
  .remove-graph-expression,.graph-expression-spacer{width:25px;height:25px}
  .graph-function-actions{gap:6px;margin-top:7px}
  .graph-add-function,.graph-keyboard-button{height:34px;padding:0 9px;border-radius:10px;font-size:9px}
  .graph-zoom-controls{grid-template-columns:36px 1fr 36px;gap:5px;margin-top:7px}
  .graph-zoom-controls button{height:36px;border-radius:10px}
  .graph-scale-label{display:none}
  .graph-save-panel{margin-top:8px;padding-top:8px}
  .graph-save-panel summary{font-size:9px}
  .math-keyboard{margin-top:7px;padding:8px}
  .math-key-grid button{min-height:27px}
  .graph-readout{right:9px;bottom:10px;left:9px;padding:10px 12px}
  .graph-readout strong{font-size:11px}
  .graph-intersections{right:9px;bottom:60px;width:calc(100% - 18px);max-height:132px}
}

/* Collapse graph controls to a single, unobtrusive button while reading the graph. */
.graph-collapse-button{display:grid;width:27px;height:27px;flex:0 0 27px;place-items:center;margin-left:4px;padding:0;border:1px solid rgba(218,238,224,.17);border-radius:8px;background:rgba(255,255,255,.07);color:#eaf4eb;font:700 17px/1 "DM Sans",Arial,sans-serif;cursor:pointer}.graph-collapse-button:hover{border-color:rgba(184,238,112,.52);background:rgba(184,238,112,.17)}.graph-corner-controls.graph-controls-collapsed{width:auto;padding:7px;border-radius:12px}.graph-controls-collapsed>:not(.graph-control-top){display:none}.graph-controls-collapsed .graph-live-dot,.graph-controls-collapsed .graph-control-top p,.graph-controls-collapsed #graphStatus{display:none}.graph-controls-collapsed .graph-control-top{min-height:0;gap:0}.graph-controls-collapsed .graph-collapse-button{margin:0}@media(max-width:760px){.graph-collapse-button{width:28px;height:28px;flex-basis:28px;border-radius:9px}.graph-corner-controls.graph-controls-collapsed{top:10px;right:10px;padding:6px}}

/* Phone navigation stays icon-first; long labels crowded the browser's bottom chrome. */
@media(max-width:760px){.sidebar{height:calc(66px + env(safe-area-inset-bottom));padding:7px 9px calc(7px + env(safe-area-inset-bottom))}.sidebar nav{gap:6px}.nav-link{min-height:52px;padding:0;border-radius:15px}.nav-link i{width:100%;height:auto;font-size:21px}.nav-link span{display:none}.nav-link.active{box-shadow:inset 0 0 0 1px rgba(184,238,112,.18),0 7px 15px rgba(4,16,10,.17)}.main-column{padding-bottom:calc(74px + env(safe-area-inset-bottom))}}

/* Mobile resilience: dynamic viewport units, iPhone safe areas and touch-sized editor controls. */
.app-shell,.file-page,.file-editor-shell{min-height:100dvh}.sidebar{height:100dvh}.sketch-board-page,.sketch-board{height:100dvh}.note-upload-status{min-height:18px;margin:10px 0 0;color:var(--muted);font-size:11px;line-height:1.45}.image-resize-handle:after{content:"\2198"}
.app-toast{position:fixed;right:18px;bottom:18px;z-index:1200;max-width:min(420px,calc(100vw - 36px));padding:13px 16px;border:1px solid var(--line);border-radius:14px;background:var(--panel);box-shadow:0 18px 48px rgba(0,0,0,.28);color:var(--ink);font-size:13px;line-height:1.45;opacity:0;pointer-events:none;transform:translateY(16px);transition:opacity .2s ease,transform .2s ease}.app-toast[data-tone="error"]{border-color:rgba(244,144,122,.5)}.app-toast.is-visible{opacity:1;transform:translateY(0)}
@media(max-width:760px){
  .file-editor-shell{padding:calc(14px + env(safe-area-inset-top)) 14px calc(30px + env(safe-area-inset-bottom))}
  .file-editor-topbar{gap:12px}
  .file-editor-actions{display:grid;grid-template-columns:40px repeat(3,minmax(0,1fr));gap:7px}
  .file-editor-actions .muted-label{grid-column:1/-1;margin:0}
  .file-editor-actions .icon-button,.file-editor-actions .button{width:100%;min-height:44px;padding-inline:7px;white-space:nowrap}
  .file-editor-workspace{margin-top:22px;padding:20px 14px 30px}
  .document-title-input{font-size:30px}
  .editor-toolbar{position:sticky;top:calc(6px + env(safe-area-inset-top));z-index:6;overscroll-behavior-inline:contain;scrollbar-width:none}
  .editor-toolbar::-webkit-scrollbar,.tool-island::-webkit-scrollbar{display:none}
  .rich-document{min-height:calc(100dvh - 310px);padding:22px 20px 44px;-webkit-user-select:text;user-select:text}
  .rich-document.with-text-lines{padding-left:48px;background-image:linear-gradient(90deg,transparent 0 31px,rgba(137,181,101,.34) 31px 32px,transparent 32px),repeating-linear-gradient(180deg,transparent 0 27px,rgba(126,147,133,.18) 27px 28px,transparent 28px 28.5px)}
  .sketch-board-page,.sketch-board{min-height:100dvh}
  .board-topbar{top:calc(8px + env(safe-area-inset-top));right:8px;left:8px;gap:7px;overflow:hidden;padding:7px 8px}
  .board-title input{width:100%}
  .board-actions{gap:4px}
  .board-icon,.board-action-link,.board-save{min-width:34px;height:38px;padding:0 8px}
  .tool-island{right:8px;bottom:calc(8px + env(safe-area-inset-bottom));left:8px;width:calc(100% - 16px);max-width:none;overflow-x:auto;overscroll-behavior-inline:contain;padding:6px;scrollbar-width:none}
  .tool-island>*{flex:0 0 auto}
  .tool-island-handle{min-width:28px;justify-content:center}
  .board-tool{width:38px;height:38px}
  .board-colour{width:38px;height:38px}
  .pen-size input{width:72px}
  .board-zoom{bottom:calc(64px + env(safe-area-inset-bottom));left:8px}
  .board-zoom button{min-height:38px}
  .board-sticky{max-width:calc(100vw - 28px)}
  .file-type-dialog,.task-dialog,.account-dialog,.profile-preview-dialog,.avatar-editor-dialog,.manage-item-dialog{max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 20px);overflow-y:auto;overscroll-behavior:contain}
  .app-toast{right:12px;bottom:calc(78px + env(safe-area-inset-bottom));left:12px;max-width:none}
}
@media(max-width:430px){
  .file-editor-actions{grid-template-columns:40px repeat(2,minmax(0,1fr))}
  .file-editor-actions .ghost-button:first-of-type{display:none}
}
