*{box-sizing:border-box}html,body{margin:0;padding:0;min-height:100%;width:100%;max-width:100%;overflow-x:hidden!important;touch-action:manipulation;overscroll-behavior-x:none}body{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif;color:#242235;background:#eef0ff;overflow-x:hidden;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0;background:linear-gradient(135deg,#e9e4ff 0%,#e8f4ff 42%,#fff0f6 72%,#e9e7ff 100%);z-index:-4}.aurora{position:fixed;border-radius:50%;filter:blur(55px);opacity:.48;z-index:-3;pointer-events:none}.a1{width:280px;height:280px;top:-80px;left:-70px;background:#b49cff}.a2{width:300px;height:300px;top:35%;right:-120px;background:#80c8ff}.a3{width:260px;height:260px;bottom:-100px;left:15%;background:#ffc0db}.app{width:min(100%,760px);max-width:100vw;overflow-x:clip;margin:auto;padding:calc(env(safe-area-inset-top) + 12px) 14px calc(env(safe-area-inset-bottom) + 104px)}.glass{background:rgba(255,255,255,.52);border:1px solid rgba(255,255,255,.78);box-shadow:0 16px 45px rgba(56,49,108,.12),inset 0 1px rgba(255,255,255,.7);backdrop-filter:blur(24px) saturate(160%);-webkit-backdrop-filter:blur(24px) saturate(160%)}.top{display:flex;justify-content:space-between;align-items:center;padding:7px 2px 17px}.brand,.eyebrow{font-size:9px;letter-spacing:1.9px;font-weight:900;color:#6859d5}.top h1{margin:4px 0;font-size:27px;letter-spacing:-1px}.top-actions{display:flex;gap:8px}.glass-icon{border:1px solid rgba(255,255,255,.82);background:rgba(255,255,255,.62);width:43px;height:43px;border-radius:15px;color:#514a78;box-shadow:0 8px 25px rgba(50,44,100,.1);font-size:20px}.glass-icon.plus{background:linear-gradient(135deg,#7661e8,#668fe9);color:#fff;border:0;font-size:26px}.nav{position:fixed;left:50%;transform:translateX(-50%);bottom:max(12px,calc(env(safe-area-inset-bottom) + 8px));width:min(680px,calc(100vw - 28px));height:66px;z-index:100;display:flex;align-items:center;justify-content:space-around;padding:5px 7px;border-radius:24px;overflow:hidden;background:rgba(255,255,255,.72);border:1px solid rgba(255,255,255,.9);box-shadow:0 12px 34px rgba(48,42,94,.18),0 2px 8px rgba(48,42,94,.08),inset 0 1px rgba(255,255,255,.9);backdrop-filter:blur(28px) saturate(180%);-webkit-backdrop-filter:blur(28px) saturate(180%);padding-bottom:max(5px,env(safe-area-inset-bottom))}.nav button{border:0;background:transparent;color:#817d95;height:52px;flex:1;max-width:96px;padding:5px 8px;border-radius:17px;font-size:19px;min-width:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;transition:transform .16s ease,background .16s ease,color .16s ease}.nav button:active{transform:scale(.94)}.nav button span{display:block;font-size:9px;margin-top:4px;font-weight:750;letter-spacing:-.1px}.nav button.active{background:rgba(111,92,225,.14);color:#5f51ce;box-shadow:inset 0 0 0 1px rgba(111,92,225,.07)}.hero{color:#fff;padding:23px;border-radius:30px;background:linear-gradient(135deg,rgba(110,91,224,.95),rgba(93,140,235,.93) 65%,rgba(134,102,224,.9));box-shadow:0 20px 50px rgba(92,80,185,.28);position:relative;overflow:hidden}.hero:after{content:"";position:absolute;width:250px;height:250px;right:-100px;top:-120px;border-radius:50%;background:rgba(255,255,255,.18);box-shadow:-80px 100px 0 25px rgba(255,255,255,.07)}.hero h2{margin:5px 0;font-size:24px;letter-spacing:-.6px}.eyebrow.light{color:#eeebff}.big-count{font-size:57px;line-height:1;font-weight:950;letter-spacing:-3px;margin-top:25px;position:relative;z-index:1}.count-label{font-size:9px;letter-spacing:2px;font-weight:900;color:#eeeaff;position:relative;z-index:1}.hero-date{font-size:12px;color:#eeeaff;margin-top:8px;position:relative;z-index:1}.readiness,.card,.welcome,.plan-note{background:rgba(255,255,255,.57);border:1px solid rgba(255,255,255,.8);box-shadow:0 14px 38px rgba(54,48,100,.1),inset 0 1px rgba(255,255,255,.7);backdrop-filter:blur(22px) saturate(150%);-webkit-backdrop-filter:blur(22px) saturate(150%);border-radius:22px;padding:16px;margin:11px 0}.readiness h2{margin:3px 0 11px}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.score{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:rgba(113,95,221,.13);color:#5e51ce;font-weight:950;font-size:18px}.progress{height:8px;background:rgba(108,99,151,.13);border-radius:99px;overflow:hidden}.progress i{height:100%;display:block;border-radius:99px;background:linear-gradient(90deg,#7661e8,#5b9af2)}.micro{display:flex;justify-content:space-between;color:#7c7890;font-size:10px;margin-top:9px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.stats div{background:rgba(255,255,255,.48);border:1px solid rgba(255,255,255,.7);border-radius:18px;padding:13px}.stats b{font-size:21px;display:block}.stats span{font-size:10px;color:#817e91}.section-title,.page-title{display:flex;align-items:end;justify-content:space-between;margin:22px 2px 9px}.section-title h2,.page-title h2{margin:3px 0;font-size:21px;letter-spacing:-.4px}.text-btn,.ghost,.small{border:1px solid rgba(255,255,255,.75);border-radius:12px;background:rgba(255,255,255,.55);color:#5e54c9;padding:9px 12px;font-weight:850}.primary{width:100%;border:0;border-radius:16px;padding:14px;background:linear-gradient(135deg,#7462e9,#6194ee);color:#fff;font-weight:900;box-shadow:0 12px 28px rgba(101,91,210,.25)}.primary.auto{width:auto}.start-main{margin:12px 0}.task{display:flex;align-items:center;gap:10px;padding:13px 0;border-bottom:1px solid rgba(112,105,143,.12)}.task:last-child{border-bottom:0}.task>div{flex:1;min-width:0}.task b{display:block;overflow:hidden;text-overflow:ellipsis}.muted{color:#7e7a90;font-size:11px;margin-top:3px}.check{width:29px;height:29px;flex:0 0 29px;border:2px solid #aaa0df;background:rgba(255,255,255,.7);border-radius:9px;color:#fff}.check.done{background:#6d5ce7;border-color:#6d5ce7}.tag,.priority,.day-tag{padding:6px 8px;border-radius:99px;background:rgba(110,92,222,.12);color:#5d50c8;font-size:8px;font-weight:900;white-space:nowrap}.tag.high,.priority.high{background:#ffe3eb;color:#c43e5c}.tag.medium,.priority.medium{background:#fff0d7;color:#a36a20}.tag.low,.priority.low{background:#e1f5e8;color:#37804b}.play{border:0;background:rgba(111,92,225,.1);color:#6255cf;border-radius:10px;padding:8px}.warn{width:27px;height:27px;border-radius:9px;background:#fff0d9;color:#ad7022;display:grid;place-items:center;font-weight:950}.welcome{text-align:center;padding:35px 22px}.orb{width:65px;height:65px;margin:0 auto 16px;border-radius:22px;display:grid;place-items:center;color:#fff;font-size:28px;background:linear-gradient(135deg,#7965ec,#6095ee);box-shadow:0 14px 28px rgba(95,82,205,.22)}.welcome h2{font-size:26px;margin:6px}.welcome p{color:#817e91;font-size:13px;line-height:1.55;margin:8px auto 20px;max-width:520px}.compact{padding:19px}.count-line{font-size:38px;font-weight:950;margin-top:20px;letter-spacing:-2px}.count-line small{font-size:10px;letter-spacing:1px}.plan-note{display:flex;gap:11px;align-items:center}.plan-note>span{width:38px;height:38px;border-radius:13px;background:rgba(111,92,225,.12);color:#665bd0;display:grid;place-items:center}.subject{padding:15px}.thin{height:6px;margin-top:9px}.chapter{display:flex;gap:10px;align-items:center;padding:14px 0;border-bottom:1px solid rgba(112,105,143,.12)}.chapter:last-child{border:0}.chapter-main{flex:1;min-width:0}.chapter-title{display:flex;gap:7px;align-items:center}.chapter-title b{overflow:hidden;text-overflow:ellipsis}.health{display:flex;gap:15px;align-items:center;padding:20px;border-radius:24px;background:linear-gradient(135deg,rgba(109,91,223,.94),rgba(93,139,234,.94));color:#fff;box-shadow:0 16px 35px rgba(85,77,174,.23)}.health-score{font-size:50px;font-weight:950}.health .muted{color:#e9e7ff}.health-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:11px}.health-grid .card{margin:0}.health-grid span{font-size:10px;color:#817e91;display:block}.health-grid b{font-size:21px;display:block;margin:4px 0 9px}.sheet{width:min(760px,100%);max-height:93vh;overflow:auto;border-radius:30px 30px 0 0;padding:20px}.glass-panel{background:rgba(248,248,255,.78);border:1px solid rgba(255,255,255,.9);box-shadow:0 20px 60px rgba(32,28,70,.24);backdrop-filter:blur(30px) saturate(150%);-webkit-backdrop-filter:blur(30px) saturate(150%)}.modal{position:fixed;inset:0;background:rgba(27,23,52,.4);backdrop-filter:blur(8px);z-index:20;display:flex;align-items:flex-end;justify-content:center}.modal[hidden]{display:none}.sheet-head{display:flex;justify-content:space-between;align-items:center}.sheet h2{margin:3px 0 15px}.steps{display:flex;gap:8px;align-items:center;overflow:auto;padding:9px 0 14px;color:#756f8c;font-size:9px}.steps b{padding:7px 9px;background:rgba(110,92,222,.1);border-radius:9px;white-space:nowrap;color:#5f56c7}.sheet label{display:block;font-size:12px;font-weight:850;margin:12px 0}.sheet input,.sheet select{display:block;width:100%;margin-top:6px;padding:13px;border:1px solid rgba(130,121,165,.2);border-radius:14px;background:rgba(255,255,255,.7);outline:none;color:#2b2840}.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.section-row{display:flex;justify-content:space-between;align-items:center;margin-top:18px}.editor-sub{background:rgba(255,255,255,.6);border:1px solid rgba(255,255,255,.8);border-radius:18px;padding:12px;margin:8px 0}.editor-sub input{margin:5px 0}.chapter-line{display:flex;gap:5px;align-items:center;margin:5px 0}.chapter-line .cname{flex:1;min-width:100px}.chapter-line select,.chapter-line .estimate{margin:0;padding:9px 5px;border-radius:10px}.chapter-line .estimate{width:68px}.danger{border:0;border-radius:11px;padding:9px 11px;background:#ffe7ed;color:#c33c5b;font-weight:850}.full{width:100%;margin-top:8px}.reuse-box{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:13px;border-radius:17px;background:rgba(110,92,222,.08);border:1px solid rgba(110,92,222,.1);margin-top:12px}.library-card{display:flex;justify-content:space-between;align-items:center;padding:15px;margin:9px 0;border-radius:17px;background:rgba(255,255,255,.62);border:1px solid rgba(255,255,255,.8)}.settings-list{border-radius:20px;overflow:hidden;border:1px solid rgba(255,255,255,.8);background:rgba(255,255,255,.42)}.settings-list button,.settings-list label{width:100%;display:flex;align-items:center;gap:12px;text-align:left;padding:15px;margin:0;border:0;border-bottom:1px solid rgba(100,93,130,.1);background:transparent;color:#2e2a40}.settings-list button:last-child{border-bottom:0}.settings-list button>span,.settings-list label>span{font-size:21px;width:27px;text-align:center}.settings-list div{flex:1}.settings-list b{display:block;font-size:13px}.settings-list small{display:block;color:#817e91;font-size:10px;margin-top:2px}.settings-list strong{color:#8b879b}.settings-list select{width:auto;margin:0;padding:7px 9px}.danger-setting{color:#bd405a!important}.settings-note{font-size:11px;color:#77738a;text-align:center;line-height:1.5;padding:16px 5px}.session-sheet{text-align:center}.session-head{display:flex;justify-content:space-between}.timer{font-size:65px;font-variant-numeric:tabular-nums;font-weight:950;letter-spacing:-3px;margin:30px 0 20px;color:#4f4a7a}.timer-actions{display:grid;gap:8px}.moods{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:18px}.moods button{border:0;background:rgba(255,255,255,.7);border-radius:15px;padding:11px 5px;color:#5c586f}.moods span{display:block;font-size:9px;margin-top:4px}.toast{position:fixed;left:50%;bottom:90px;transform:translate(-50%,20px);background:rgba(40,37,58,.92);backdrop-filter:blur(15px);color:#fff;padding:11px 16px;border-radius:15px;font-size:11px;opacity:0;pointer-events:none;transition:.2s;z-index:30}.toast.show{opacity:1;transform:translate(-50%,0)}.file-btn input{display:none}.test-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid rgba(112,105,143,.12)}.test-row:last-child{border-bottom:0}.test-score{text-align:right}.test-score b{display:block;font-size:21px}.test-score span{font-size:10px;color:#6b62d5;font-weight:900}.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.review-grid div{padding:12px;background:rgba(110,105,145,.07);border-radius:14px}.review-grid span{display:block;font-size:9px;color:#817e91}.review-grid b{font-size:19px}.compact-mode .card,.compact-mode .readiness{padding:13px;margin:8px 0}.compact-mode .task{padding:9px 0}@media(min-width:600px){.modal{align-items:center}.sheet{border-radius:30px;max-height:88vh}}@media(max-width:500px){.app{padding-left:12px;padding-right:12px}.chapter-line select{max-width:75px}.big-count{font-size:52px}.moods span{font-size:8px}.nav button{padding:7px 8px;min-width:52px}.top h1{font-size:24px}.card{border-radius:20px}.review-grid b{font-size:16px}}@media(min-width:760px){body{padding:12px 0}.app{padding-top:20px}}
/* v11 phone geometry + horizontal overflow lock */
*,*:before,*:after{max-width:100%}
main,#screen,.page,.content{min-width:0;max-width:100%;overflow-x:clip}
.card,.readiness,.welcome,.plan-note,.hero,.health,.subject,.editor-sub,.library-card,.reuse-box{width:100%;min-width:0;overflow:hidden}
.stats{width:100%;min-width:0}
.stats div{min-width:0;aspect-ratio:1.42/1;display:flex;flex-direction:column;justify-content:center}
.task,.chapter,.test-row{min-width:0}
.task>div,.chapter-main{min-width:0;overflow:hidden}
.chapter-title,.row{min-width:0}
.chapter-title b,.task b{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sheet{width:min(760px,calc(100vw - 20px));max-width:calc(100vw - 20px);min-width:0}
.chapter-line{min-width:0;max-width:100%;overflow:hidden}
.chapter-line .cname{min-width:0;width:100%}
@media(max-width:500px){
 .app{width:100%;padding-left:10px;padding-right:10px}
 .hero{min-height:205px;border-radius:26px;padding:20px}
 .readiness{min-height:112px}
 .card{min-height:74px}
 .stats{gap:7px}
 .stats div{aspect-ratio:1.18/1;padding:11px}
 .stats b{font-size:18px}
 .nav{width:calc(100vw - 20px);max-width:calc(100vw - 20px)}
 .nav button{min-width:0;flex:1;padding-left:4px;padding-right:4px}
 .sheet{width:calc(100vw - 14px);max-width:calc(100vw - 14px);padding:17px;border-radius:27px 27px 0 0}
 .two{grid-template-columns:1fr 1fr;min-width:0}
}

/* v12 — strict iPhone modal geometry and zero horizontal overflow */
html{width:100%;max-width:100%;overflow-x:hidden!important}
body{width:100%;max-width:100%;overflow-x:hidden!important;position:relative}
body,.app,main,#screen,.modal,.sheet,.sheet>*{min-width:0}
.app{width:100%;max-width:760px;margin-left:auto;margin-right:auto;overflow-x:hidden}
#screen{width:100%;max-width:100%;overflow-x:hidden}
.modal{width:100vw;max-width:100vw;left:0;right:0;overflow:hidden!important;padding:0 7px;box-sizing:border-box}
.sheet,.glass-panel{box-sizing:border-box;width:100%;max-width:680px;min-width:0;margin:0 auto;overflow-x:hidden!important;overflow-y:auto}
.sheet *{max-width:100%;box-sizing:border-box}
.sheet form{width:100%;max-width:100%;overflow:hidden}
.sheet label{width:100%;min-width:0}
.sheet input,.sheet select,.sheet textarea{width:100%;max-width:100%;min-width:0}
.sheet .two{width:100%;max-width:100%;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.sheet .reuse-box{width:100%;max-width:100%;min-width:0}
.sheet .section-row{width:100%;min-width:0}
.sheet .section-row>*{min-width:0}
.sheet .editor-sub{width:100%;min-width:0;overflow:hidden}
.sheet .chapter-line{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:5px;width:100%;max-width:100%;overflow:hidden}
.sheet .chapter-line .cname{width:100%;min-width:0}
.sheet .chapter-line select{width:auto;min-width:0}
.sheet .chapter-line .estimate{width:58px;min-width:0}
.sheet .steps{width:100%;max-width:100%;overflow:hidden;white-space:nowrap}
.sheet .library-card{width:100%;min-width:0}
.sheet .settings-list{width:100%;min-width:0}
.sheet .settings-list button,.sheet .settings-list label{min-width:0}
.sheet .settings-list div{min-width:0}
.session-sheet{width:100%;max-width:520px}
@media(max-width:600px){
 .modal{align-items:flex-end;padding:0}
 .sheet,.glass-panel{width:calc(100vw - 14px);max-width:calc(100vw - 14px);height:auto;max-height:88dvh;border-radius:28px 28px 0 0;padding:17px}
 .sheet-head{width:100%;min-width:0}
 .sheet-head>div{min-width:0;overflow:hidden}
 .sheet-head h2{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .two{gap:7px}
 .sheet .chapter-line{grid-template-columns:minmax(0,1fr) 68px 55px}
 .sheet .chapter-line select{max-width:68px}
 .sheet .chapter-line .estimate{max-width:55px}
 .session-sheet{width:calc(100vw - 14px);max-width:calc(100vw - 14px);max-height:82dvh}
}
@media(min-width:601px){
 .modal{align-items:center}
 .sheet,.glass-panel{width:min(680px,calc(100vw - 28px));border-radius:30px}
}

/* v13 — bottom navigation truly anchored to the viewport edge on iOS/PWA/web app */
.nav{
  position:fixed !important;
  left:50% !important;
  right:auto !important;
  bottom:0 !important;
  transform:translateX(-50%) !important;
  width:min(700px,calc(100% - 24px)) !important;
  max-width:calc(100vw - 24px) !important;
  height:calc(64px + env(safe-area-inset-bottom, 0px)) !important;
  min-height:calc(64px + env(safe-area-inset-bottom, 0px)) !important;
  padding:4px 6px env(safe-area-inset-bottom, 0px) !important;
  box-sizing:border-box !important;
  align-items:flex-start !important;
  border-radius:22px 22px 0 0 !important;
  margin:0 !important;
}
.nav button{
  height:54px !important;
  margin:0 !important;
  align-self:flex-start !important;
}
.app{
  padding-bottom:calc(76px + env(safe-area-inset-bottom, 0px)) !important;
}
@media(max-width:500px){
  .nav{
    width:calc(100vw - 20px) !important;
    max-width:calc(100vw - 20px) !important;
    border-radius:22px 22px 0 0 !important;
  }
}

/* v15 — floating bottom navigation for web app / PWA */
.nav{
  position:fixed !important;
  left:50% !important;
  right:auto !important;
  bottom:max(14px, env(safe-area-inset-bottom, 0px)) !important;
  transform:translateX(-50%) !important;
  width:min(680px, calc(100vw - 28px)) !important;
  max-width:calc(100vw - 28px) !important;
  height:68px !important;
  min-height:68px !important;
  padding:6px !important;
  box-sizing:border-box !important;
  align-items:center !important;
  border-radius:24px !important;
  margin:0 !important;
  overflow:visible !important;
  background:rgba(255,255,255,.72) !important;
  border:1px solid rgba(255,255,255,.9) !important;
  box-shadow:0 14px 35px rgba(53,45,104,.18), 0 3px 10px rgba(53,45,104,.08), inset 0 1px 0 rgba(255,255,255,.95) !important;
  backdrop-filter:blur(28px) saturate(175%) !important;
  -webkit-backdrop-filter:blur(28px) saturate(175%) !important;
}
.nav button{
  flex:1 1 0 !important;
  min-width:0 !important;
  max-width:none !important;
  height:56px !important;
  margin:0 !important;
  padding:5px 4px !important;
  align-self:center !important;
  border-radius:18px !important;
  transition:transform .18s ease, background .18s ease, color .18s ease !important;
}
.nav button:active{transform:scale(.94) !important}
.nav button.active{
  background:linear-gradient(135deg,rgba(119,99,232,.18),rgba(98,144,235,.14)) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.75) !important;
}
.app{
  padding-bottom:calc(98px + env(safe-area-inset-bottom, 0px)) !important;
}
@media(max-width:500px){
  .nav{
    width:calc(100vw - 24px) !important;
    max-width:calc(100vw - 24px) !important;
    bottom:max(12px, env(safe-area-inset-bottom, 0px)) !important;
    border-radius:23px !important;
  }
  .nav button{font-size:19px !important}
  .nav button span{font-size:9px !important;margin-top:4px !important}
}
/* v18 — merged editable, date-based adaptive planner */
.planner-toolbar{display:grid;grid-template-columns:42px 1fr 42px;gap:10px;align-items:center;margin:14px 0}.planner-toolbar label{display:flex;align-items:center;justify-content:center;gap:8px;padding:11px 12px;border-radius:17px;background:rgba(255,255,255,.58);border:1px solid rgba(255,255,255,.8);font-weight:900;color:#5d55bf}.planner-toolbar label span{font-size:12px}.planner-toolbar input{width:20px;border:0;background:transparent;color:transparent;opacity:.9}.plan-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:10px 0}.plan-actions .ghost{width:100%;border:1px solid rgba(255,255,255,.75);border-radius:16px;background:rgba(255,255,255,.55);color:#5e54c9;padding:13px 12px;font-weight:900}.manual-tag{background:#fff0d7;color:#a36a20}.adaptive-tag{background:#e6e3ff;color:#5c51c8}.date-row button{width:100%;display:flex;justify-content:space-between;align-items:center;padding:14px 0;border:0;border-bottom:1px solid rgba(112,105,143,.12);background:transparent;text-align:left;color:#302d42}.date-row:last-child button{border-bottom:0}.date-row span{font-size:10px;color:#817e91}.icon-sm{border:1px solid rgba(255,255,255,.75);border-radius:12px;background:rgba(255,255,255,.55);color:#5e54c9;padding:9px 12px;font-weight:900}
/* iPhone floating navigation: sized around the Home Indicator safe area */
.nav{left:50% !important;right:auto !important;transform:translateX(-50%) !important;width:min(390px,calc(100vw - 24px)) !important;bottom:calc(8px + env(safe-area-inset-bottom,0px)) !important;height:64px !important;min-height:64px !important;padding:5px !important;border-radius:22px !important;box-sizing:border-box !important;display:flex !important;gap:3px !important}.nav button{flex:1;min-width:0;height:54px;border-radius:17px !important;padding:6px 4px !important}.app{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px)) !important}.toast{bottom:calc(88px + env(safe-area-inset-bottom,0px)) !important}
@media(max-width:500px){.plan-actions{grid-template-columns:1fr}.planner-toolbar{margin-top:10px}.nav{width:calc(100vw - 20px) !important;border-radius:21px !important}.nav button{height:54px !important}}

/* v19 — modal isolation, iPhone sheet behavior, and backup-safe UI */
.nav{z-index:15 !important}
.modal{z-index:100 !important;isolation:isolate;overscroll-behavior:contain}
.modal .sheet{position:relative;z-index:1}
#libraryModal{z-index:130 !important}
#sessionModal{z-index:140 !important}
body.modal-open{overflow:hidden !important;position:fixed;width:100%;height:100%;touch-action:none}
body.modal-open .nav{pointer-events:none !important}
@media(max-width:600px){
 .modal{height:100dvh;min-height:100dvh}
 .modal .sheet{max-height:calc(100dvh - env(safe-area-inset-top,0px));padding-bottom:calc(18px + env(safe-area-inset-bottom,0px));overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
 #libraryModal .sheet,#settingsModal .sheet,#taskModal .sheet,#testModal .sheet,#mistakeModal .sheet{max-height:calc(100dvh - 8px)}
}
.toast{z-index:200 !important}
