:root{--bg:#f3f5f4;--paper:#fff;--nav:#173a38;--nav-dark:#112d2c;--ink:#1c3034;--muted:#697b7d;--line:#dce5e2;--teal:#14675e;--teal-soft:#e7f3ee;--amber:#986015;--amber-soft:#fff4de;--red:#aa3d38;--red-soft:#fff0ee;--radius:12px}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg);font:14px/1.5 'Segoe UI',system-ui,-apple-system,sans-serif}a{color:var(--teal);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled,input:disabled,textarea:disabled,select:disabled{cursor:default}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #61ab9f;outline-offset:3px}h1,h2,h3,p{margin-top:0}h1{font-size:31px;line-height:1.2;letter-spacing:-.7px;margin-bottom:9px}h2{font-size:19px;line-height:1.35;margin-bottom:12px;letter-spacing:-.2px}h3{font-size:16px;margin-bottom:8px}p{margin-bottom:14px}small{font-size:12px}hr{border:0;border-top:1px solid var(--line);margin:24px 0}.muted{color:var(--muted)}.eyebrow{color:var(--teal);font-size:11px;font-weight:750;letter-spacing:1.8px;margin-bottom:10px}.sidebar{position:fixed;inset:0 auto 0 0;width:224px;background:var(--nav);color:#e3eee9;padding:30px 20px;display:flex;flex-direction:column;z-index:10}.brand{display:flex;align-items:center;gap:11px;color:#fff;font-size:21px;font-weight:700;margin-bottom:49px;letter-spacing:-.5px}.brand:hover{text-decoration:none}.brand small{display:block;font-size:9px;color:#bdd3ca;font-weight:400;letter-spacing:.2px;margin-top:3px}.brand-mark{height:42px;width:42px;border:1px solid #7daf9a;border-radius:12px;display:grid;place-items:center;font-weight:650;color:#fff;background:#376052;font-size:26px;flex-shrink:0}.nav-label{font-size:10px;letter-spacing:1.7px;text-transform:uppercase;color:#b1c9c3;margin:0 12px 11px}.sidebar nav{display:grid;gap:7px}.sidebar nav a{padding:12px 11px;color:#c9dbd5;display:flex;align-items:center;gap:9px;font-size:12px;border-radius:8px;font-weight:600}.sidebar nav a:hover,.sidebar nav a.active{background:#2c5650;color:#fff;text-decoration:none}.sidebar nav span{width:20px;font-size:12px;color:#a7c6ba}.sidebar-bottom{display:flex;align-items:center;gap:9px;margin-top:auto;border-top:1px solid #41605b;padding-top:22px;font-size:11px}.sidebar-bottom strong{display:block;max-width:105px;overflow-wrap:anywhere}.sidebar-bottom small{display:block;color:#abc3bc;font-size:10px}.avatar{border-radius:8px;background:#3f625a;width:30px;height:30px;display:grid;place-items:center;flex-shrink:0}.sidebar-bottom form{margin-left:auto}.logout{background:none;border:none;color:#c0d5ce;font-size:23px;padding:4px}.app-body{margin-left:224px;min-height:100vh;display:flex;flex-direction:column}.topbar{height:67px;border-bottom:1px solid var(--line);background:#fafcfb;display:flex;align-items:center;justify-content:space-between;padding:0 38px;gap:20px;color:var(--muted);font-size:12px}.topbar a{color:var(--muted)}.version{font-size:10px;letter-spacing:.5px;border:1px solid var(--line);padding:5px 10px;border-radius:20px;white-space:nowrap}main{padding:32px 38px 42px;flex:1;width:100%;max-width:1550px;margin:0 auto}.app-footer{padding:19px 38px;border-top:1px solid var(--line);color:var(--muted);font-size:11px;display:flex;justify-content:space-between}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:26px}.page-heading p:last-child{margin-bottom:0}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:9px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:#fff;border:1px solid #cbdad3;border-radius:8px;padding:10px 15px;min-height:41px;color:var(--ink);font-size:12px;font-weight:650;white-space:nowrap}.button:hover{background:#f1f7f3;text-decoration:none}.button.primary{background:var(--teal);border-color:var(--teal);color:#fff;box-shadow:0 2px 3px #112e2d12}.button.primary:hover{background:#115a51}.button.wide{width:100%}.button.large{font-size:15px;padding:14px 24px}.text-link{font-weight:650;font-size:12px}.text-button{border:0;background:none;color:var(--teal);padding:8px 0;font-size:12px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:24px}.stats.three{grid-template-columns:repeat(3,minmax(0,1fr))}.stats>div{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:19px 20px;min-width:0}.stats span{display:block;font-size:11px;font-weight:650;color:var(--muted);margin-bottom:6px}.stats strong{font-size:29px;font-weight:650;letter-spacing:-.6px;white-space:nowrap}.stats small{display:block;color:var(--muted);font-size:10px;margin-top:5px}.stats .accent,.stats .balance{background:var(--teal-soft);border-color:#bbd9ca}.stats .accent strong,.stats .balance strong{color:var(--teal)}.stats .is-negative{background:var(--red-soft);border-color:#e8c6be}.stats .is-negative strong{color:var(--red)}.budget-stats strong{font-size:23px}.section-heading{display:flex;align-items:center;justify-content:space-between;margin:27px 0 15px;gap:12px}.section-heading h2{margin:0}.section-heading>.muted{font-size:12px}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(295px,1fr));gap:18px}.project-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;color:var(--ink);transition:border-color .15s,transform .15s}.project-card:hover{border-color:#74a88e;transform:translateY(-2px);text-decoration:none}.card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.project-symbol{display:grid;place-items:center;width:42px;height:42px;background:var(--teal-soft);border-radius:11px;color:var(--teal);font-size:24px}.project-card h2{font-size:20px;margin-bottom:6px}.project-card p{color:var(--muted);font-size:12px;margin-bottom:22px}.project-card-foot{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:15px;font-size:11px;color:var(--muted)}.project-card-foot>span:last-child{color:var(--teal);font-weight:600}.project-card-foot b{font-weight:600;color:var(--amber)}.archived{opacity:.75}.badge{display:inline-flex;font-size:10px;font-weight:700;padding:5px 9px;border-radius:6px;white-space:nowrap}.badge.green{background:var(--teal-soft);color:var(--teal)}.badge.amber{background:var(--amber-soft);color:var(--amber)}.badge.gray{background:#edf1ef;color:#667b75}.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:20px;overflow:hidden}.padded{padding:23px}.panel-heading{padding:19px 22px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px}.panel-heading h2{margin:0}.panel-heading>.muted{font-size:11px}.filters{display:flex;flex-wrap:wrap;gap:5px}.filters a{color:var(--muted);font-size:11px;padding:7px 9px;border-radius:7px;font-weight:600}.filters a.active{background:var(--teal-soft);color:var(--teal)}.filters b{font-size:10px;margin-left:4px}.table-scroll{overflow:auto}.group-table,.budget-table{width:100%;border-collapse:collapse;font-size:12px}.group-table th,.budget-table th{font-size:10px;text-align:left;text-transform:uppercase;letter-spacing:.6px;background:#f8faf8;color:var(--muted);padding:13px 16px;border-bottom:1px solid var(--line);font-weight:650;white-space:nowrap}.group-table td,.budget-table td{padding:18px 16px;border-bottom:1px solid #e8eeea;vertical-align:top}.group-table tbody tr:last-child td,.budget-table tbody tr:last-child td{border-bottom:0}.group-table td>small,.budget-table td>small{display:block;color:var(--muted);font-size:10px;margin-top:5px}.group-table td:first-child{min-width:140px}.group-table td>strong{font-size:12px}.member-name{display:block;font-size:11px;color:#60746d;white-space:nowrap}.numeric{font-variant-numeric:tabular-nums;white-space:nowrap}.negative{color:var(--red)!important}.table-actions{min-width:125px}.table-actions a{display:block;font-size:11px;margin-bottom:7px;white-space:nowrap}.attention-dot{display:inline-block;width:6px;height:6px;background:#c18c3d;border-radius:50%;vertical-align:middle;margin-right:4px}.group-table tbody tr:hover{background:#fbfdfa}.empty-state{text-align:center;border:1px dashed #bcd0c5;background:#fff;border-radius:12px;padding:45px 26px}.empty-state p{color:var(--muted);max-width:520px;margin:0 auto 20px}.empty-state.compact{padding:24px;border:0;background:none}.empty-state.compact p{margin-bottom:0}.quiet-note{color:var(--muted);font-size:12px;padding:22px 0;margin-top:12px;max-width:770px;line-height:1.7}.details-panel summary{padding:18px 22px;font-weight:650;cursor:pointer;font-size:12px}.prose{padding:0 22px 12px;max-width:850px;color:#49605a;line-height:1.7}.archive-form{text-align:right}.archive-form .text-button{color:var(--muted)}.form-layout{display:grid;grid-template-columns:minmax(0,720px) minmax(220px,330px);align-items:start;gap:24px}.field{display:grid;gap:7px;margin-bottom:19px}.field>label{font-size:12px;font-weight:650}.field>small{color:var(--muted);font-size:11px;line-height:1.5}.field input,.field textarea,.field select{width:100%;border:1px solid #c6d6cc;border-radius:7px;padding:11px 12px;background:#fff;color:var(--ink);min-width:0}.field input:focus,.field textarea:focus,.field select:focus,.amount-field input:focus,.entry-note textarea:focus{outline:0;border-color:#71a88e;box-shadow:0 0 0 3px #d9ebdf}.field textarea{resize:vertical}.field input:disabled,.field select:disabled,.field textarea:disabled{background:#f4f7f4;color:#60776b}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}.form-actions{display:flex;gap:9px;border-top:1px solid var(--line);padding-top:20px;margin-top:26px}.side-note{background:#e8efe9;border:1px solid #d5e2d7;border-radius:var(--radius);padding:24px;color:#496353;font-size:12px;line-height:1.8}.side-note h3{color:var(--nav)}.side-note p:last-child{margin-bottom:0}.errorlist{padding-left:17px;margin:0;color:var(--red);font-size:11px}.field.invalid input,.field.invalid textarea{border-color:#c97166}.messages{margin-bottom:20px}.message{border-radius:8px;padding:15px 18px;margin-bottom:13px;font-size:12px;border:1px solid var(--line);background:#edf3ef}.message.success{background:var(--teal-soft);border-color:#bfdccc;color:var(--teal)}.message.error{background:var(--red-soft);border-color:#e5c5bd;color:var(--red)}.message.info{background:#edf2f8;color:#485e7b;border-color:#cbd8e7}.message p{margin:8px 0 0}.workspace-columns{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:25px;align-items:start}.workspace-columns .section-heading{margin-top:0}.adult-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin-bottom:20px}.adult-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.adult-head{display:flex;gap:12px;padding:20px 18px 16px;align-items:center}.person-avatar{height:43px;width:43px;border-radius:13px;display:grid;place-items:center;background:#e5eee7;color:var(--teal);font-size:20px;flex-shrink:0}.adult-head small{font-size:10px;color:var(--muted)}.adult-head h3{margin:2px 0;font-size:18px}.adult-head p{margin:0;color:var(--muted);font-size:11px}.net-salary{padding:15px 18px;background:#f3f8f3;border-top:1px solid #e4ece5}.net-salary span{display:block;color:var(--muted);font-size:10px}.net-salary strong{display:block;font-size:22px;color:var(--teal);font-weight:650;margin-top:3px}.salary-details summary{padding:11px 18px;color:var(--muted);font-size:11px;cursor:pointer}.salary-details dl{margin:0;padding:0 18px 15px;font-size:11px}.salary-details dl>div,.compact-ledger>div{display:flex;justify-content:space-between;gap:14px;padding:7px 0}.salary-details dd,.compact-ledger dd{margin:0;font-variant-numeric:tabular-nums;white-space:nowrap}.salary-details dt{color:var(--muted)}.net{border-top:1px solid #c8dacc;margin-top:5px;padding-top:12px!important;color:var(--teal);font-weight:650}.children-list{display:flex;flex-wrap:wrap;gap:16px}.children-list>div{display:flex;gap:8px;align-items:center;font-size:12px}.children-list small{display:block;color:var(--muted);font-size:10px}.child-avatar{height:29px;width:29px;background:#f2f0e6;color:#827553;border-radius:9px;display:grid;place-items:center;font-weight:600}.children-panel h3{margin-bottom:16px}.condition-panel{border-color:#e1d2ac;background:#fffaf0;font-size:12px}.condition-panel p{color:#6d6552}.condition-panel strong{font-size:11px}.next-action{background:#fff;border:1px solid var(--line);border-top:3px solid var(--teal);border-radius:var(--radius);padding:23px}.next-action p{font-size:12px;color:var(--muted)}.next-action .eyebrow{color:var(--teal);font-size:10px}.compact-ledger{font-size:11px;margin:0}.compact-ledger dt{color:var(--muted)}.step-strip{display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:29px;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#fff}.step-strip>div{padding:15px 18px;display:flex;gap:9px;align-items:center;color:#9bad9f;border-right:1px solid var(--line);font-size:11px}.step-strip>div:last-child{border:0}.step-strip span{border:1px solid #d9e3da;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:9px}.step-strip .current{background:var(--teal-soft);color:var(--teal)}.step-strip .current span,.step-strip .complete span{background:var(--teal);border-color:var(--teal);color:#fff}.step-strip .complete{color:var(--teal)}.draw-start{text-align:center;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:40px;margin-bottom:20px}.draw-start h2{font-size:29px}.draw-start p:not(.eyebrow){max-width:540px;margin:0 auto 23px;color:var(--muted)}.draw-start small{display:block;margin-top:18px;color:var(--muted);font-size:11px}.draw-illustration{display:flex;justify-content:center;gap:8px;margin-bottom:23px}.draw-illustration span{height:58px;width:48px;background:var(--teal-soft);border:1px solid #c2d9c9;display:grid;place-items:center;border-radius:12px;color:var(--teal);font-size:27px;transform:rotate(-7deg)}.draw-illustration span:nth-child(2){background:none;border:0;transform:none;width:30px}.draw-illustration span:last-child{transform:rotate(7deg);background:#f6efd8;border-color:#e5d9ae;color:var(--amber)}.draw-status{display:block;margin-top:10px;color:var(--teal);font-size:12px}.review-note{border-top:1px solid var(--line);padding-top:16px;margin-top:15px;font-size:12px}.review-note>small{margin-left:10px;color:var(--muted)}.review-note p{margin-top:12px}.reference-note{font-size:11px;color:var(--muted);line-height:1.65;margin:17px 0 0}.review-banner{background:#fff8e9;border:1px solid #dfd2ae;border-radius:9px;padding:16px 20px;font-size:12px;margin-bottom:20px}.review-banner p{margin:8px 0 0}.income-details>summary{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;color:#516e5c}.income-details>summary>strong{font-weight:500;font-size:11px}.condition-text{font-size:12px;color:var(--amber)}.budget-tabs{display:flex;gap:7px;background:#f8faf7;border-bottom:1px solid var(--line);padding:12px 19px 0;overflow:auto}.budget-tabs button{border:1px solid transparent;border-radius:8px 8px 0 0;padding:11px 14px;background:transparent;color:var(--muted);font-weight:650;font-size:12px;white-space:nowrap}.budget-tabs button.active{background:#fff;color:var(--teal);border-color:var(--line);border-bottom-color:#fff;position:relative;top:1px}.budget-section{display:none}.budget-section.active{display:block}.ledger-heading,.ledger-row{display:grid;grid-template-columns:minmax(140px,1.15fr) 125px 100px minmax(155px,1fr);gap:14px;padding:14px 22px;align-items:start}.ledger-heading{font-size:10px;color:var(--muted);background:#fff;border-bottom:1px solid var(--line);font-weight:650;text-transform:uppercase;letter-spacing:.4px}.ledger-row{border-bottom:1px solid #e8eee8;min-height:62px}.ledger-row:nth-child(even){background:#fcfdfb}.ledger-row>div>label{font-size:12px;font-weight:600;display:block;padding-top:8px}.ledger-row small{display:block;font-size:10px;color:var(--muted);margin-top:3px;max-width:190px}.amount-field input{width:100%;border:1px solid #c6d6cc;padding:8px 10px;border-radius:6px;background:#fff;text-align:right;font-variant-numeric:tabular-nums;font-size:12px}.amount-field input:disabled{background:#f3f6f2;color:#45614e;border-color:#e2e9e0}.reference-cell{padding-top:8px;text-align:right;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.entry-note{font-size:11px}.entry-note summary{cursor:pointer;color:var(--teal);padding-top:8px;font-size:11px}.entry-note textarea{width:100%;padding:8px 10px;border:1px solid #c6d6cc;border-radius:6px;margin-top:8px;resize:vertical;min-height:58px;font-size:11px}.entry-note textarea:disabled{background:#f5f7f2;color:var(--muted)}.budget-footer{padding:17px 22px;background:#f8faf6;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:15px}.budget-footer>span{font-size:11px;color:var(--muted)}.budget-footer>span.dirty{color:var(--amber)}.review-layout{display:grid;grid-template-columns:minmax(0,1fr) 315px;gap:22px;align-items:start}.review-sidebar .panel{font-size:12px}.review-sidebar h2{font-size:17px}.flag{padding:11px 13px;border-radius:7px;background:#fff6e4;border-left:3px solid #c49a4a;margin:10px 0;font-size:11px;color:#7b642d}.flag.high{background:var(--red-soft);color:var(--red);border-color:#bf7563}.flag.info{background:#edf3ed;color:#516b57;border-color:#8fb096}.all-clear{font-size:12px;color:var(--teal)}.review-sidebar .field input[type=radio]{width:auto;margin:0 8px 0 0}.review-sidebar .field div label{font-size:12px;font-weight:400;display:block;margin:10px 0}.review-date{display:block;color:var(--muted);margin:8px 0}.auto-row{background:#f6faf5;color:#45684f}.note-cell{font-size:11px;min-width:190px;white-space:normal;overflow-wrap:anywhere;max-width:450px}.history-card>summary{padding:20px 23px;display:flex;justify-content:space-between;align-items:center;gap:25px;cursor:pointer}.history-card>summary strong{font-size:13px;margin-left:12px}.history-card>summary small{display:block;color:var(--muted);margin-top:6px;font-size:11px}.history-balance{font-weight:650;font-size:20px;white-space:nowrap}.history-balance small{font-weight:400}.public .app-body{margin:0}.public .topbar{padding-left:6vw;padding-right:6vw}.public main{max-width:1280px}.login-layout{min-height:calc(100vh - 220px);display:grid;grid-template-columns:1.1fr .85fr;gap:9vw;align-items:center;padding:15px 25px}.login-story .brand-mark{width:54px;height:54px;font-size:34px;margin-bottom:32px;background:var(--nav)}.login-story h1{font-size:62px;font-weight:650;letter-spacing:-2.4px;line-height:1.08;margin:16px 0 25px}.login-story>p:not(.eyebrow){font-size:16px;line-height:1.75;max-width:435px;color:var(--muted)}.story-steps{display:grid;gap:13px;margin-top:26px}.story-steps span{color:#628575;font-size:10px}.story-steps b{font-size:12px;color:#405d4c;margin-left:16px;font-weight:600}.login-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:34px 32px;box-shadow:0 14px 35px #143c2910}.login-card h2{font-size:27px;margin-bottom:10px}.login-card>p.muted{font-size:12px;margin-bottom:26px}.demo-help{border-top:1px solid var(--line);margin-top:25px;padding-top:18px;font-size:11px}.demo-help summary{color:var(--muted);cursor:pointer}.demo-help p{margin:12px 0 0;line-height:1.8}.print-actions{display:flex;gap:10px;margin-bottom:25px}.print-document{background:#fff;border:1px solid var(--line);padding:30px;border-radius:10px}.print-document h1{font-size:25px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(min-width:1550px){main{padding-top:40px}.stats{gap:19px}.ledger-row{padding-top:16px;padding-bottom:16px}}@media(max-width:1200px){.sidebar{width:198px;padding-left:15px;padding-right:15px}.app-body{margin-left:198px}main{padding:28px 25px}.topbar{padding:0 25px}.review-layout{grid-template-columns:1fr}.review-sidebar{display:grid;grid-template-columns:1fr 1fr;gap:18px}.review-sidebar .panel{margin:0}.workspace-columns{grid-template-columns:1fr 265px}.ledger-heading,.ledger-row{grid-template-columns:minmax(130px,1fr) 105px 80px minmax(145px,1fr);gap:12px;padding-left:18px;padding-right:18px}.form-layout{grid-template-columns:minmax(0,1fr) 270px}.budget-stats strong{font-size:20px}.stats>div{padding:17px}}
@media(max-width:1000px){.workspace-columns,.form-layout{grid-template-columns:1fr}.workspace-columns .next-action{margin-bottom:20px}.panel-heading{align-items:flex-start;flex-direction:column}.stats small{font-size:9px}.page-heading{align-items:flex-start}.login-layout{gap:40px;padding:10px}.login-story h1{font-size:48px}.adult-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.sidebar{position:static;width:auto;padding:17px 18px;display:block}.brand{margin:0 0 13px;font-size:19px}.brand-mark{width:34px;height:34px;font-size:23px}.brand small,.nav-label{display:none}.sidebar nav{display:flex;gap:3px;overflow:auto}.sidebar nav a{padding:8px 10px;white-space:nowrap;font-size:11px}.sidebar-bottom{position:absolute;right:17px;top:16px;margin:0;border:0;padding:0}.sidebar-bottom .avatar,.sidebar-bottom>div:not(.avatar){display:none}.app-body{margin:0}.topbar{height:52px;padding:0 18px;font-size:11px}.version{font-size:9px}main{padding:25px 18px}.app-footer{padding:17px 18px;font-size:9px}h1{font-size:26px}.page-heading{flex-direction:column;gap:15px;margin-bottom:22px}.page-heading .actions{width:100%}.stats,.stats.three{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.stats.three>div:last-child{grid-column:1/-1}.stats>div{padding:15px}.stats strong{font-size:25px}.budget-stats strong{font-size:20px}.stats small{font-size:10px}.adult-grid{grid-template-columns:1fr}.adult-head h3{font-size:18px}.workspace-columns{gap:5px}.step-strip>div{padding:11px 7px;font-size:9px;gap:5px}.step-strip span{width:21px;height:21px;font-size:8px;flex-shrink:0}.ledger-heading{display:none}.ledger-row{grid-template-columns:minmax(0,1fr) 110px;gap:9px 15px;padding:16px}.reference-cell{grid-column:2;text-align:right;padding:0}.reference-cell:before{content:'Referanse: ';font-size:9px}.entry-note{grid-column:1/-1;grid-row:auto}.entry-note textarea{min-height:68px}.budget-footer{flex-direction:column;align-items:stretch;padding:17px}.budget-footer .actions{justify-content:flex-end}.budget-tabs{padding-left:9px;padding-right:9px;gap:0}.budget-tabs button{font-size:11px;padding:10px}.review-sidebar{grid-template-columns:1fr}.padded{padding:20px}.form-grid{grid-template-columns:1fr}.login-layout{grid-template-columns:1fr;gap:28px;padding:0}.login-story{padding:10px 8px}.login-story .brand-mark{display:none}.login-story h1{font-size:43px;margin:14px 0 15px}.login-story>p:not(.eyebrow){font-size:14px}.story-steps{display:none}.login-card{padding:25px}.public main{padding:22px}.public .topbar{padding:0 22px}.history-card>summary{padding:18px;gap:12px}.history-card>summary strong{display:block;margin:9px 0 0}.history-balance{font-size:16px}.draw-start{padding:29px 18px}.draw-start h2{font-size:24px}.income-details>summary{padding:17px}.print-document{padding:20px}.print-actions{flex-wrap:wrap}.note-cell{min-width:140px}}
@media print{@page{size:A4;margin:14mm}.sidebar,.topbar,.app-footer,.print-actions,.messages{display:none!important}.app-body{margin:0}.app-body main{padding:0;max-width:none}.print-document{padding:0;border:0}.stats{gap:8px}.stats>div{padding:10px;border-radius:0;break-inside:avoid}.stats strong{font-size:17px}.table-scroll{overflow:visible}.budget-table{font-size:10px}.budget-table td,.budget-table th{padding:8px 6px}.budget-table th{font-size:9px}.budget-table thead{display:table-header-group}.budget-table tr{break-inside:avoid}.budget-table .note-cell{min-width:0;max-width:none;font-size:10px}.reference-note{font-size:9px}body{background:#fff;color:#000}.budget-table{width:100%;table-layout:fixed}.budget-table th:nth-child(1){width:24%}.budget-table th:nth-child(2){width:17%}.budget-table th:nth-child(3){width:15%}.budget-table th:nth-child(4){width:44%}.stats strong{white-space:normal}}
/* Elevens planlegging */
.ledger-heading,.ledger-row{grid-template-columns:minmax(180px,1.15fr) 135px minmax(170px,1fr)}
.entry-help{font-size:11px;margin-top:6px;max-width:100%}.entry-help summary{cursor:pointer;color:var(--teal);font-weight:650}.entry-help p{margin:10px 0;line-height:1.7}.entry-help a{font-weight:650}.amount-field input::placeholder{font-size:10px;color:#7c8a87}.planning-progress{color:var(--muted);font-size:12px;margin:0 0 16px}.automatic-income{background:#f1f7f3;border-bottom:1px solid var(--line);font-size:12px}.automatic-income p:last-child{margin-bottom:0}.reflection-panel{border-top:1px solid var(--line);background:#f8faf8}.reflection-panel .field{max-width:820px}.start-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.start-grid>div{min-width:0}.start-grid p{font-size:12px;line-height:1.7}.start-situation>p{max-width:850px}.start-situation .compact-ledger dd{white-space:normal;text-align:right;overflow-wrap:anywhere}.catalog-row{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:20px 0;border-top:1px solid var(--line)}.catalog-row>div:first-child{min-width:0;max-width:780px}.catalog-row p{font-size:12px;margin-bottom:7px}.catalog-row small{color:var(--muted)}.config-editor{max-width:850px}.field input[type=checkbox]{width:22px;height:22px;padding:0}.entry-help p,.catalog-row p{overflow-wrap:anywhere}
@media(max-width:1000px){.ledger-heading,.ledger-row{grid-template-columns:minmax(130px,1fr) 115px minmax(130px,1fr)}}
@media(max-width:760px){.ledger-row{grid-template-columns:minmax(0,1fr) 115px}.ledger-heading{display:none}.entry-note{grid-column:1/-1}.start-grid{grid-template-columns:1fr;gap:16px}.catalog-row{flex-direction:column;gap:12px}.budget-tabs button{padding:10px 7px;font-size:10px}}
@media print{.student-table th:nth-child(1){width:29%}.student-table th:nth-child(2){width:21%}.student-table th:nth-child(3){width:50%}.start-grid{grid-template-columns:1fr 1fr}}
/* v0.7: en arbeidsflate om gangen, uten rullende fanemeny */
.student-app .sidebar{width:184px;padding:23px 14px}.student-app .brand{font-size:18px;gap:8px;margin-bottom:32px}.student-app .brand small{font-size:8px;letter-spacing:0}.student-app .brand-mark{width:34px;height:36px;font-size:23px}.student-app .app-body{margin-left:184px}.student-app .topbar{height:46px;padding:0 24px}.student-app main{padding:20px 24px;max-width:1320px}.student-app .app-footer{padding:10px 24px}.student-app h1{font-size:25px}.student-app .page-heading{margin-bottom:15px;gap:12px}.student-app .page-heading .eyebrow{margin-bottom:5px}.student-app .page-heading .muted{font-size:12px}.student-app .button{padding:8px 12px;min-height:36px}.student-app .panel{margin-bottom:12px}.student-app .messages{margin-bottom:10px}.student-app .message{padding:10px 14px;margin-bottom:8px}.student-app .eyebrow{letter-spacing:1.2px}
.student-app .budget-tabs{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);overflow:visible;padding:6px 8px 0;gap:4px}.student-app .budget-tabs button{min-width:0;white-space:normal;padding:10px 8px;font-size:12px;line-height:1.3}.student-app [data-panel]{display:block}.student-app .tabs-ready [data-panel]:not(.active){display:none}.student-app [hidden]{display:none!important}
.story-teaser{display:flex;justify-content:space-between;align-items:center;gap:18px;background:#173a38;color:#fff;padding:19px 24px;border-radius:12px 12px 0 0}.story-teaser h2{margin:0;font-size:23px;max-width:700px}.story-teaser .eyebrow{color:#a4cfbb;margin-bottom:7px}.place-tag{border:1px solid #61867b;padding:6px 10px;border-radius:20px;font-size:12px;white-space:nowrap}.family-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:#e7f0eb;border:1px solid #cbded2;border-top:0;margin-bottom:16px;border-radius:0 0 12px 12px}.family-facts>div{padding:12px 24px;border-right:1px solid #cbded2}.family-facts>div:last-child{border:0}.family-facts span{display:block;font-size:11px;color:#526c61}.family-facts strong{font-size:17px}.mission-panel{padding:20px}.mission-intro h2{margin-bottom:4px}.mission-intro p{color:var(--muted);font-size:12px;margin-bottom:16px}.task-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.task-card{display:flex;gap:12px;border:1px solid var(--line);border-radius:9px;padding:14px;color:var(--ink);background:#fafcfb}.task-card:hover{background:#eff7f1;border-color:#80b29b;text-decoration:none}.task-number{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;background:#e3eee7;color:var(--teal);font-size:11px;font-weight:700;flex-shrink:0}.task-card strong{font-size:14px}.task-card p{font-size:12px;color:var(--muted);margin:4px 0 8px}.task-card small{font-size:11px;font-weight:650;color:var(--teal)}.discussion{border-left:3px solid #caad6f;background:#fff9e9;padding:10px 14px;margin:15px 0 0;font-size:12px}.discussion p{margin:3px 0 0}.mission-panel .details-panel{margin-top:12px;border-top:1px solid var(--line)}.mission-panel .details-panel summary{padding:11px 0}.mission-panel .prose{padding:0 0 3px;font-size:12px}.story-reading{max-width:1000px}.story-text{font-size:15px;line-height:1.75;max-width:900px}.story-bottom{display:grid;grid-template-columns:1.2fr 1fr;gap:24px;background:#f0f5f0;border-radius:9px;padding:16px 20px;margin-top:16px}.story-bottom h3{font-size:13px}.story-bottom p{font-size:13px;margin-bottom:0;line-height:1.7}.mission-panel .section-heading{margin-top:0}.mission-panel .adult-head{padding:13px 15px}.mission-panel .net-salary{padding:10px 15px}.mission-panel .net-salary strong{font-size:20px}.mission-panel .start-situation{border:0;padding:0;margin:0}.mission-panel .start-grid{gap:16px}.mission-panel .condition-panel{margin-top:12px;margin-bottom:0}.mission-panel .condition-panel summary{padding:12px 15px}.mission-panel .condition-panel .prose{padding:0 15px 6px}
.budget-command{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px;padding:10px 14px;background:#fff;border:1px solid var(--line);border-radius:9px;position:sticky;top:8px;z-index:5;box-shadow:0 3px 10px #173a3808}.budget-command>span{font-size:11px;color:var(--muted)}.budget-command>span.dirty{color:var(--amber)}.student-app .budget-stats{margin-bottom:9px;gap:9px}.student-app .budget-stats>div{padding:10px 14px}.student-app .budget-stats span{margin-bottom:3px}.student-app .budget-stats strong{font-size:21px}.student-app .planning-progress{font-size:11px;margin-bottom:10px}.student-app .automatic-income{padding:11px 18px;font-size:12px}.student-app .automatic-income p{margin:5px 0 0}.student-app .ledger-heading,.student-app .ledger-row{grid-template-columns:minmax(0,1fr) 125px 155px;gap:14px;padding:8px 18px;align-items:center}.student-app .ledger-heading{font-size:9px}.student-app .ledger-row{min-height:49px}.student-app .ledger-row>label{font-size:12px;font-weight:600}.student-app .amount-field input{padding:7px 10px;font-size:13px}.row-tools small{font-size:9px;color:var(--muted);margin:1px 0 0}.entry-open{border:0;background:none;color:var(--teal);padding:2px 0;font-size:11px;font-weight:600;text-align:left}.entry-pagination{padding:8px 18px;background:#fafcfb;display:flex;gap:12px;align-items:center;justify-content:flex-end;min-height:42px}.entry-pagination:empty{display:none}.entry-pagination span{font-size:11px;color:var(--muted);margin-right:auto}.entry-pagination button{background:#fff;border:1px solid var(--line);border-radius:6px;padding:5px 9px;font-size:11px}.entry-pagination button:disabled{opacity:.4}.student-app .reflection-panel{border-top:0;padding:18px}.student-app .reflection-panel h2{font-size:17px;margin-bottom:5px}.student-app .reflection-panel p{font-size:12px}.student-app .reflection-panel .field{margin-bottom:12px;gap:4px;max-width:none}.student-app .reflection-panel textarea{min-height:65px;padding:8px 11px}.capital-caption{font-size:11px;color:var(--muted);margin:0}.student-app .review-banner{padding:9px 14px;margin-bottom:10px}.review-banner summary{cursor:pointer;font-size:12px;font-weight:600}
.reading-dialog{border:1px solid #bdd3c8;border-radius:14px;box-shadow:0 20px 100px #12392c40;width:min(640px,calc(100vw - 32px));max-height:85vh;padding:22px;color:var(--ink);background:#fff;overflow:auto}.reading-dialog::backdrop{background:#122d2c80;backdrop-filter:blur(2px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:15px}.dialog-heading h2{margin:0;font-size:20px}.reading-dialog .entry-help{font-size:13px}.reading-dialog .entry-help h3{font-size:13px}.reading-dialog .entry-help p{line-height:1.75}.entry-reason{margin:20px 0 0;padding-top:16px;border-top:1px solid var(--line)}.entry-reason textarea{min-height:110px}.countdown{display:none;margin:14px auto 0;border-radius:14px;background:#e7f3ee;color:#14675e;width:70px;height:70px;font-size:40px;font-weight:700;align-items:center;justify-content:center}.countdown.is-visible{display:flex;animation:count-pulse .35s ease-out}.student-app .draw-start{padding:30px;margin-bottom:12px}.student-app .draw-start h2{font-size:25px}.student-app .draw-start p:not(.eyebrow){font-size:14px;line-height:1.7}.student-app .draw-start .draw-status{margin-top:8px}
@keyframes count-pulse{from{transform:scale(.8);opacity:.5}to{transform:scale(1);opacity:1}}
@media(prefers-reduced-motion:reduce){.countdown.is-visible{animation:none}.reading-dialog::backdrop{backdrop-filter:none}}
@media(max-width:950px){.student-app .sidebar{width:162px;padding-left:10px;padding-right:10px}.student-app .app-body{margin-left:162px}.student-app main{padding:16px}.student-app .topbar{padding:0 16px}.student-app .ledger-row,.student-app .ledger-heading{grid-template-columns:minmax(0,1fr) 110px 140px;gap:10px;padding-left:14px;padding-right:14px}.student-app .budget-stats strong{font-size:19px}.story-teaser{padding:17px 20px}.family-facts>div{padding:10px 15px}.family-facts strong{font-size:15px}}
@media(max-width:760px){.student-app .sidebar{position:static;width:auto;padding:12px 14px}.student-app .brand{margin-bottom:9px}.student-app .sidebar nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible;gap:3px}.student-app .sidebar nav a{justify-content:center;font-size:11px;padding:8px 5px;white-space:normal}.student-app .sidebar nav span{width:auto}.student-app .app-body{margin:0}.student-app .topbar{height:38px;padding:0 14px}.student-app .version{display:none}.student-app main{padding:15px 14px}.student-app .page-heading{flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px}.student-app .page-heading h1{font-size:22px}.student-app .page-heading .actions{width:auto}.student-app .app-footer{padding:10px 14px}.student-app .budget-tabs{grid-auto-flow:unset;grid-template-columns:repeat(3,minmax(0,1fr));padding:6px;gap:4px}.student-app .budget-tabs button{font-size:11px;border-radius:6px;padding:8px 4px}.student-app .budget-tabs button.active{top:0;border-bottom-color:var(--line)}.student-app .budget-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.student-app .budget-stats>div{padding:8px 12px}.student-app .budget-stats strong{font-size:19px}.student-app .ledger-heading{display:none}.student-app .ledger-row{grid-template-columns:minmax(0,1fr) 115px;padding:9px 12px;gap:4px 10px;min-height:64px}.row-tools{grid-column:1/-1;display:flex;gap:8px;align-items:center;justify-content:space-between}.row-tools small{margin:0}.student-app .ledger-row>label{padding:0}.student-app .budget-command{flex-wrap:wrap;padding:8px 10px;top:4px;gap:6px}.budget-command>span{flex:1 0 100%}.budget-command .actions{width:100%;justify-content:space-between}.budget-command .button{font-size:11px}.story-teaser{padding:16px;align-items:flex-start}.story-teaser h2{font-size:19px}.place-tag{font-size:10px;padding:4px 8px;white-space:normal}.family-facts{grid-template-columns:1fr}.family-facts>div{padding:7px 16px;display:flex;justify-content:space-between;gap:10px;border:0;border-bottom:1px solid #cbded2}.family-facts strong{font-size:13px}.family-facts span{font-size:11px}.mission-panel{padding:15px}.task-grid{grid-template-columns:1fr}.task-card{padding:12px}.task-card p{margin-bottom:5px}.story-bottom{grid-template-columns:1fr;gap:15px;padding:15px}.story-text{font-size:14px}.student-app .automatic-income{padding:10px 12px;font-size:11px}.student-app .draw-start{padding:24px 16px}.student-app .draw-start h2{font-size:22px}.reading-dialog{padding:18px}.student-app .reflection-panel{padding:15px}.entry-pagination{gap:8px;padding:8px 12px}}

.story-extra{margin-top:14px;border-left:3px solid #caad6f;background:#fff9e9;padding:12px 16px;font-size:12px}.story-extra p{margin:4px 0 0}.story-extra .text-button{padding-bottom:0}

.compact-start-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}.fact-card{background:#f6f9f6;border:1px solid var(--line);border-radius:9px;padding:15px}.fact-card h3{font-size:14px}.fact-card small{font-size:11px;color:var(--muted);display:block;margin-top:6px}.fact-card summary{cursor:pointer;font-size:13px;font-weight:650}.fact-card summary small{font-weight:400}.fact-card p{font-size:12px;line-height:1.7;margin:12px 0 0}.fact-card dd{white-space:normal;text-align:right}.fact-accordions{display:grid;gap:10px}@media(max-width:760px){.compact-start-grid{grid-template-columns:1fr;gap:10px}.fact-card{padding:13px}}

/* Kortere arbeidsflate på vanlige skole-PC-er. */
.budget-screen .page-heading .eyebrow{display:none}.budget-screen .page-heading h1{font-size:23px;margin-bottom:4px}.budget-screen .page-heading{margin-bottom:12px}.budget-screen main{padding-top:15px;padding-bottom:15px}.budget-screen .budget-stats>div{padding-top:8px;padding-bottom:8px}.budget-screen .budget-command{padding-top:8px;padding-bottom:8px}.budget-screen .ledger-row{padding-top:6px;padding-bottom:6px;min-height:46px}.student-app .task-card{padding:12px}.task-card p{margin:3px 0 5px}.mission-panel .details-panel summary{padding:8px 0}.student-app .story-teaser{padding-top:16px;padding-bottom:16px}.student-app .family-facts>div{padding-top:9px;padding-bottom:9px}@media(max-width:760px){.budget-screen .page-heading h1{font-size:21px}.budget-screen .ledger-row{padding-top:8px;padding-bottom:8px}.student-app .family-facts>div{padding-top:7px;padding-bottom:7px}}

.mission-extras{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.mission-extras details[open]{grid-column:1/-1}@media(min-width:761px) and (max-height:849px){.student-app:not(.budget-screen) .page-heading .eyebrow{display:none}.student-app:not(.budget-screen) .page-heading h1{margin-bottom:0}.student-app .story-teaser .eyebrow{display:none}.student-app .story-teaser h2{font-size:21px}.student-app .story-teaser{padding-top:13px;padding-bottom:13px}.student-app .family-facts>div{padding-top:7px;padding-bottom:7px}.student-app .family-facts{margin-bottom:12px}.mission-panel{padding:16px}.student-app .task-card{padding:10px}.mission-intro p{margin-bottom:12px}.discussion{margin-top:12px}.mission-extras .details-panel{margin-top:10px}}@media(max-width:760px){.mission-extras{grid-template-columns:1fr;gap:0}}
/* 0.8: alle poster i aktiv fane vises, og vurdering er synlig. */
.student-app .ledger-heading,.student-app .ledger-row{grid-template-columns:minmax(130px,1fr) 115px 125px 145px;gap:12px;padding:7px 16px;align-items:center}.assessment-field select{width:100%;font-size:11px;border:1px solid #c6d6cc;background:#fff;color:var(--ink);border-radius:6px;padding:7px 5px}.assessment-field select:focus{outline:2px solid #71a88e;outline-offset:1px}.student-app .ledger-row{min-height:47px;scroll-margin-top:95px}.student-app .ledger-row:focus-within{background:#f1f7f3}.student-app .amount-field input:disabled{color:#557564}.dialog-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:18px;border-top:1px solid var(--line);padding-top:15px}.dialog-actions .button:disabled{opacity:.45}.submission-problems{padding-left:20px;line-height:1.65;font-size:12px}.submission-problems li{margin:8px 0}.submission-problems a{font-weight:650;text-decoration:underline}.submission-warning,.housing-plan-note{padding:10px 14px;background:#fff8e9;font-size:12px;border-radius:7px;line-height:1.6}.housing-plan-note{border-radius:0;border-bottom:1px solid var(--line);background:#f1f7f3}.family-goal-reminder{padding:10px 14px;background:#eaf3ec;border-radius:7px;font-size:12px;margin-bottom:13px}.family-goal-reminder p{margin:4px 0 0}.tab-count{display:inline-block;margin-left:6px;font-size:9px;font-weight:500;color:var(--muted)}.budget-tabs .is-complete .tab-count{color:var(--teal)}.student-app .logout,.logout{font-size:11px;color:#e5f1ed;border:1px solid #759b8e;border-radius:6px;padding:6px 8px;white-space:nowrap}.student-app .sidebar-bottom>div:not(.avatar){max-width:65px}.student-app .sidebar-bottom strong{max-width:65px}.student-app .sidebar-bottom .avatar{display:none}.student-app .sidebar-bottom{gap:6px}
@media(max-width:1050px) and (min-width:761px){.student-app .ledger-heading,.student-app .ledger-row{grid-template-columns:minmax(100px,1fr) 100px 110px 115px;gap:8px;padding-left:12px;padding-right:12px}.student-app .entry-open{font-size:10px}.student-app .row-tools small{font-size:8px}.tab-count{display:block;margin-left:0}}
@media(max-width:760px){.student-app .ledger-row{grid-template-columns:minmax(0,1fr) 115px;gap:6px 10px;padding:10px 12px}.student-app .ledger-heading{display:none}.student-app .assessment-field{grid-column:1;grid-row:2}.student-app .row-tools{grid-column:2;grid-row:2;display:block}.student-app .row-tools small{font-size:8px}.student-app .ledger-row>label{font-size:12px}.tab-count{margin-left:4px}.dialog-actions{flex-wrap:wrap}.student-app .sidebar-bottom{right:14px;top:14px}.student-app .brand{padding-right:70px}}

#submission-review .submission-problems{max-height:35vh;overflow-y:auto;padding:4px 8px 4px 24px;margin:10px 0;display:grid;grid-template-columns:1fr 1fr;gap:0 24px;border-block:1px solid var(--line)}#submission-review .submission-problems:empty{display:none}#submission-review .submission-problems li{margin:6px 0;line-height:1.4}#submission-review .dialog-actions{flex-wrap:wrap}@media(max-width:600px){#submission-review .submission-problems{grid-template-columns:1fr}}
.learning-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:0;margin:8px 0 18px;list-style:none;font-size:12px}.learning-steps li{display:flex;gap:9px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:9px 12px;background:#fff;color:var(--muted)}.learning-steps li>span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#edf1ee;flex-shrink:0}.learning-steps small{display:block;font-size:10px;margin-top:2px}.learning-steps .current{border-color:#529d80;background:#eaf4ee;color:var(--ink);font-weight:650}.learning-steps .current>span{background:var(--teal);color:white}.learning-steps .done>span{background:#dceee3;color:#1d6349}.task-required{border:2px solid #599a7e!important;background:#eef7f1!important}.task-done .task-number{background:#dceee3}.names-instruction{font-size:13px;line-height:1.6;color:#355d4d}.assessment-short-help{font-size:11px;color:#486451;margin:8px 0 4px;line-height:1.7}.assessment-guide{font-size:12px;margin-bottom:10px}.assessment-guide summary{cursor:pointer;color:var(--teal);font-weight:650}.assessment-examples{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:12px;background:#f0f6f2;border-radius:7px}.assessment-examples p{margin:0}.assessment-examples strong,.assessment-examples span{display:block;margin-bottom:4px}.teacher-progress-note{font-size:12px;padding:10px 14px;background:#edf5ef;border-radius:7px;margin-bottom:14px}.student-app.budget-screen .learning-steps{margin-bottom:10px}.student-app.budget-screen .learning-steps li{padding:6px 10px}.student-app.budget-screen .learning-steps small{display:none}@media(max-width:900px){.learning-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.assessment-examples{grid-template-columns:1fr}.learning-steps li{font-size:11px;padding:7px}}
.given-payment{display:block;font-size:10px;font-weight:400;color:#4d715d;margin-top:2px}.student-loan-facts{padding:12px 16px;border:1px solid var(--line);border-radius:8px;margin:12px 0;background:#f5f9f6;font-size:12px}.student-loan-facts h3{font-size:14px;margin:0 0 8px}.student-loan-facts small{display:block;color:var(--muted);margin-top:4px;line-height:1.5}.student-loan-total{padding-top:8px;border-top:1px solid var(--line)}.adult-loan-status{font-size:11px;color:#456950;padding:8px 0;margin:0}.snapshot-loans{font-size:12px;margin:12px 0}
.form-layout>section .adult-grid{grid-template-columns:1fr}.form-layout>section .net-salary{display:flex;justify-content:space-between;align-items:center;gap:10px}.form-layout>section .net-salary strong{font-size:20px;white-space:nowrap}.form-layout>section .adult-head{padding:12px 16px}.form-layout>section .adult-loan-status{padding:5px 16px}.form-layout>section .salary-details{padding:8px 16px}
.finance-brief{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}.finance-fact{border:1px solid var(--line);border-radius:9px;background:#fff;padding:12px 14px;min-width:0}.finance-fact.capital-fact{background:#edf5ef}.finance-fact .fact-label{display:block;font-size:11px;font-weight:650;color:#527161}.finance-fact .fact-total{display:block;font-size:22px;line-height:1.25;margin:4px 0 8px;color:#1c5650}.finance-fact dl{margin:6px 0;font-size:11px}.finance-fact dl>div{display:flex;justify-content:space-between;gap:10px;padding:3px 0}.finance-fact dd{margin:0;white-space:nowrap;font-weight:650}.finance-fact dt{overflow-wrap:anywhere}.finance-fact small{display:block;font-size:10px;color:var(--muted);line-height:1.5}.capital-adjustment{border-top:1px solid #cddfd1;font-weight:650}.payment-fact{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:5px;font-size:11px;padding:6px 0;border-top:1px solid var(--line)}.payment-fact>div{min-width:0}.payment-fact>div>span{display:block}.fact-tag{font-size:9px;font-weight:650;padding:3px 5px;border-radius:4px}.fact-tag.missing{background:#fff1d8;color:#795000}.fact-tag.entered{background:#e6f1e9;color:#225f46}@media(max-width:900px){.finance-fact{padding:10px}.finance-fact .fact-total{font-size:18px}}@media(max-width:600px){.finance-brief{grid-template-columns:repeat(2,minmax(0,1fr))}.commitments-fact{grid-column:1/-1}.finance-fact dl>div{flex-wrap:wrap;gap:0}.finance-fact .fact-total{font-size:19px}}@media print{.finance-brief{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));break-inside:avoid}.finance-fact{padding:8px;border:1px solid #ccc;background:#fff!important}.finance-fact .fact-total{font-size:16px}.fact-tag{border:1px solid #aaa;background:#fff!important}}
.payment-fact>div>span{display:inline;margin-left:4px}.payment-fact>div>span small{margin-left:0}.full-grid{grid-column:1/-1}.family-summary{font-size:12px;color:var(--muted);margin:8px 0}

.note-requirement{font-size:.72rem;line-height:1.25;color:#78531a;font-weight:650}.family-daily-life{margin-bottom:12px}@media print{.family-daily-life{display:block}.family-daily-life>div{display:block!important}}

.row-tools .note-requirement{color:#78531a;background:#fff3db;padding:2px 5px;border-radius:4px;font-weight:650}.family-name-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px}.family-name-fields>.field:last-child{grid-column:1/-1}@media(max-width:600px){.family-name-fields{grid-template-columns:1fr}}

/* 0.12: kompakte rader og en oppsummering som følger budsjettet. */
.project-time-note{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:11px;color:var(--muted);margin:0 0 12px}.project-time-note strong{color:var(--teal)}
.student-app .ledger-heading,.student-app .ledger-row{grid-template-columns:minmax(130px,1fr) 115px 125px 215px}
.student-app .row-tools .entry-open{white-space:nowrap;display:inline-flex;align-items:center;gap:4px}
.student-app .row-tools small{max-width:none}
.student-app .row-tools .note-requirement{white-space:nowrap;display:block;width:max-content;color:#8a4b0b;background:#fff1d9;font-weight:750;font-size:10px;padding:2px 6px;line-height:1.35}
.budget-follow-summary{position:absolute;top:calc(100% + 5px);left:0;right:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:8px 12px;background:#fff;border:1px solid #bcd5ca;border-radius:8px;box-shadow:0 4px 12px #173a3820}
.budget-follow-summary[hidden]{display:none}
.budget-follow-summary>div{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-width:0;padding:2px 4px}
.budget-follow-summary span{font-size:10px;color:var(--muted)}
.budget-follow-summary strong{font-size:15px;white-space:nowrap;font-variant-numeric:tabular-nums}
.budget-follow-summary .balance{background:var(--teal-soft);border-radius:5px;padding:2px 7px}
.budget-follow-summary .balance strong{color:var(--teal)}
.budget-follow-summary .balance.is-negative{background:var(--red-soft)}
.budget-follow-summary .balance.is-negative strong{color:var(--red)}
.student-app .ledger-row{scroll-margin-top:135px}
@media(max-width:1050px) and (min-width:761px){.student-app .ledger-heading,.student-app .ledger-row{grid-template-columns:minmax(100px,1fr) 100px 110px 200px;gap:8px}.budget-follow-summary>div{flex-direction:column;gap:0}.budget-follow-summary strong{font-size:14px}}
@media(max-width:760px){.student-app .ledger-row{grid-template-columns:minmax(0,1fr) 115px;gap:6px 10px}.student-app .row-tools{grid-column:1/-1;grid-row:3;display:flex;justify-content:space-between;gap:8px;align-items:center}.student-app .row-tools .note-requirement{font-size:9px}.budget-follow-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:3px 8px;padding:6px 8px}.budget-follow-summary>div{flex-direction:row;gap:4px}.budget-follow-summary strong{font-size:13px}.student-app .ledger-row{scroll-margin-top:180px}}
@media print{.budget-follow-summary,.project-time-note{display:none!important}}

/* 0.13: forklaringer bruker hele bredden; handlingene er alltid synlige. */
.adult-loan-status{margin:0;padding:8px 18px;color:var(--muted);font-size:12px}
.ledger-row .reading-dialog[open]{display:flex;flex-direction:column;width:min(720px,calc(100vw - 24px));max-height:90vh;max-height:90svh;overflow:hidden;padding:18px}
.reading-dialog .dialog-heading{flex:none;margin-bottom:8px}
.reading-dialog .entry-help{min-height:0;overflow:auto;flex:0 1 auto;margin-bottom:8px}
.reading-dialog .entry-help p{line-height:1.5;margin-bottom:8px}
.reading-dialog .entry-help h3{margin-bottom:6px}
.reading-dialog .entry-reason{flex:none;margin:4px 0 8px}
.reading-dialog .entry-reason small{display:block;width:100%;max-width:none!important;line-height:1.4}
.reading-dialog .entry-reason textarea{min-height:58px}
.reading-dialog .dialog-actions{flex:none;margin-top:4px;padding-top:10px;background:white}
.reading-dialog .submission-problems{min-height:0;overflow:auto}
.reading-dialog>p{flex:none;margin-bottom:8px}
.amount-limit-note,.catalogue-notice{font-size:11px;color:var(--muted);margin:6px 0}
.money-limit-message{display:block;color:var(--red);font-size:10px;line-height:1.3}
.catalogue-table input[type=checkbox]{width:18px;height:18px;vertical-align:middle;accent-color:var(--teal)}
.catalogue-table .actions{gap:5px}.catalogue-table .button{padding:6px 9px;min-height:32px}.catalogue-table td{padding:12px}
.budget-stats strong,.budget-follow-summary strong,.fact-total{max-width:100%;overflow:hidden;text-overflow:ellipsis;display:block}
@media(max-width:760px){.ledger-row .reading-dialog[open]{padding:14px}.reading-dialog .entry-reason textarea{min-height:52px}.reading-dialog .dialog-actions .button{padding:8px 10px}.adult-loan-status{padding-left:16px;padding-right:16px}}

.mission-panel .adult-loan-status{padding-left:15px;padding-right:15px}
/* Version 0.14: clear teacher workflows and application-owned messages. */
.tabs-ready [data-panel]{display:none}.tabs-ready [data-panel].active{display:block}
.tab-list{display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin-bottom:20px;padding:0 0 10px}.tab-list button{padding:10px 14px;background:transparent;border:1px solid transparent;border-radius:8px;color:var(--muted);font-weight:650}.tab-list button.active{background:var(--teal-soft);color:var(--teal);border-color:#bfd6ca}
.settings-section{border-top:1px solid var(--line);margin-top:16px;padding:16px 0}.settings-section>summary{font-size:15px;font-weight:700;cursor:pointer}.settings-section>p{color:var(--muted);margin-top:12px}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 20px}.inline-details{margin:20px 0;border-top:1px solid var(--line);padding-top:16px}.inline-details>summary{font-weight:650;cursor:pointer}.inline-details>p{margin-top:12px}.field small{max-width:none}.field textarea{width:100%}.field input[type=checkbox]{width:auto}.config-editor .field{max-width:760px}
.admin-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.admin-card{padding:24px;color:var(--ink);margin:0}.admin-card:hover{border-color:var(--teal);text-decoration:none}.admin-card>span{color:var(--teal);font-size:12px;font-weight:700}.admin-card h2{margin:10px 0}.admin-card p{color:var(--muted);margin:0}.admin-cards+details{margin-top:24px}.table-scroll>table{width:100%;border-collapse:collapse}.table-scroll>table:not(.budget-table):not(.group-table) th,.table-scroll>table:not(.budget-table):not(.group-table) td{text-align:left;padding:14px 18px;border-bottom:1px solid var(--line);vertical-align:top}.table-scroll td small{display:block;color:var(--muted)}
.action-menu{position:relative}.action-menu>summary{list-style:none;cursor:pointer;padding:10px 14px;border:1px solid #cbdad3;background:white;border-radius:8px;font-size:12px;font-weight:650}.action-menu[open]{z-index:4;background:white;box-shadow:0 8px 24px #18382d15;border-radius:8px}.action-menu>a{display:block;padding:10px 14px;white-space:normal;font-size:12px}.action-menu[open]>a{max-width:290px}.compact-filters{margin:18px 0;align-items:center}.compact-filters .action-menu>summary{font-size:11px;padding:7px 10px}.teacher-next-action{background:var(--teal-soft);padding:14px 18px;border-radius:10px}.simple-groups td:first-child{min-width:36px;width:36px}.simple-groups th:first-child{width:36px}.simple-groups td:nth-child(2){min-width:180px}.group-detail-menu{margin-top:8px;font-size:11px}.group-detail-menu summary{cursor:pointer;color:var(--muted)}.group-detail-menu a{display:block;padding:5px 0}.group-detail-menu p{margin-top:10px}.debt-action{display:block;color:var(--red);font-size:11px;margin-top:10px}.selection-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:16px 0}.password-actions{margin:0 0 16px}.compact-catalog h3{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.compact-catalog{padding:16px 0}.compact-catalog p{margin-bottom:6px}
.review-heading{margin-bottom:16px}.review-totals{display:flex;justify-content:space-between;gap:12px;padding:15px 18px;margin-bottom:20px;border:1px solid var(--line);background:var(--teal-soft);border-radius:10px;flex-wrap:wrap}.review-totals span{font-size:11px}.review-totals strong{display:block;font-size:17px;font-variant-numeric:tabular-nums}.review-workspace{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:20px;align-items:start}.review-main{grid-column:1;grid-row:1;min-width:0}.feedback-dock{grid-column:2;grid-row:1;position:sticky;top:16px;min-width:0}.feedback-dock h2{margin-bottom:12px}.feedback-dock .padded{padding:20px}.feedback-dock textarea{min-height:180px;height:180px;resize:vertical}.feedback-dock .field{margin-bottom:14px}.feedback-dock .field ul{margin:0;padding-left:0;list-style:none}.feedback-dock input[type=radio]{width:auto}.feedback-dock .field label{font-size:12px}.feedback-actions{display:grid;gap:8px;margin:14px 0}.feedback-presets summary{cursor:pointer;font-size:12px;color:var(--teal)}.feedback-presets button{display:block;text-align:left;white-space:normal;margin:5px 0}.review-assistance .section-heading{margin:0 0 12px}.review-assistance .section-heading span{font-size:11px;color:var(--muted)}.review-assistance p{font-size:12px;color:var(--muted)}.review-assistance details>summary{cursor:pointer;font-weight:650;font-size:12px}.suggestion-list{margin:14px 0}.suggestion-option{display:flex;gap:10px;margin:0;padding:10px 0;border-top:1px solid var(--line);align-items:flex-start;font-size:12px}.suggestion-option input{margin-top:4px;flex-shrink:0}.suggestion-option small{display:block;margin-top:4px;color:var(--muted)}.review-budget{table-layout:fixed}.review-budget th{white-space:normal;text-transform:none;font-size:11px}.review-budget th:first-child{width:43%}.review-budget th:nth-child(2){width:22%}.review-budget th:nth-child(3){width:35%}.review-budget td{overflow-wrap:anywhere;padding:16px 14px}.review-budget td:nth-child(2){white-space:normal}.review-budget td>strong{display:block}.budget-note{margin-top:8px;font-size:11px}.budget-note summary{cursor:pointer;color:var(--teal);line-height:1.5}.budget-note p{margin-top:8px}.review-question{display:inline-block;margin-top:7px;border-radius:5px;padding:3px 6px;background:var(--amber-soft);color:var(--amber);font-size:10px}.reference-explanation{margin-top:7px;font-size:10px}.reference-explanation summary{cursor:pointer;color:var(--teal)}.reference-explanation p{margin:8px 0;line-height:1.6}.reference-explanation a{display:block;margin-top:7px}.review-main .finance-brief{grid-template-columns:1fr}
.program-dialog{border:1px solid var(--line);border-radius:14px;width:min(520px,calc(100vw - 32px));padding:26px;color:var(--ink);box-shadow:0 20px 70px #102e2b30}.program-dialog::backdrop{background:#18353066;backdrop-filter:blur(2px)}.program-dialog h2{margin-bottom:14px}.program-dialog .dialog-actions{margin-top:20px;justify-content:flex-end}
.login-print{max-width:1000px;margin:auto}.login-card{break-inside:avoid}.login-print .login-card{padding:24px;margin:20px 0;border:1px dashed #abc4b9;box-shadow:none}.login-print dl{display:grid;grid-template-columns:110px 1fr;gap:8px}.login-print dd{margin:0;font-size:18px}.print-toolbar{margin-bottom:20px}.print-toolbar p{margin-top:14px}
@media(min-width:1500px){.review-workspace{grid-template-columns:minmax(0,1fr) 370px}}
@media(max-width:1100px){.review-workspace{grid-template-columns:minmax(0,1fr) 290px;gap:14px}.feedback-dock .padded{padding:16px}.review-budget td{padding:12px 10px}.review-assistance .section-heading{display:block}}
@media(max-width:900px){.review-workspace{display:flex;flex-direction:column}.feedback-dock{position:static;width:100%;order:0}.review-main{width:100%;order:1}.feedback-dock textarea{height:130px;min-height:130px}.admin-cards{grid-template-columns:1fr}.settings-grid{grid-template-columns:1fr}.selection-actions .button{white-space:normal}.simple-groups{min-width:700px}.review-budget{min-width:560px}.review-totals strong{font-size:15px}.tab-list{gap:4px}.tab-list button{padding:9px 10px;font-size:12px}}
@media print{.print-toolbar{display:none}.login-print .login-card{max-width:none;width:100%;margin:12px 0}.login-print{padding:0}.login-print h1{font-size:20px}.login-print .login-card h2{font-size:18px}}
/* 0.15: stable overlays, category navigation and explicit states. */
.action-menu{height:41px;align-self:flex-start;overflow:visible}.action-menu[open]{box-shadow:none;background:transparent}.action-menu[open]>a{position:relative;display:block;background:white;border-left:1px solid var(--line);border-right:1px solid var(--line);min-width:260px;max-width:320px;box-shadow:0 8px 16px #173a3818}.action-menu[open]>a:last-child{border-bottom:1px solid var(--line);border-radius:0 0 8px 8px}.action-menu>summary{position:relative;z-index:2}.page-heading .actions{align-items:flex-start}
.group-dialog{border:1px solid var(--line);border-radius:14px;padding:24px;width:min(520px,calc(100vw - 32px));max-height:85svh;overflow:auto;color:var(--ink)}.group-dialog::backdrop{background:#18353066;backdrop-filter:blur(2px)}.group-dialog a{display:block;padding:8px 0}.group-dialog small{display:block;margin-top:8px}.group-main-action>div.group-detail-menu{height:32px;margin:6px 0 0}.group-detail-menu>button{font-size:11px;color:var(--muted);padding:5px 0}
.note-close{display:none}.budget-note[open] .note-preview{display:none}.budget-note[open] .note-close{display:inline}.not-considered{font-size:12px;color:var(--muted)}.review-budget .numeric small{white-space:normal;color:var(--muted);font-size:10px;margin-top:5px}.category-tabs{background:#f7faf8;border:1px solid var(--line);border-radius:10px;padding:7px;margin-bottom:16px}.category-tabs button{font-size:11px;padding:7px 10px;min-width:80px}.category-tabs button small{display:block;font-size:9px;color:var(--muted)}.category-tabs button.active{background:white;border-color:#9cbbb0;color:var(--teal);box-shadow:0 1px 4px #173a3810}.category-tabs button:last-child{margin-left:auto}
.button.danger{color:var(--red);border-color:#dcaaa6}.delete-ack{display:flex;gap:10px;align-items:center;margin-top:20px}.block-label{display:block;margin-top:12px}.job-filters{display:flex;gap:14px;align-items:end;flex-wrap:wrap;margin-bottom:20px}.job-filters label{display:grid;gap:6px}.job-filters input,.job-filters select{border:1px solid var(--line);border-radius:8px;padding:10px}.jobs-table th a{display:block;white-space:normal}.jobs-table{font-size:11px}.jobs-table td{padding:14px 12px}.jobs-table th{padding:12px}.jobs-table td:first-child{min-width:200px;max-width:280px}.jobs-table .numeric{white-space:nowrap}
.sifo-import-form{margin-top:20px}.import-table{min-width:1100px}.import-table input,.import-table select{max-width:180px;padding:8px;border:1px solid var(--line);border-radius:6px;font-size:11px;width:100%}.import-table input[type=checkbox]{width:auto}.interval-inputs{display:flex;gap:5px}.interval-inputs input{width:58px}.import-table td{padding:10px}.import-table td:first-child{max-width:250px;min-width:180px}.import-table td:first-child small{overflow-wrap:anywhere}.sifo-import-form .panel.padded{position:sticky;bottom:10px;box-shadow:0 -4px 18px #173a3815}
@media(max-width:700px){.category-tabs button:last-child{margin-left:0}.category-tabs{gap:4px}.category-tabs button{min-width:0}.group-dialog{padding:20px}.action-menu[open]>a{min-width:210px;max-width:250px}.job-filters>label{width:100%}}
.action-menu .action-menu-body{display:none;position:absolute;top:45px;left:0;width:min(290px,calc(100vw - 16px));background:white;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 28px #173a3824;z-index:25;padding:6px}.action-menu[open] .action-menu-body{display:block}.action-menu .action-menu-body a{display:block;padding:10px 12px;font-size:12px;white-space:normal}.action-menu .action-menu-body a:hover{background:var(--teal-soft);border-radius:6px;text-decoration:none}
/* Housing / loan workbench */
.housing-field-grid,.loan-comparison-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:24px 0}.housing-field-grid fieldset{min-width:0;margin:0}.housing-field-grid legend{font-weight:750;padding:0 12px;font-size:1.1rem}.housing-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.housing-actions small{flex-basis:100%;color:var(--muted)}.loan-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:24px 0}.loan-metrics>div{background:#f0f6f4;border-radius:12px;padding:18px}.loan-metrics small{display:block;color:#526760;margin-bottom:8px}.loan-metrics strong{font-size:1.3rem;display:block;overflow-wrap:anywhere}.loan-breakdown{margin:20px 0}.loan-breakdown>div{display:flex;justify-content:space-between;gap:20px;padding:11px 0;border-bottom:1px solid #e2eae7}.loan-breakdown dt{flex:1}.loan-breakdown dd{font-weight:650;margin:0;text-align:right;white-space:nowrap}.loan-breakdown .loan-total{border-top:2px solid #688d7d;background:#f3f7f5;font-weight:750;padding:14px 8px}.selected-loan{border:2px solid #37745b}.loan-schedule{margin:20px 0}.loan-schedule summary{font-weight:700;cursor:pointer;padding:12px 0}.full-loan-table{max-height:560px;overflow:auto}.full-loan-table thead{position:sticky;top:0;background:white;z-index:1}.loan-overview,.loan-comparison{margin:24px 0}.test-group-banner{border-left:4px solid #a47520}.loan-review-link{display:block;margin:8px 0;font-weight:700}.delete-group-list{padding-left:20px}.loan-breakdown dd .negative{color:#ad3029}@media(max-width:850px){.loan-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.housing-field-grid{grid-template-columns:1fr}}@media(max-width:500px){.loan-comparison-grid{grid-template-columns:1fr}.loan-metrics strong{font-size:1.1rem}.loan-breakdown>div{flex-wrap:wrap}.loan-breakdown dd{white-space:normal}}@media print{.housing-form,.housing-intro,.housing-actions,.loan-comparison,.loan-overview button{display:none}.full-loan-table{max-height:none;overflow:visible}.loan-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.loan-schedule table{font-size:10px}.loan-schedule{break-inside:auto}}
/* A short student path; detailed calculation stays available on demand. */
.simple-housing-form{max-width:1000px}.housing-step{margin:18px 0}.step-heading{display:flex;gap:15px;align-items:flex-start;margin-bottom:18px}.step-heading h2{margin-bottom:5px}.step-heading p{color:var(--muted);margin:0}.step-number{display:grid;place-items:center;border-radius:50%;width:36px;height:36px;background:var(--teal-soft);color:var(--teal);font-weight:750;flex-shrink:0}.simple-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}.student-more{border-top:1px solid var(--line);padding-top:13px;margin-top:12px}.student-more>summary{font-weight:650;color:var(--teal);cursor:pointer;margin-bottom:12px}.given-loan-rate{padding:10px 14px;background:#f0f6f4;border-radius:8px}.simple-housing-form .housing-actions{margin:20px 0 12px}.loan-method-options>div{margin:12px 0}.loan-method-options label{cursor:pointer}.loan-method-options p{font-size:12px;color:var(--muted);margin-top:10px}.student-loan-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.student-loan-summary{scroll-margin-top:24px;outline:none;margin-top:22px}.simple-loan-comparison>article{padding:16px;border:1px solid var(--line);border-radius:10px}.simple-loan-comparison>article.selected-loan{border:2px solid var(--teal);background:#f6faf7}.loan-learning-note{border-left:3px solid var(--teal);padding:8px 14px;background:#f0f6f4}.loan-interest-explained{display:grid;grid-template-columns:1fr 1fr;gap:20px}.entry-info-preview{display:block;font-size:11px;color:#557069;font-weight:400;line-height:1.35;margin-top:4px;overflow-wrap:anywhere}.note-state{display:block;color:#17634b;background:#e9f4ed;border-radius:4px;padding:3px 5px;font-size:10px;line-height:1.3;margin-top:4px;font-weight:650}.note-state.unsaved{background:#fff2d9;color:#86530a}.note-state[hidden],.entry-info-preview[hidden]{display:none}.student-first-year td,.student-first-year th{white-space:nowrap}@media(max-width:650px){.simple-field-grid,.loan-interest-explained{grid-template-columns:1fr}.student-loan-metrics{grid-template-columns:1fr}.student-loan-metrics>div{padding:13px 16px}.student-loan-metrics strong{font-size:1.4rem}.step-heading{gap:11px}}@media print{.simple-housing-form{display:none}.student-more{border:0}.loan-learning-note{display:none}.student-first-year table{font-size:11px}}
.loan-method-options input[type=radio]{width:auto;min-width:auto;padding:0;margin:0 8px 0 0;accent-color:var(--teal)}.loan-method-options>div label{display:flex;align-items:center;gap:6px;padding:8px 0;font-weight:600}

/* 0.18: complete project navigation and compact housing controls. */
.project-workflow .learning-steps{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:22px}
.project-workflow .learning-steps li{padding:0;min-width:0}
.project-workflow .learning-steps li>a{display:flex;align-items:center;gap:9px;width:100%;height:100%;padding:9px 12px;color:inherit;text-decoration:none;border-radius:8px}
.project-workflow .learning-steps li>a>span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#edf1ee;flex-shrink:0}
.project-workflow .learning-steps .done a>span{background:#dceee3;color:#1d6349}
.project-workflow .learning-steps .current a>span{background:var(--teal);color:#fff}
.project-workflow .learning-steps a:hover,.project-workflow .learning-steps a:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.student-app.budget-screen .project-workflow small{display:block}
.simple-housing-form select[name=months]{width:auto;max-width:100%;min-width:9rem;align-self:start}
.simple-housing-form select[name=ownership]{width:auto;max-width:100%;align-self:start}
.simple-field-grid{align-items:start}
.simple-field-grid>.field{display:flex;flex-direction:column;min-width:0}
.simple-field-grid>.field>label{min-height:2.8em;display:flex;align-items:flex-end}
.housing-kind-tabs{display:flex;gap:10px;flex-wrap:wrap}
.loan-choice-button{border:0;background:transparent;color:var(--teal);font:inherit;font-size:1.05rem;font-weight:700;text-align:left;cursor:pointer;padding:0;margin:0 0 12px;width:100%}
.loan-choice-button:focus-visible{outline:2px solid var(--teal);outline-offset:5px}
.preview-state{font-size:12px;color:var(--muted)}
.review-options{border:0;padding:0;margin:16px 0}
.review-options legend{font-weight:650;margin-bottom:10px}
.review-options label{display:flex;gap:9px;align-items:flex-start;padding:9px 0;line-height:1.4;cursor:pointer}
.review-options input[type=radio]{width:16px;min-width:16px;height:16px;padding:0;margin:2px 0 0;flex-shrink:0;accent-color:var(--teal)}
.housing-feedback{max-height:calc(100vh - 32px);overflow-y:auto}
.housing-feedback .button{white-space:normal}
@media(max-width:900px){.project-workflow .learning-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.housing-feedback{max-height:none;overflow:visible}}
@media(max-width:650px){.simple-field-grid>.field>label{min-height:0}.simple-housing-form select[name=ownership]{width:100%}.project-workflow .learning-steps li>a{padding:8px;font-size:11px}}
@media print{.project-workflow,.housing-feedback,.housing-kind-tabs,.preview-state{display:none}.housing-review-workspace{display:block}.review-main{width:100%}}

/* 0.18.1: task first, compact navigation and a shared review queue. */
.sidebar nav a>.nav-text{width:auto;flex:1;white-space:nowrap;min-width:0;color:inherit;font-size:inherit}
.sidebar nav a>span:first-child{flex:0 0 20px}
.sidebar nav .nav-later{margin-left:auto;color:#a7c6ba;font-size:16px;line-height:1}
.student-app .sidebar nav{gap:4px}
.student-app .sidebar nav a{padding:10px 9px;gap:8px}
.project-workflow{margin-bottom:16px}
.workflow-overview>summary{display:flex;justify-content:space-between;align-items:center;gap:12px;list-style:none;cursor:pointer;padding:10px 14px;border:1px solid #cbded5;border-radius:9px;background:#edf5f0;font-size:12px}
.workflow-overview>summary::-webkit-details-marker{display:none}
.workflow-overview>summary>span:first-child{display:flex;align-items:center;flex-wrap:wrap;gap:4px 14px}
.workflow-overview>summary small{font-size:11px;color:var(--muted)}
.workflow-toggle{color:var(--teal);font-size:11px;white-space:nowrap}
.workflow-toggle:after{content:' ▾'}
.workflow-overview[open] .workflow-toggle:after{content:' ▴'}
.project-workflow .learning-steps{margin:10px 0 0}
.task-instruction{font-size:12px;color:#49605a;margin:0 0 12px;max-width:860px}
.next-task{display:flex;align-items:center;justify-content:space-between;gap:18px;background:var(--teal-soft);border:1px solid #c1d9cd;border-radius:10px;padding:16px 18px;margin-bottom:16px}
.next-task strong{font-size:15px}
.next-task p{font-size:12px;color:#49605a;margin:5px 0 0}
.next-task .button{flex-shrink:0}
.completed-tasks>summary{font-size:13px;font-weight:650;color:var(--teal);cursor:pointer;margin:0 0 12px}
.budget-preparation{display:flex;align-items:center;flex-wrap:wrap;gap:3px 14px;margin:12px 0 10px}
.student-app .budget-preparation .planning-progress{flex:1 0 100%;margin:0;line-height:1.5;font-size:12px;color:#405b52}
.budget-preparation>.text-button{font-size:11px;padding:3px 0}
.budget-help{font-size:11px;flex:1}
.budget-help>summary{cursor:pointer;color:var(--teal);width:fit-content;padding:3px 0}
.budget-help[open]{flex-basis:100%}
.budget-help .assessment-short-help{margin:8px 0}
.student-app .budget-stats{margin-bottom:6px}
.reading-dialog .finance-brief{grid-template-columns:1fr;margin:12px 0}
.reading-dialog .finance-brief article{padding:12px}
.equity-choice{border-top:1px solid var(--line);padding-top:16px;margin-top:12px}
.equity-choice h3{font-size:14px}
.equity-choice p{font-size:12px;max-width:680px}
.equity-choice .field{max-width:380px}
.available-capital{padding:10px 12px;border-left:3px solid #85ae96;background:#f1f7f3;font-size:12px}
.teacher-next-action{display:flex;align-items:center;justify-content:space-between;gap:16px}
.teacher-next-action span{display:block;font-size:12px;color:#49605a;margin-top:3px}
.teacher-next-action>.button{flex-shrink:0}
.simple-groups td{padding:12px 14px}
.simple-groups td:nth-child(2){min-width:145px}
.simple-groups th{font-size:10px;padding:11px 14px}
.simple-groups .group-main-action{min-width:145px}
.simple-groups .group-main-action>.button{padding:7px 11px;min-height:34px}
.simple-groups .group-detail-menu{margin:2px 0 0;height:auto}
.simple-groups .group-detail-menu>button{padding:3px 0}
.simple-groups .group-secondary-action{display:block;font-size:11px;padding:4px 0 0}
.simple-groups .group-followup{color:var(--amber);line-height:1.45;max-width:330px}
.simple-groups .awaiting-review td:first-child{border-left:3px solid #d3a75d}
.review-queue{display:flex;align-items:center;gap:8px 20px;flex-wrap:wrap;background:#f6f9f7;border:1px solid var(--line);border-radius:8px;padding:9px 14px;margin-bottom:14px;font-size:12px}
.review-queue span{color:var(--muted);font-size:11px}
.feedback-actions>.button{white-space:normal}
.review-assistance{padding:16px 18px}
.review-assistance h2{font-size:16px}
.review-assistance p{margin-bottom:9px}
@media(max-width:760px){
 .student-app .sidebar nav{grid-template-columns:repeat(4,minmax(0,1fr));gap:3px}
 .student-app .sidebar nav a{padding:7px 3px;gap:3px;min-width:0;font-size:10.5px}
 .student-app .sidebar nav a>span:first-child{display:none}
 .student-app .sidebar nav a>.nav-text{flex:none}
 .student-app .sidebar nav .nav-later{margin-left:0;font-size:12px}
 .workflow-overview>summary{padding:8px 11px;gap:8px}
 .workflow-overview>summary>span:first-child{display:block}
 .workflow-overview>summary small{display:block;font-size:10px}
 .project-workflow{margin-bottom:12px}
 .next-task,.teacher-next-action{align-items:flex-start;flex-direction:column;gap:12px;padding:14px}
 .next-task strong{font-size:14px}
 .task-instruction{font-size:11px}
 .student-app .budget-preparation .planning-progress{font-size:11px}
 .simple-groups td{padding:10px 12px}
 .review-queue{padding:8px 11px}
}
@media print{.next-task,.review-queue,.budget-preparation{display:none}}

/* 0.18.2: work stays reachable; housing has one visible task at a time. */
:root{--workbar-height:82px;--housing-tabs-height:48px}
.workbar{position:sticky;top:0;z-index:30;background:#fff;padding:7px 0;border-bottom:1px solid var(--line)}
.workbar-current{display:flex;align-items:center;gap:8px;padding:4px 0 7px;flex-wrap:wrap}
.workbar-current>span{flex:1;min-width:130px;font-size:12px}
.workbar-current small{display:block;color:var(--muted);font-size:10px;margin-top:2px}
.workbar-current .button{padding:7px 10px;font-size:11px;white-space:nowrap}
.workbar .workflow-overview>summary{padding:5px 10px;background:#f5f8f6;font-size:11px}
.workbar .learning-steps{max-height:45vh;overflow:auto;margin-top:6px}
.student-app .budget-command{top:calc(var(--workbar-height) + 4px);z-index:20}
.student-app .ledger-row{scroll-margin-top:calc(var(--workbar-height) + 150px)}
.student-app .sidebar nav .nav-phase-status{display:block;font-size:9px;font-weight:400;line-height:1.35;opacity:.85;margin-top:2px;white-space:normal}
.student-app .sidebar nav .task-current{box-shadow:inset 3px 0 #90d3b3}
.student-app .sidebar nav .task-done>span:first-child{color:#9ed9b6}
.student-app .sidebar nav .task-future{opacity:.7}
.student-app .sidebar nav a.active{outline:1px solid #9dc5b5;outline-offset:-1px}
.student-app .sidebar nav a{padding-top:7px;padding-bottom:7px}
.housing-work-tabs{position:sticky;top:var(--workbar-height);z-index:25;background:#fff;display:flex;flex-wrap:wrap;gap:6px;margin:12px 0;padding:6px 0;border-bottom:1px solid var(--line)}
.housing-work-tabs button{border:1px solid #bdd2c7;background:#fff;color:var(--ink);border-radius:7px;padding:10px 14px;font:inherit;font-size:12px;cursor:pointer}
.housing-work-tabs button[aria-selected=true]{color:#fff;background:var(--teal);border-color:var(--teal);font-weight:650}
.housing-work-tabs button:focus-visible{outline:3px solid #b37b24;outline-offset:2px}
[data-housing-panel][hidden],[data-housing-calculation][hidden],[data-housing-stale][hidden],[data-housing-tabs][hidden],[data-housing-next][hidden],[data-mobile-cost][hidden]{display:none!important}
[data-housing-panel] h2,.housing-errors,.student-app .student-loan-summary,#housing-work{scroll-margin-top:calc(var(--workbar-height) + var(--housing-tabs-height) + 16px)}
.housing-step .housing-kind-tabs{margin-bottom:16px}
.housing-step .field input,.housing-step .field select,.housing-step .field textarea{scroll-margin-top:calc(var(--workbar-height) + var(--housing-tabs-height) + 24px)}
.housing-errors a{font-weight:700;text-decoration:underline}
.housing-errors ul:empty{display:none}
.rent-inclusions{padding:12px 14px;border:1px solid var(--line);border-radius:8px;margin-bottom:16px}
.rent-inclusions legend{font-weight:650;padding:0 5px}
.rent-inclusions .field{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:10px;margin:10px 0}
.rent-inclusions .field label{order:2;margin:0;min-height:0}
.rent-inclusions input[type=checkbox]{width:20px;height:20px;flex-shrink:0}
.rental-budget-changes small{display:block;max-width:350px;color:var(--muted);font-weight:400;margin-top:4px;white-space:normal}
.rental-budget-changes caption{text-align:left;color:var(--muted);font-size:11px;margin-bottom:8px}
.test-reset-control{display:flex;align-items:center;justify-content:flex-end;gap:12px;font-size:12px;margin:14px 0}
@media(max-width:760px){
 .student-app .sidebar nav .nav-phase-status{font-size:8px;line-height:1.2}
 .student-app .sidebar nav a>.nav-text{white-space:normal;text-align:center}
 .student-app .sidebar nav a{align-items:center;padding:5px 2px}
 .workbar-current>span{min-width:110px;font-size:11px}
 .workbar-current{gap:5px}
 .workbar-current .button{font-size:10px;padding:7px}
 .workbar-current small{font-size:9px}
 .housing-work-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
 .housing-work-tabs button{padding:9px 6px;font-size:11px}
 .housing-step{margin-top:12px}
 .student-loan-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:16px 0}
 .student-loan-metrics>div{padding:12px}
 .student-loan-metrics>div:last-child{grid-column:1/-1}
 .student-loan-metrics strong{font-size:1rem}
 .student-loan-metrics>div:last-child strong{font-size:1.25rem}
 .rental-budget-changes small{display:none}
 .rental-budget-changes th,.rental-budget-changes td{padding:9px 6px;font-size:12px}
 .student-app .budget-command{top:calc(var(--workbar-height) + 2px)}
}
@media print{
 .workbar,.housing-work-tabs,[data-housing-next]{display:none!important}
 [data-housing-panel][hidden]{display:block!important}
}

/* 0.18.3: one quiet work line; detailed information opens where needed. */
.checkbox-field>label{display:flex;align-items:flex-start;gap:10px;cursor:pointer}.checkbox-field input[type=checkbox]{width:18px;height:18px;flex:0 0 18px;margin:2px 0 0;padding:0}.checkbox-field>small{margin-left:28px}
.student-app .teacher-only-topbar{display:none}.student-app main{padding-top:16px}.workbar{padding:0 12px;margin-bottom:18px;border:1px solid var(--line);border-radius:9px;position:relative}.workbar-current{padding:8px 0;gap:16px;min-height:44px}.workbar-current>span{display:flex;align-items:center;gap:10px;min-width:0}.workbar-current small{display:inline;font-size:11px;margin:0}.workbar-current .text-button{padding:3px;font-size:12px}.mobile-steps{display:none}.student-app .budget-command,.housing-work-tabs{top:0}.student-app .housing-work-tabs{margin-top:0}.student-app .page-heading{margin-bottom:16px}.student-app .page-heading h1{font-size:27px}.student-app .eyebrow{margin-bottom:5px}.mobile-step-list{padding:0;list-style:none;display:grid;gap:8px}.mobile-step-list a{display:flex;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--line);border-radius:8px}.mobile-step-list [aria-current]{background:var(--teal-soft);font-weight:700}
.bank-notice{border:1px solid #98c4af;background:#e9f5ee;border-radius:10px;padding:18px 22px;margin-bottom:18px}.bank-notice summary{font-size:20px;font-weight:700;color:var(--teal);cursor:pointer}.bank-notice p{white-space:pre-line;margin:12px 0}.bank-notice form{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.bank-read{padding:7px 12px;background:transparent;border-color:var(--line)}.bank-read summary{font-size:12px}.bank-notice-body{padding-top:6px}
.repayment-inline>summary{cursor:pointer;font-weight:700}.repayment-inline[open]>summary{margin-bottom:18px}.repayment-inline .panel{border:0;margin-bottom:0}.repayment-inline .padded{padding:16px 0}.loan-options>small{display:block;color:var(--muted);margin-top:9px}.loan-options .actions{margin:14px 0}.comparison-table{table-layout:fixed}.comparison-table th,.comparison-table td{white-space:normal;overflow-wrap:anywhere}.comparison-table th{font-size:12px;text-transform:none;letter-spacing:0}.application-summary .loan-breakdown{max-width:760px}.application-summary dd{white-space:normal;text-align:right}.housing-step .application-summary h2{margin-bottom:12px}.housing-work-tabs [hidden]{display:none!important}.student-app .student-loan-summary .preview-state{font-size:11px;margin-bottom:0}.activity-row{border-top:1px solid var(--line);padding:10px 0}.activity-row .field{margin-bottom:10px}.activity-person>summary{font-weight:700;cursor:pointer;padding:12px 0}.activity-person{margin-bottom:12px}.activity-person .activity-costs{padding:8px 0 0 28px}.activity-person .activity-costs[hidden]{display:none}.activity-summary-table td,.activity-summary-table th{padding:10px}.activity-change{color:var(--amber)}
@media(max-width:900px){.student-app .sidebar{position:static;width:auto;display:block;padding:12px 18px}.student-app .sidebar .brand{margin:0;font-size:17px}.student-app .sidebar .brand small,.student-app .sidebar .nav-label,.student-app .sidebar nav,.student-app .sidebar .sidebar-bottom{display:none}.student-app .sidebar .brand-mark{width:30px;height:30px;font-size:20px}.student-app .app-body{margin-left:0}.mobile-steps{display:inline-flex;padding:6px 10px;min-height:34px}.workbar-current{gap:10px}.workbar-current small{display:none}.workbar-current>.text-link{font-size:11px}.student-app .housing-work-tabs{display:flex}.student-app .housing-work-tabs button{flex:1;padding:9px 6px;min-width:0;white-space:normal}.student-app .page-heading h1{font-size:23px}.student-app .workbar-current>span{font-size:12px;min-width:0}.student-app main{padding:12px 14px 28px}.bank-notice{padding:14px}.bank-notice summary{font-size:17px}.comparison-table th,.comparison-table td{padding:10px 6px;font-size:11px}.student-app .app-footer{padding:14px;flex-wrap:wrap;gap:6px}.application-summary .loan-breakdown>div{gap:12px}.application-summary dt{max-width:60%}}
@media print{.bank-notice,.mobile-steps{display:none!important}}

[data-bank-notice][hidden],[data-bank-history][hidden]{display:none!important}.workbar-current .text-button{white-space:nowrap}.workbar-current>span{min-width:90px}.student-app .workbar{margin-bottom:12px}@media(max-width:900px){.student-app .workbar-current{gap:8px}.student-app .workbar-current .text-button{font-size:11px}.student-app .workbar-current>span{font-size:11px;min-width:0}.student-app .workbar-current .mobile-steps{min-height:32px}}

.mobile-session{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}

/* 0.18.4: document status replaces repeated instruction and status blocks. */
.budget-state,.document-state{font-size:12px;margin:0 0 16px;color:var(--teal)}.budget-state>summary,.document-state>summary{cursor:pointer;font-weight:650;padding:4px 0}.budget-state>div,.document-state>div{padding:10px 0}.budget-state p,.document-state p{margin:8px 0}.document-state{margin-bottom:0}.budget-state .button{margin-top:6px}.bank-history-entry{border-top:1px solid var(--line);padding:12px 0}.bank-history-entry>small{display:block;color:var(--muted);margin:3px 0 8px}.bank-history-entry p:last-child{margin-bottom:0}.compact-family-reference dt>small{display:block;font-weight:400;color:var(--muted)}.compact-family-reference .loan-breakdown{margin-top:10px}.lookup-mobile{display:none}.budget-document-details{margin-top:18px}.waiting-submission{margin-bottom:16px}.waiting-submission h2{font-size:18px}
@media(max-width:900px){.lookup-desktop{display:none}.lookup-mobile{display:inline}.compact-family-reference .loan-breakdown dd{white-space:normal;text-align:right}.budget-state,.document-state{font-size:12px}.bank-history-entry{overflow-wrap:anywhere}}

@media(max-width:900px){.student-app .workbar-current{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto}.student-app .workbar-current>span{white-space:nowrap}.student-app .workbar-current>span small,.student-app.budget-screen .workbar-current>span small{display:none}.student-app .workbar-current>.text-link{grid-column:1/-1;grid-row:2;padding-top:2px}}

/* 0.18.5: compact administration, persistent review figures and clear comparisons. */
details.panel.details-panel,details.panel.compact-details,.compact-details{min-height:0;height:auto;padding:12px 16px;margin:12px 0}
details.panel.details-panel>summary,.compact-details>summary{cursor:pointer;font-weight:650;margin:0;padding:0}
details.panel.details-panel[open]>summary,.compact-details[open]>summary{margin-bottom:10px}
details.panel.details-panel p:last-child,.compact-details p:last-child{margin-bottom:0}
.settings-navigation{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:18px}.settings-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.settings-card{padding:18px;min-height:0;color:var(--ink)}.settings-card p{margin:0;color:var(--muted)}.settings-card h2{font-size:17px;margin-bottom:6px}
.review-totals-sticky{position:sticky;top:0;z-index:35;box-shadow:0 3px 8px #173a3815;margin-top:0}.review-group-name{padding-right:8px}.review-totals-sticky span{white-space:nowrap}.feedback-dock{top:82px}.changes-table th,.changes-table td{white-space:normal;vertical-align:top}.changes-table details{max-width:480px}.changes-table p{overflow-wrap:anywhere}.budget-changes{padding:8px 0}.changes-table small{display:block}.current-budget-state{font-weight:650}
@media(max-width:700px){.review-totals-sticky{display:grid;grid-template-columns:1fr 1fr;gap:4px 10px;padding:8px 12px;font-size:11px}.review-group-name{grid-column:1/-1}.review-totals-sticky strong{font-size:12px}.settings-navigation .text-link{width:100%}.feedback-dock{top:auto}}
@media print{.review-totals-sticky{position:static}.settings-navigation{display:none}}

.student-app [data-housing-panel][hidden],.student-app [data-housing-calculation][hidden],.student-app [data-housing-stale][hidden],.student-app [data-housing-continue][hidden]{display:none!important}
.housing-help{margin-top:6px}.housing-help .student-more{margin:6px 0}.loan-recalculate>summary{font-size:14px}.loan-recalculate[open]>summary{margin-bottom:16px}.method-comparison{margin:16px 0}.method-comparison .loan-comparison-grid article{border:1px solid var(--line);border-radius:8px;padding:14px}.method-comparison .chosen-loan{border:2px solid var(--teal)!important;background:var(--teal-soft)}.method-comparison h3{margin-bottom:6px}.loan-method-options #id_method{display:flex;gap:16px;flex-wrap:wrap}.loan-method-options #id_method label{display:flex;align-items:center;gap:6px}.loan-method-options input[type=radio]{width:18px;height:18px}.loan-options>summary{cursor:pointer;font-weight:650}.selected-application-loan{padding:10px 12px;background:var(--teal-soft);border-radius:8px}.rate-request-flag{font-weight:700;color:var(--amber)}

.rate-status{font-size:12px;margin:8px 0 12px}.settings-cards .settings-card{margin-bottom:0}.review-totals-sticky .review-group-name{align-self:center}

.changes-table tbody th{text-transform:none;letter-spacing:0}
@media(max-width:600px){.changes-table,.changes-table tbody{display:block;min-width:0;width:100%}.changes-table thead{display:none}.changes-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border-top:1px solid var(--line)}.changes-table tbody th{grid-column:1/-1;padding:10px 6px;border:0}.changes-table tbody td{display:block;min-width:0;padding:6px;border:0}.changes-table tbody td:last-child{grid-column:1/-1}.changes-table td:before{content:attr(data-label);display:block;font-size:10px;color:var(--muted);font-weight:600}.changes-table details{margin-top:6px}.changes-table details p{white-space:normal;overflow-wrap:anywhere}}

/* 0.18.6: classroom and application come first. */
.classroom-heading{margin-bottom:10px;gap:12px}.classroom-heading .eyebrow{display:none}.classroom-heading h1{font-size:26px;margin-bottom:3px}.classroom-heading p{margin:0;font-size:12px}.compact-filters{margin:10px 0}.compact-filters a{padding:7px 10px}.start-review-inline{margin-left:auto}.group-change-alert{display:block;color:var(--amber);font-weight:650;font-size:11px;margin-top:6px}.housing-review-count{font-weight:650}.housing-review-heading{margin-bottom:10px}.housing-review-heading .eyebrow{display:none}.housing-review-heading h1{font-size:25px}.housing-review-workspace .housing-feedback{top:12px}.teacher-application .application-summary h2{font-size:18px}.teacher-application .loan-breakdown>div{padding:8px 0}.teacher-application>h2{margin-top:18px}.history-archive{font-size:12px}.change-returned{border-left:3px solid var(--amber);padding:8px 12px;background:var(--amber-soft)}
@media(max-width:900px){.housing-review-workspace>.housing-feedback{order:1}.housing-review-workspace>.review-main{order:0}.classroom-heading{align-items:flex-start}.classroom-heading .actions{gap:6px}.classroom-heading .button{font-size:11px;padding:7px 9px}.start-review-inline{margin-left:0}}

/* 0.18.7: quiet, persistent messages and direct post navigation. */
[data-resume-task][hidden],.communication-arrival[hidden]{display:none!important}
.communications-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin:0 0 12px;font-size:12px}.communication-toggle{font-weight:650;white-space:nowrap}.communications-bar>small{color:var(--muted)}.communication-arrival{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;flex:1;min-width:0;padding:8px 12px;border-left:3px solid var(--teal);background:var(--teal-soft);border-radius:5px}.communication-arrival strong{overflow-wrap:anywhere}.communication-arrival .button{font-size:11px;padding:5px 9px}.communication-item{border-top:1px solid var(--line);padding:14px 0;overflow-wrap:anywhere}.communication-item.unread{border-left:3px solid var(--teal);padding-left:12px}.communication-item>small{color:var(--muted)}.communication-item h3{margin:5px 0}.communication-item p{white-space:pre-wrap}.communication-dialog{max-width:760px}.budget-post-target{outline:3px solid var(--teal);outline-offset:2px;background:var(--teal-soft);scroll-margin-top:150px}.budget-return{margin:8px 0}.budget-target-hint{font-size:12px;color:var(--muted)}.post-return{grid-column:1/-1;justify-self:start;margin:8px}.review-budget .post-return{display:block;width:max-content;max-width:100%}.bank-notice .text-button,.document-state .text-button,.budget-state .text-button{margin-left:10px}
@media(max-width:600px){.communication-arrival{flex-basis:100%}.communications-bar{gap:6px}.budget-post-target{scroll-margin-top:130px}.communication-item .actions{flex-wrap:wrap}}

/* The open Mer menu must be above the sticky financial summary (z-index 35). */
.review-heading .action-menu[open]{z-index:60}.review-heading .action-menu[open] .action-menu-body{z-index:61}

/* 0.19: one vehicle task at a time, identical student/teacher budget projection. */
.vehicle-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 20px}.vehicle-tabs{display:flex;gap:8px;margin-bottom:14px}.vehicle-tabs button{flex:1;border:1px solid var(--line);border-radius:7px;background:white;padding:10px 8px;color:var(--teal);font-weight:650}.vehicle-tabs [aria-current=step]{background:var(--teal-soft);border-color:var(--teal)}.vehicle-radio{border:0;padding:0;margin:12px 0 18px}.vehicle-radio legend{font-weight:650;margin-bottom:8px}.vehicle-radio label{display:flex;align-items:flex-start;gap:10px;margin:7px 0}.vehicle-radio input[type=radio]{width:18px;height:18px;margin:2px 0 0;flex:0 0 18px}.vehicle-form [hidden]{display:none!important}.vehicle-edit{margin:18px 0}.vehicle-edit>summary{padding:8px 0;font-weight:650}.vehicle-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0;background:var(--teal-soft);border-radius:9px;padding:14px}.vehicle-facts strong{display:block;font-size:20px}.vehicle-facts small{display:block}.vehicle-changes th,.vehicle-changes td{white-space:normal;font-size:12px}.vehicle-changes th{letter-spacing:0;text-transform:none}.vehicle-save{display:flex;align-items:center;gap:14px;margin:12px 0}.vehicle-summary .loan-breakdown{max-width:780px}.vehicle-review-workspace .feedback-dock{top:12px}
@media(max-width:760px){.vehicle-grid{grid-template-columns:1fr}.vehicle-facts{grid-template-columns:1fr;gap:10px}.vehicle-tabs{gap:4px}.vehicle-tabs button{font-size:11px;padding:9px 4px}.vehicle-changes th,.vehicle-changes td{padding:8px 5px;font-size:11px}.vehicle-save{align-items:flex-start;flex-direction:column}}
@media print{.vehicle-tabs,.vehicle-save{display:none!important}.vehicle-form [data-vehicle-panel][hidden]{display:block!important}}

/* 0.19.1: compact car work, optional details and a single final application. */
.vehicle-context{background:var(--teal-soft);padding:12px 15px;border-radius:8px;margin-bottom:20px}.vehicle-context .compact-details{margin:7px 0 0}.vehicle-form h3{margin-top:20px}.vehicle-maintenance{padding:10px 14px;background:#f5f7f3;border-radius:8px;margin:12px 0}.vehicle-maintenance p{margin:5px 0}.vehicle-extra,.vehicle-priorities{border-top:1px solid var(--line);padding-top:13px;margin-top:15px}.vehicle-priority-row{display:grid;grid-template-columns:minmax(120px,1fr) minmax(110px,160px);gap:8px 20px;padding:14px 0;border-top:1px solid var(--line)}.vehicle-priority-row>div>small{display:block;color:var(--muted)}.vehicle-priority-row>[data-priority-reason]{grid-column:1/-1}.vehicle-priority-row .field{margin:0}.vehicle-priority-row>.field>label{font-size:0}.vehicle-priority-row>.field>label::after{content:'Nytt månedsbeløp';font-size:12px}.vehicle-result{border-top:2px solid var(--teal);padding-top:15px;margin-top:24px;scroll-margin-top:30px}.vehicle-result:focus,.vehicle-form h2:focus,.vehicle-result h3:focus{outline:none}.vehicle-application-facts{margin:10px 0 20px}.vehicle-application-facts>div{display:flex;justify-content:space-between;gap:16px;padding:8px 0;border-bottom:1px solid var(--line)}.vehicle-application-facts dt{color:var(--muted)}.vehicle-application-facts dd{margin:0;text-align:right;font-weight:600}.vehicle-balance{display:flex;justify-content:space-between;gap:15px;padding:14px;background:var(--teal-soft);border-radius:8px;margin:16px 0}.vehicle-balance>strong{font-size:23px;white-space:nowrap}.vehicle-balance small{color:var(--muted)}.vehicle-budget-alert{border-left:3px solid #b37b24;background:#fff9ec;padding:12px;margin-top:14px}.vehicle-budget-alert>p{margin:4px 0 10px}.vehicle-budget-alert td p{margin:5px 0;font-size:12px}.vehicle-tabs button:focus-visible,.vehicle-form button:focus-visible{outline:3px solid #b37b24;outline-offset:2px}
@media(max-width:650px){.vehicle-application-facts>div{display:block}.vehicle-application-facts dd{text-align:left;margin-top:3px}.vehicle-balance{flex-wrap:wrap}.vehicle-priority-row{grid-template-columns:minmax(100px,1fr) minmax(90px,120px)}}

/* 0.19.2: four aligned cost fields; budget priorities live on the budget page. */
.vehicle-simple-costs{max-width:900px}.vehicle-main-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 24px;margin:18px 0}.vehicle-main-fields>.field{margin:0;min-width:0}.vehicle-main-fields>.field>label{display:block;min-height:22px;margin-bottom:6px}.vehicle-main-fields input,.vehicle-main-fields select{width:100%;height:44px;box-sizing:border-box;margin:0}.vehicle-main-fields small{display:block;min-height:18px;margin-top:5px}.vehicle-main-fields input[readonly]{background:#f1f4f0;color:var(--muted)}.vehicle-loan-line{display:flex;flex-wrap:wrap;align-items:center;gap:12px 25px;padding:10px 0;border-top:1px solid var(--line)}.vehicle-inline-method{display:flex;gap:15px;border:0;padding:0;margin:0}.vehicle-inline-method legend{float:left;margin-right:12px}.vehicle-inline-method label{display:flex;align-items:center;gap:6px;white-space:nowrap}.vehicle-inline-method input{width:16px;height:16px;margin:0}.vehicle-short-help{font-size:12px;color:var(--muted);line-height:1.5;margin:8px 0 18px}.vehicle-calculate-row{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.vehicle-simple-costs .vehicle-result{margin-top:20px}.vehicle-simple-costs .vehicle-facts{margin:10px 0 16px}.vehicle-simple-costs .vehicle-result h3{margin:0;font-size:16px}.vehicle-simple-costs .vehicle-facts strong{font-size:21px}[data-vehicle-budget] .assessment-field{display:none}[data-vehicle-budget] .ledger-heading>span:nth-child(3){display:none}.student-app [data-vehicle-budget] .ledger-heading,.student-app [data-vehicle-budget] .ledger-row{grid-template-columns:minmax(130px,1fr) 120px 170px}.student-app [data-vehicle-budget] .planning-progress{display:none}
@media(max-width:650px){.vehicle-main-fields{grid-template-columns:1fr;gap:12px}.vehicle-main-fields>.field>label{min-height:0}.vehicle-main-fields small{min-height:0}.vehicle-inline-method{gap:12px}.vehicle-inline-method legend{margin-right:5px}.vehicle-loan-line{gap:8px}.student-app [data-vehicle-budget] .ledger-heading{display:none}.student-app [data-vehicle-budget] .ledger-row{grid-template-columns:minmax(100px,1fr) 110px;gap:8px}.student-app [data-vehicle-budget] .row-tools{grid-column:1/-1}}

/* 0.19.3: aligned first step, explicit optional costs, short pupil summary. */
.vehicle-grid>.field{margin:0;min-width:0;display:flex;flex-direction:column;gap:6px}.vehicle-grid>.field>label{min-height:38px;display:flex;align-items:flex-end;margin:0}.vehicle-grid input,.vehicle-grid select{height:44px;box-sizing:border-box;width:100%;margin:0}.vehicle-grid{row-gap:18px;margin-bottom:18px}.vehicle-extra-cost{max-width:430px}.vehicle-extra-cost .field{margin-bottom:10px}.vehicle-extra-cost input{height:44px}.vehicle-summary .vehicle-application-facts dd{max-width:65%;overflow-wrap:anywhere}.vehicle-form textarea{box-sizing:border-box}.vehicle-short-help{max-width:780px}@media(max-width:650px){.vehicle-grid>.field>label{min-height:0}.vehicle-summary .vehicle-balance{flex-wrap:wrap}.vehicle-summary .vehicle-application-facts>div{gap:10px}.vehicle-summary .vehicle-application-facts dd{max-width:60%}}

.vehicle-source-field{max-width:calc((100% - 20px)/2)}.vehicle-source-field input{width:100%;height:44px;box-sizing:border-box}@media(max-width:760px){.vehicle-source-field{max-width:none}}
.vehicle-extra-cost{max-width:calc((100% - 24px)/2)}@media(max-width:650px){.vehicle-extra-cost{max-width:none}}

/* 0.19.4: stable budget-style help for each cost. */
.vehicle-cost-field>.entry-open{align-self:flex-start;display:block;margin-top:5px}.vehicle-cost-field .reading-dialog{font-size:13px}.vehicle-cost-field .reading-dialog .field>label{min-height:0}.vehicle-cost-field .reading-dialog small{min-height:0}.vehicle-cost-field .reading-dialog textarea{width:100%;min-height:100px}.vehicle-main-fields .reading-dialog input{height:auto}.vehicle-schedule-after{margin-top:22px;border-top:1px solid var(--line);padding-top:14px}.vehicle-schedule-after .panel{margin-bottom:0}

/* 0.19.5: bank loan first, affordability nearby, clear no-car costs. */
.vehicle-review-balance{background:var(--teal-soft);border:1px solid var(--line);border-radius:9px;padding:14px;margin:16px 0}.vehicle-review-balance h3{margin:0;font-size:15px}.vehicle-review-balance .vehicle-facts{padding:0;margin:12px 0;gap:14px}.vehicle-review-balance>small{font-size:11px;color:var(--muted)}.vehicle-loan-payment{background:#f1f7f4;padding:12px!important}.vehicle-loan-payment strong{font-size:18px}.vehicle-operating-review{margin:16px 0}.vehicle-no-car-cost{max-width:500px}.vehicle-no-car-cost>.field>input{width:100%;height:44px;box-sizing:border-box}.vehicle-no-car-cost .entry-open{margin:5px 0 12px}.vehicle-no-car-cost .reading-dialog{max-width:650px}

/* 0.19.6: one continuous no-car plan; no extra explanation step. */
.vehicle-no-car-page{max-width:900px}.vehicle-no-car-page [data-vehicle-panel="needs"]{margin-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom:0;padding-bottom:0}.vehicle-no-car-page [data-vehicle-panel="costs"]{border-top:0;border-top-left-radius:0;border-top-right-radius:0;padding-top:8px}.vehicle-no-car-page [data-vehicle-panel="needs"]>h2{display:none}.vehicle-no-car-page .vehicle-no-car-cost{max-width:430px;margin-bottom:18px}.vehicle-no-car-page .vehicle-no-car-cost small{display:block;color:var(--muted);font-size:12px}.vehicle-no-car-page .vehicle-no-car-cost .field{margin-bottom:5px}.vehicle-no-car-page [data-vehicle-panel="costs"]>h2{font-size:16px;margin:8px 0 12px}.vehicle-no-car-page [data-vehicle-no-car]>.vehicle-short-help{display:block;margin:8px 0 0}.vehicle-no-car-page .vehicle-result{margin-top:18px}

/* 0.20.0 – classroom mail. */
.mail-bar{display:flex;align-items:center;gap:15px;margin:0 0 18px}.mail-entry{font-weight:700;color:var(--teal)}.mail-bar [data-mail-count]{font-size:12px}.mail-sound{font-size:11px}.mail-bar small{font-size:11px;color:var(--muted)}.mail-folders{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 18px}.mail-folders a{padding:8px 13px;border-radius:7px;color:var(--ink);text-decoration:none}.mail-folders .active{background:var(--teal);color:white}.mail-filters{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap;margin-bottom:18px}.mail-filters .field{margin:0;min-width:180px}.mail-filters select{height:42px}.mail-list{overflow:hidden;margin-bottom:20px}.mail-list-row{display:flex;gap:14px;padding:17px 20px;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--line);align-items:flex-start}.mail-list-row:last-child{border-bottom:0}.mail-list-row:hover{background:#f5f8f6}.mail-list-row.unread{background:#eef7f3;border-left:4px solid var(--teal);padding-left:16px}.mail-list-icon{color:var(--teal);padding-top:2px}.mail-list-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px;overflow-wrap:anywhere}.mail-list-main>strong{font-size:15px}.mail-list-main>span{font-size:12px}.mail-list-main small{color:var(--muted);font-size:11px}.mail-list-date{font-size:11px;color:var(--muted);white-space:nowrap;display:flex;flex-direction:column;gap:7px}.mail-list-date b{color:var(--teal)}.mail-compose,.mail-reply{max-width:850px}.mail-compose-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.mail-compose input,.mail-compose select,.mail-compose textarea,.mail-reply textarea{width:100%;box-sizing:border-box}.mail-compose textarea{min-height:190px}.mail-reply textarea{min-height:110px}.mail-privacy{padding:10px 14px;border-left:3px solid var(--teal);background:#edf5f2;font-size:12px;max-width:850px;margin-bottom:18px}.mail-thread{max-width:950px}.mail-letter{margin-bottom:16px}.mail-letter header{display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:12px}.mail-letter h2{font-size:17px;margin:14px 0}.mail-letter-body{line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px}.mail-letter-body p{white-space:normal}.mail-letter-body+p{margin:0}.mail-setting{display:flex;align-items:center;gap:10px;font-weight:600}.mail-setting input{width:18px;height:18px;margin:0}.mail-toast{position:fixed;right:24px;bottom:24px;z-index:2000;max-width:370px;background:#163d39;color:white;padding:18px 42px 18px 20px;border-radius:10px;box-shadow:0 5px 28px #0003;display:flex;flex-direction:column;gap:7px;animation:mail-arrive .2s ease-out}.mail-toast>span{font-size:12px;line-height:1.5}.mail-toast a{color:#d4f0e4}.mail-toast-close{position:absolute;right:10px;top:8px;background:none;border:0;color:white;font-size:24px;cursor:pointer}.mail-decision{margin:10px 0 16px}.mail-stamp{display:inline-block;border:2px solid var(--muted);border-radius:5px;padding:6px 11px;text-decoration:none;font-size:12px;font-weight:700;color:var(--muted)}.mail-stamp.approved{color:#20674b;border-color:#20674b;background:#f0f8f3}.mail-stamp.revision{color:#8f5523;border-color:#ab6a2a}.mail-stamp.unread{color:var(--teal);border-color:var(--teal);background:var(--teal-soft)}.mail-stamp.waiting{border-style:dashed}.mail-pages{margin:16px 0}.mail-live-note{font-size:12px}@keyframes mail-arrive{from{transform:translateY(10px);opacity:0}to{transform:none;opacity:1}}@media(prefers-reduced-motion:reduce){.mail-toast{animation:none}}@media(max-width:650px){.mail-list-row{padding:14px 12px;gap:9px}.mail-list-row.unread{padding-left:8px}.mail-list-date{font-size:10px;max-width:85px}.mail-compose-grid{grid-template-columns:1fr;gap:0}.mail-filters{gap:10px}.mail-filters .field{min-width:0;flex:1 1 140px}.mail-toast{left:12px;right:12px;bottom:12px;max-width:none}.mail-letter header{flex-wrap:wrap;gap:5px}.mail-bar{gap:12px;flex-wrap:wrap}.mail-preview{display:none}}

.mail-toast{animation:mail-arrive .2s ease-out,mail-fade .4s ease-in 7.6s forwards}@keyframes mail-fade{to{opacity:0;transform:translateY(4px)}}@media(prefers-reduced-motion:reduce){.mail-toast{animation:none}}

.mail-toast[hidden]{display:none!important}

/* 0.20.1: a single, quiet email reader. */
.mail-single{max-width:850px}.mail-envelope{font-size:12px;margin:0 0 24px;color:var(--muted)}.mail-envelope>div{display:flex;gap:14px;margin:5px 0}.mail-envelope dt{width:36px;flex-shrink:0}.mail-envelope dd{margin:0;color:var(--ink);overflow-wrap:anywhere}.mail-single .mail-letter-body{font-size:15px}.mail-action{margin:22px 0 0}.mail-reply-area{max-width:850px;margin:16px 0}.mail-reply-area>summary{color:var(--teal);font-weight:650;cursor:pointer;padding:8px 0}.mail-reply-area[open]>.mail-reply{margin-top:10px}.mail-older-link{font-size:12px;margin-top:20px}

/* 0.21.0: the task comes first; calendar and quiet supporting navigation. */
.mail-bar[hidden],.calendar-toast[hidden],[data-calendar-skip][hidden],[data-calendar-ack][hidden],[data-calendar-ledger][hidden],[data-calendar-waiting][hidden]{display:none!important}
.student-app .workflow-footer{position:static;min-height:0;margin:28px 0 0;padding:10px 14px;background:transparent;border-top:1px solid var(--line);border-left:0;border-right:0;border-bottom:0;box-shadow:none}
.student-app .workflow-footer .workbar-current{font-size:12px;gap:12px}.workflow-footer .workbar-current>span{display:flex;align-items:center;gap:10px}.workflow-footer small{color:var(--muted)}.page-feedback{margin-top:18px}.mobile-task-tools{display:none}
.calendar-board{display:grid;grid-template-columns:minmax(190px,240px) minmax(0,1fr);align-items:center;gap:24px;margin-bottom:20px;overflow:hidden}.calendar-current{position:relative;display:flex;flex-direction:column;gap:10px;text-align:center;background:#fff;border:1px solid var(--line);border-top:7px solid var(--teal);border-radius:12px;padding:22px 10px;box-shadow:0 4px 10px #173a3810;font-variant-numeric:tabular-nums}.calendar-current strong{font-size:33px;line-height:1.2}.calendar-current>span{font-size:13px;font-weight:650;color:var(--teal)}.calendar-current small{font-size:11px;color:var(--muted)}.calendar-turning{animation:calendar-turn .38s ease-in-out infinite}.calendar-month-strip{list-style:none;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:0;margin:0;gap:7px}.calendar-month-strip li{text-align:center;display:flex;flex-direction:column;gap:7px;padding:12px 4px;border-radius:8px;color:var(--muted);font-size:11px}.calendar-month-strip strong{font-size:20px}.calendar-month-strip .current{color:var(--teal);background:var(--teal-soft);box-shadow:inset 0 -3px var(--teal)}.calendar-month-strip small{font-size:10px}.calendar-balances{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:20px 0}.calendar-balances>div{padding:17px;background:#edf5f2;border-radius:9px;min-width:0}.calendar-balances strong{display:block;font-size:23px;margin:10px 0 6px;overflow-wrap:anywhere}.calendar-balances small{display:block;color:var(--muted);font-size:11px}.calendar-balances span{font-size:12px}.calendar-result h2{font-size:18px}.calendar-result p:last-child{margin-bottom:0}.calendar-controls{display:flex;align-items:center;gap:25px;margin-bottom:12px}.calendar-controls p{max-width:520px;font-size:13px}.calendar-groups input[type=checkbox]{width:18px;height:18px;flex-shrink:0;margin:0}.calendar-groups label{display:flex;align-items:center;gap:10px;text-transform:none;letter-spacing:0}.calendar-groups small,.calendar-preview th small{display:block;font-size:11px;font-weight:400;margin-top:5px;max-width:310px;white-space:normal}.calendar-groups th{white-space:normal}.calendar-history{border-top:1px solid var(--line);padding:12px 0}.calendar-history p{margin:5px 0 0}.calendar-toast{position:fixed;bottom:24px;right:24px;z-index:1990;background:var(--teal);color:white;display:flex;flex-direction:column;gap:7px;max-width:350px;padding:18px 45px 18px 20px;border-radius:10px;box-shadow:0 4px 24px #0003;animation:mail-arrive .2s ease-out}.calendar-toast a{color:#d4f0e4}.calendar-toast span{font-size:12px}.mail-toast:not([hidden])~.calendar-toast{bottom:195px}
@keyframes calendar-turn{0%,100%{transform:perspective(700px) rotateX(0)}45%{transform:perspective(700px) rotateX(-8deg);box-shadow:0 8px 18px #173a3820}}
@media(max-width:900px){.student-app main{padding-bottom:68px}.mobile-task-tools{position:fixed;bottom:0;left:0;right:0;z-index:90;display:flex;justify-content:center;gap:28px;background:#fff;padding:12px 14px max(12px,env(safe-area-inset-bottom));border-top:1px solid var(--line);font-size:12px}.mobile-task-tools button{font-size:12px}.student-app .workflow-footer .mobile-steps{display:none}.student-app .workflow-footer .workbar-current{display:flex;flex-wrap:wrap}.mail-toast,.calendar-toast{bottom:66px}.mail-toast:not([hidden])~.calendar-toast{bottom:240px}}
@media(max-width:650px){.calendar-board{grid-template-columns:1fr;gap:16px;padding:16px}.calendar-current{width:210px;max-width:100%;justify-self:center;padding:18px 10px}.calendar-month-strip{gap:2px}.calendar-month-strip li{padding:10px 2px;font-size:10px}.calendar-month-strip small{font-size:9px}.calendar-balances{grid-template-columns:1fr;gap:8px}.calendar-balances>div{padding:12px 15px}.calendar-balances strong{font-size:24px;margin:4px 0}.calendar-controls{display:block}.calendar-controls .field{max-width:260px}.calendar-toast{left:12px;right:12px;max-width:none}.calendar-preview .budget-table{min-width:720px}}
@media(prefers-reduced-motion:reduce){.calendar-turning,.calendar-toast{animation:none}}
@media print{.mobile-task-tools,.workflow-footer,.calendar-toast,[data-calendar-skip],[data-calendar-ack]{display:none!important}.calendar-turning{animation:none}.calendar-balances{grid-template-columns:repeat(3,1fr)}}

.calendar-groups{min-width:650px}@media(max-width:900px){.workflow-footer [data-open-dialog="family-reference"]{display:none}}

/* 0.21.1: actual monthly accounts move with the calendar. */
.calendar-ready-notice{display:flex;align-items:center;flex-wrap:wrap;gap:12px 18px;background:var(--teal-soft);border-left:4px solid var(--teal);padding:12px 16px;border-radius:8px;margin:12px 0 18px}.calendar-ready-notice>div{flex:1;min-width:190px}.calendar-ready-notice strong{display:block;font-size:14px}.calendar-ready-notice span{display:block;color:var(--muted);font-size:12px;margin-top:4px}.calendar-ready-label{display:block;font-weight:650;color:var(--teal);font-size:12px;margin:5px 0}.calendar-running-note,.calendar-next{font-size:12px;color:var(--muted);margin:12px 0 18px}.calendar-next-action h2{font-size:18px}.calendar-next-action .student-more{margin-bottom:0}.calendar-balances strong{font-variant-numeric:tabular-nums}.calendar-animating>div{background:#e0f0e9;transition:background .3s}.calendar-result[hidden],.calendar-next[hidden]{display:none!important}#calendar-selection{scroll-margin-top:18px}.calendar-month-strip li{transition:background .2s,color .2s}.calendar-next-action .button{margin:4px 7px 4px 0}@media(max-width:650px){.calendar-ready-notice{align-items:flex-start}.calendar-ready-notice .button{font-size:12px}.calendar-next-action .button{width:100%;text-align:center}}@media(prefers-reduced-motion:reduce){.calendar-animating>div,.calendar-month-strip li{transition:none}}

/* 0.21.2: calm calendar controls and the teacher's complete group overview. */
.calendar-playback {justify-content:center;flex-wrap:wrap;margin:1rem 0 .5rem;}
.calendar-playback[hidden] {display:none;}
.calendar-playback small {flex-basis:100%;text-align:center;color:var(--muted,#526271);}
.group-overview-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;}
.group-overview-grid>section {min-width:0;scroll-margin-top:1rem;}
.group-overview-grid h2,.group-next h2 {margin-top:0;}
.group-next {display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;}
.group-next p {margin-bottom:0;}
.group-next>.button {flex-shrink:0;}
.group-facts {margin:1rem 0;}
.group-facts>div {display:flex;justify-content:space-between;gap:1rem;padding:.5rem 0;border-bottom:1px solid #e2e8ee;}
.group-facts dt {flex:1;}
.group-facts dd {margin:0;text-align:right;font-weight:650;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;}
.group-tools {margin-top:1rem;flex-wrap:wrap;}
.group-return {display:inline-block;margin-bottom:.7rem;}
@media(max-width:700px){.group-overview-grid{grid-template-columns:1fr;}.group-next{align-items:flex-start;flex-direction:column;}.group-facts>div{flex-wrap:wrap;}.group-facts dd{max-width:100%;}.calendar-playback .button{min-height:44px;}}

.group-jumps {display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;margin:0 0 1rem;}
.group-jumps a {padding:.3rem 0;font-weight:650;}

/* 0.22.0: shared challenge flow, compact inputs and explicit monthly consequences. */
.challenge-menu {margin-bottom:1rem;flex-wrap:wrap;}
.challenge-preview {padding:.8rem 0;border-bottom:1px solid #dce5e6;}
.challenge-preview h3 {margin:.3rem 0;}
.challenge-group-list {display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;}
.challenge-group-list article {min-width:0;padding:.8rem;border:1px solid #dce5e6;border-radius:10px;}
.challenge-group-list p {margin:.4rem 0;}
.challenge-solution .panel {margin-bottom:1rem;}
.challenge-priority {display:grid;grid-template-columns:minmax(130px,1fr) minmax(100px,1fr) minmax(180px,2fr);gap:1rem;align-items:start;border-top:1px solid #dce5e6;padding:.8rem 0;}
.challenge-priority small {display:block;}
[data-challenge-kind][hidden],[data-calendar-start-panel][hidden] {display:none;}
.calendar-start-panel {text-align:center;padding:.8rem 0;}
.calendar-start-panel p {max-width:35rem;margin:.6rem auto;}
@media(max-width:700px){.challenge-priority{grid-template-columns:1fr;gap:.4rem;}.challenge-group-list{grid-template-columns:1fr;}}

.challenge-group-choice{margin:0 0 1rem;padding:1rem;border:1px solid #dce5e6;border-radius:10px;}
.challenge-group-choice label{display:flex;gap:.6rem;align-items:center;}

.calendar-next-action>.button+.button,.group-overview-grid .button+.button {margin-inline-start:.5rem;margin-block-start:.5rem;}
.challenge-solution [data-challenge-result][hidden],.challenge-solution [data-challenge-submit][hidden] {display:none;}
@media(max-width:700px){.challenge-result .stats{grid-template-columns:1fr;}.challenge-result .stats strong{font-size:1.65rem;overflow-wrap:anywhere;}}

/* 0.22.1: understandable tasks, rates, aligned controls and current status. */
.challenge-assignment,.challenge-solution,.challenge-review-form,[data-challenge-editor]{max-width:1040px;}
.challenge-task-text{white-space:normal;border-left:3px solid var(--teal);background:var(--teal-soft);padding:1rem;margin-bottom:1.2rem;}
[data-task-description]{white-space:pre-line;}
.challenge-guidance{max-width:65rem;color:var(--muted);}
.challenge-review-form [id^="id_outcome"] label,[data-challenge-editor] [id^="id_amount_mode"] label{display:flex;align-items:center;gap:.65rem;font-weight:500;margin:.6rem 0;}
.challenge-review-form input[type="radio"],[data-challenge-editor] input[type="radio"]{width:1.1rem;height:1.1rem;padding:0;flex:0 0 1.1rem;margin:0;}
.challenge-group-choice input[type="checkbox"]{width:1.1rem;height:1.1rem;flex:0 0 1.1rem;margin:0;}
.challenge-rates td,.challenge-rates th{vertical-align:middle;text-transform:none;}
.challenge-rates th{white-space:normal;}
.challenge-result .stats{margin-bottom:1rem;}
.challenge-result .stats strong{font-size:clamp(1.15rem,2vw,1.7rem);white-space:normal;overflow-wrap:anywhere;}
.group-challenge-status{display:block;color:var(--teal);}
[data-rate-group]{padding:.5rem 0;border-bottom:1px solid var(--line);}
[data-rate-group] p{margin:.25rem 0;}
.challenge-completed{border-left:4px solid var(--teal);}
.challenge-completed .mail-decision{margin:.5rem 0;}
.challenge-bank article{margin-bottom:1rem;}
.challenge-bank .actions{margin-top:.8rem;}
.challenge-research h3{margin-top:.8rem;}
[data-selected-task][hidden],[data-fixed-amounts][hidden],[data-rate-mode][hidden],[data-rate-group][hidden],[data-editor-amounts][hidden],[data-recalculate-reminder][hidden]{display:none!important;}
@media(max-width:700px){.challenge-assignment .form-grid{grid-template-columns:1fr;}.challenge-rates td{min-width:100px;}.challenge-review-form .actions{align-items:stretch;flex-direction:column;}.challenge-result .stats{grid-template-columns:1fr;}}

.challenge-group-choice #id_groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.3rem 1rem;}
[data-current-rates]{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.5rem 1.2rem;}
[data-challenge-calculate][hidden]{display:none!important;}
.challenge-solution .challenge-result{border:0;padding:1rem 0 0;margin-top:.7rem;}

.challenge-bank article{padding:1rem 1.2rem;}
.challenge-bank article h2{margin-bottom:.25rem;}
.challenge-bank article>p{margin-bottom:.4rem;}
.challenge-bank .student-more{margin:.25rem 0;padding:.4rem 0;}
.challenge-bank .actions{margin-top:.4rem;}

/* 0.22.2: payment and cost together, one response and clear receipts. */
.challenge-loan-terms .form-grid,.payment-grid{align-items:start;}
.challenge-loan-terms .field{align-content:start;}
.challenge-loan-terms .field>label{min-height:2.8em;}
.challenge-payment{background:#f7faf8;border:1px solid var(--line);border-radius:10px;padding:1rem;margin-bottom:1rem;}
.challenge-payment h3{margin-top:0;}
.payment-fixed-label{font-size:12px;font-weight:650;margin-bottom:.5rem;}
.payment-fixed-amount{display:block;padding:.65rem 0;font-size:1.2rem;}
.payment-coverage,.monthly-available{background:var(--teal-soft);border-radius:8px;padding:.7rem .9rem;}
[data-payment-coverage][hidden]{display:none!important;}
.challenge-receipt{border-left:5px solid var(--teal);background:var(--teal-soft);}
.challenge-receipt h2{margin-bottom:.6rem;}
.receipt-groups{padding:0;list-style:none;margin:1rem 0;}
.receipt-groups li{display:flex;flex-wrap:wrap;gap:.3rem 1rem;margin:.5rem 0;}
.receipt-groups a{font-weight:650;}
.receipt-groups span{color:var(--muted);}
.submitted-solution{margin-top:1rem;}
.challenge-payment .field{margin-bottom:.6rem;}
@media(max-width:700px){.payment-grid{grid-template-columns:1fr;}.challenge-loan-terms .field>label{min-height:0;}.challenge-receipt .actions{align-items:stretch;flex-direction:column;}}

/* 0.22.3: clear loan totals without changing posted finances. */
.loans-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:20px 0}.loans-grid>.panel{min-width:0}.loans-grid h2{overflow-wrap:anywhere}.monthly-breakdown{margin:20px 0;padding:14px 18px;background:var(--soft,#f4f8f7);border-radius:10px}.monthly-breakdown h3{margin:0 0 8px}.monthly-breakdown .group-facts{margin:0}.monthly-total{border-top:2px solid #b4cfca;font-weight:700}.monthly-breakdown dd{white-space:nowrap}@media(max-width:720px){.loans-grid{grid-template-columns:1fr}.monthly-breakdown{padding:12px}.monthly-breakdown .group-facts>div{gap:12px}.monthly-breakdown dt{overflow-wrap:anywhere}}

.loan-tool-stats>div{min-width:0}.loan-tool-stats strong{overflow-wrap:anywhere}@media(max-width:720px){.stats.loan-tool-stats{grid-template-columns:1fr}}

/* Keep tools and logout reachable with the additional loan links. */
.student-app .sidebar{overflow-y:auto}

/* 0.22.4: current economy, quiet approved work and a compact teacher queue. */
.economy-now{border:1px solid var(--line);border-left:4px solid var(--teal);border-radius:10px;padding:16px 20px;margin:0 0 18px;background:#f5faf8}
.economy-now .section-heading{margin:0 0 10px;align-items:baseline;flex-wrap:wrap;gap:6px}.economy-now h2{font-size:18px;margin:0}
.economy-now dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0 0 10px}.economy-now dt{font-size:12px;color:var(--muted)}.economy-now dd{font-size:20px;font-weight:700;margin:4px 0 0;overflow-wrap:anywhere}.economy-now>a{font-size:12px}
.approval-basis{color:var(--muted);font-size:12px;margin:12px 0}.approval-basis strong{color:var(--ink)}.approved-calculation{margin-top:12px}.approved-calculation>.panel{box-shadow:none}
.income-now{display:grid;gap:4px;padding:12px 14px;margin:0 0 14px;background:var(--teal-soft);border-radius:8px}.income-now span,.income-now small{display:block}.income-now small{font-size:12px;color:var(--muted)}
.student-app .ledger-row.ledger-readonly,.student-app .ledger-heading.ledger-readonly{grid-template-columns:minmax(140px,1fr) 130px 180px;align-items:center}.ledger-readonly .numeric{white-space:nowrap}.ledger-readonly .entry-open{font-size:12px}.ledger-readonly .entry-open:focus-visible{outline:2px solid var(--teal)}
.teacher-work-queue{display:flex;justify-content:space-between;gap:16px;align-items:center;border-left:4px solid var(--teal);background:var(--teal-soft);padding:12px 16px;margin:0 0 16px;border-radius:8px}.teacher-work-queue h2{font-size:16px;margin:0 0 4px}.teacher-work-queue p{margin:0}.teacher-work-queue small{display:block;margin-top:4px}.queue-task{color:var(--teal)}
@media(max-width:700px){
 .economy-now{padding:12px}.economy-now dl{grid-template-columns:1fr;gap:10px}.economy-now dl>div{display:flex;justify-content:space-between;gap:12px}.economy-now dd{font-size:16px;margin:0;text-align:right}.economy-now dt{max-width:55%}
 .teacher-work-queue{align-items:flex-start;flex-direction:column;gap:10px}.classroom-heading .actions{gap:6px}.classroom-heading .actions .button{font-size:12px;padding:8px}
 .student-app .ledger-heading.ledger-readonly{display:none}.student-app .ledger-row.ledger-readonly{grid-template-columns:minmax(100px,1fr) auto;gap:8px;padding:12px}.ledger-readonly .readonly-note{grid-column:1/-1}.ledger-readonly .entry-open{padding:0}
 .simple-groups{display:block;min-width:0!important;width:100%}.simple-groups thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.simple-groups tbody{display:grid;gap:12px;padding:10px}.simple-groups tr{display:grid;grid-template-columns:30px minmax(0,1fr);border:1px solid var(--line);border-radius:8px;padding:10px;min-width:0}.simple-groups td{display:block!important;border:0!important;padding:4px!important;min-width:0;white-space:normal}.simple-groups .group-select{grid-column:1;grid-row:1}.simple-groups .group-identity{grid-column:2;grid-row:1}.simple-groups td[data-column],.simple-groups .group-actions{grid-column:1/-1}.simple-groups td[data-column]::before{content:attr(data-column);display:block;font-size:11px;font-weight:600;color:var(--muted);text-align:left;margin-bottom:3px}.simple-groups td.numeric{text-align:left}.simple-groups tr.awaiting-review{border-left:3px solid #d3a75d}.simple-groups .group-main-action{min-width:0}.simple-groups .group-main-action>.button{min-height:40px}.simple-groups td:only-child{grid-column:1/-1}
}

@media(max-width:700px){body:not(.student-app) .sidebar nav{display:flex;flex-wrap:wrap;overflow:visible;gap:4px}body:not(.student-app) .sidebar nav a{min-width:0;padding:7px 8px;white-space:normal}body:not(.student-app) .sidebar nav .nav-text{white-space:normal}}

/* 0.23.0: compact navigation and consistent controls. */
.student-app .sidebar nav{gap:2px}.student-app .sidebar nav>a{padding:7px 9px}.student-app .sidebar .nav-phase-status{display:inline;margin-left:6px;font-size:10px}.student-app .sidebar .brand{margin-bottom:22px}.nav-extra{color:#c9dbd5;padding:7px 9px}.nav-extra summary{font-size:12px;cursor:pointer}.nav-extra a{display:block}.settings-navigation{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}
.field [id^=id_decision] label,.field [id^=id_outcome] label{display:flex;align-items:center;gap:8px;margin:8px 0}.field input[type=radio],.field input[type=checkbox]{flex:0 0 17px;width:17px;height:17px;padding:0;margin:0}.field .errorlist[hidden]{display:none}.task-arrival{padding:10px 14px;border-left:4px solid var(--teal);background:var(--teal-soft);margin-bottom:16px}.task-arrival p{margin:4px 0}.task-arrival a{font-size:12px}

/* 0.23.1: visible decisions, two work tabs and a quiet project clock. */
.mail-decision.decision-revision{border-left:4px solid var(--amber);background:var(--amber-soft);border-radius:8px;padding:12px 16px}.decision-revision .mail-stamp{border:0;padding:0;background:none;font-size:15px}.decision-revision p{margin:6px 0;font-size:12px}.decision-revision>[data-decision-link]{font-size:12px;font-weight:650}
.project-clock{display:block;font-size:11px;line-height:1.5;color:var(--muted);padding:5px 0}.sidebar .project-clock{color:#d2e4dc;margin:-12px 0 16px}.sidebar .nav-extra>a{margin-top:3px}.sidebar .nav-extra .text-button{color:#d2e4dc}.nav-tools{margin-top:10px}.student-app .sidebar .nav-text{width:auto;min-width:0}.review-workspace.review-sequential{display:flex;flex-direction:column;gap:16px}.review-sequential>.review-main,.review-sequential>.feedback-dock,.review-sequential>.compact-details{width:100%;min-width:0}.review-sequential>.feedback-dock{position:static;order:initial;max-height:none}.review-sequential .feedback-dock form{max-width:900px}.solution-tabs{margin-bottom:12px}.solution-tabs button{white-space:normal}.challenge-solution>.tab-list{display:flex;gap:8px}.challenge-solution .challenge-priority .field{margin:0}.challenge-solution [data-panel]{scroll-margin-top:20px}.mobile-task-tools>.project-clock{display:none}
@media(max-width:900px){.mobile-task-tools{gap:16px;flex-wrap:wrap}.mobile-task-tools>.project-clock{display:block;flex-basis:100%;text-align:center;font-size:10px;padding:0}.student-app main{padding-bottom:98px}.mail-toast,.calendar-toast{bottom:98px}}
@media print{.project-clock,.solution-tabs{display:none!important}.challenge-solution.tabs-ready>[data-panel]{display:block!important}}

.review-sequential>.review-main{order:initial}.review-sequential>.feedback-dock{order:initial}
@media(max-width:900px){.student-app .sidebar>.project-clock,.student-app .sidebar>.nav-tools{display:none}}

/* 0.24.0: quiet, display-only future comparison. */
.forecast-intro{max-width:70ch;color:var(--muted)}.forecast-time{position:sticky;top:0;z-index:8;box-shadow:0 3px 12px #173a380b}.forecast-time h2{font-size:19px}.forecast-time input[type=range]{width:100%;accent-color:var(--teal);min-height:34px}.forecast-ticks{display:flex;justify-content:space-between;gap:8px}.forecast-ticks button{border:0;background:none;color:var(--teal);font-size:12px;padding:8px 3px}.forecast-card .section-heading{margin:0 0 14px;flex-wrap:wrap}.forecast-card .section-heading>span{font-size:12px;color:var(--muted)}.forecast-numbers{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0}.forecast-numbers dt{font-size:11px;color:var(--muted);min-height:3em}.forecast-numbers dd{margin:4px 0 0;font-size:21px;font-weight:650;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.forecast-net{background:var(--teal-soft);border-radius:8px;padding:10px}.forecast-alternative{border-left:4px solid #b18039}.forecast-form{max-width:1040px}.forecast-option{border-bottom:1px solid var(--line);padding:12px 0}.forecast-option>.field>label{display:flex;align-items:center;gap:10px;font-size:14px}.forecast-option>.field{margin-bottom:6px}.forecast-option>div[data-future-housing],.forecast-option>div[data-future-method],.forecast-option>div[data-future-repayment]{padding:12px 0 4px 27px;max-width:850px}.forecast-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:18px}.forecast-actions>span{font-size:12px;color:var(--muted)}.forecast-differences{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.forecast-differences dt{font-size:12px}.forecast-differences dd{font-size:18px;margin:4px 0;font-weight:650}.forecast-assumptions>summary{cursor:pointer;font-weight:650}.forecast-assumptions p{font-size:12px;margin-top:12px;max-width:90ch}.forecast-launch [id=id_groups] label{display:flex;gap:9px;align-items:center;padding:6px 0}.forecast-launch .form-grid>.field>label{min-height:3em}.forecast-warnings .message{overflow-wrap:anywhere}
[data-future-housing][hidden],[data-future-method][hidden],[data-future-repayment][hidden],[data-future-years][hidden],[data-future-extra][hidden],[data-future-loan][hidden],[data-forecast-alternative][hidden],[data-forecast-difference][hidden],[data-forecast-errors][hidden]{display:none!important}
@media(max-width:700px){.forecast-time{padding:12px;top:0}.forecast-time .section-heading{display:block;margin:0}.forecast-time .section-heading>span{font-size:10px}.forecast-ticks{gap:2px}.forecast-ticks button{font-size:10px;white-space:normal}.forecast-numbers{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.forecast-numbers dd{font-size:18px}.forecast-card,.forecast-form{padding:14px}.forecast-option .form-grid{grid-template-columns:1fr}.forecast-option>div[data-future-housing],.forecast-option>div[data-future-method],.forecast-option>div[data-future-repayment]{padding-left:0}.forecast-differences{grid-template-columns:1fr}.forecast-launch .form-grid{grid-template-columns:1fr}.forecast-launch .form-grid>.field>label{min-height:0}}
@media print{.forecast-time{position:static}.forecast-form{display:none}.forecast-numbers{grid-template-columns:repeat(4,1fr)}}

.forecast-time.panel.padded{padding:12px 20px}.forecast-time .section-heading{margin:0 0 4px;align-items:baseline;gap:8px}.forecast-time .section-heading h2{margin:0;font-size:17px}.forecast-time .section-heading>span{font-size:11px}.forecast-time input[type=range]{margin:0;min-height:28px}.forecast-ticks button{padding:4px 3px;min-height:32px}#future-comparison{scroll-margin-top:135px}@media(max-width:700px){.forecast-time.panel.padded{padding:10px 12px}#future-comparison{scroll-margin-top:150px}}

/* 0.24.1: one comparison table, controls beside the result, deliberate saving. */
.forecast-heading{margin-bottom:12px}.forecast-heading h1{margin-bottom:4px}.forecast-heading p{margin:0;font-size:13px}.forecast-time.panel{padding:10px 18px;margin-bottom:14px}.forecast-time .section-heading{margin:0}.forecast-time input[type=range]{display:block;min-height:28px}.forecast-time .forecast-ticks button{min-height:30px;padding:3px}
.forecast-workspace{display:grid;grid-template-columns:minmax(230px,290px) minmax(0,1fr);gap:16px;align-items:start}.forecast-workspace>*{min-width:0}.forecast-controls{position:sticky;top:120px;max-height:calc(100vh - 140px);overflow-y:auto;overscroll-behavior:contain}.forecast-controls>summary{font-size:16px;font-weight:650;padding:14px;cursor:pointer;list-style-position:inside}.forecast-controls>summary>small{display:block;font-size:11px;font-weight:400;color:var(--muted);margin:5px 0 0}.forecast-form{padding:0 14px 14px}.forecast-form .form-grid{grid-template-columns:1fr;gap:8px}.forecast-form .field{margin-bottom:10px}.forecast-form .field>label{font-size:12px}.forecast-form .field input:not([type=checkbox]),.forecast-form .field select{min-width:0;width:100%;min-height:38px;padding:8px 9px}.forecast-form .muted{font-size:11px;line-height:1.45;margin:8px 0}.forecast-form .forecast-option{padding:9px 0}.forecast-form .forecast-option>.field>label{font-size:12px;align-items:flex-start;line-height:1.5;gap:8px}.forecast-form .forecast-option>.field>label input{margin-top:2px}.forecast-form .forecast-option>div[data-future-housing],.forecast-form .forecast-option>div[data-future-method],.forecast-form .forecast-option>div[data-future-repayment],.forecast-form [data-future-saving]{padding:6px 0 0}.forecast-form .forecast-actions{margin-top:12px;gap:7px}.forecast-form .button{padding:9px 10px;font-size:12px}.forecast-form [data-forecast-connection]{font-size:12px;line-height:1.4;margin:10px 0 0}.forecast-form .message{font-size:12px;padding:10px}.forecast-results{padding:16px;margin-bottom:0}.forecast-results>h2{font-size:18px;margin:0 0 8px}.forecast-summary{font-size:12px;line-height:1.5;margin:0 0 12px;min-height:2.5em}.forecast-table{width:100%;table-layout:fixed;border-collapse:collapse;margin:0}.forecast-table th,.forecast-table td{border-bottom:1px solid var(--line);padding:13px 9px;vertical-align:top;white-space:normal;overflow-wrap:anywhere}.forecast-table thead th{font-size:11px;color:var(--muted);font-weight:650;text-align:right;background:var(--teal-soft)}.forecast-table thead th:first-child{text-align:left;width:41%}.forecast-table tbody th{font-size:12px;text-align:left;font-weight:650}.forecast-table tbody th small{font-size:10px;color:var(--muted);display:block;font-weight:400;line-height:1.45;margin-top:5px}.forecast-table td{font-size:17px;font-weight:650;text-align:right;font-variant-numeric:tabular-nums}.forecast-table td small{display:block;font-size:10px;font-weight:400;color:var(--muted);margin-top:5px}.forecast-table td:last-child{background:#fdfaf4}.forecast-saving-summary,.forecast-period-note{font-size:11px;line-height:1.5;color:var(--muted);margin:12px 0 0}.forecast-more{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}.forecast-more>summary{font-size:12px;font-weight:650;cursor:pointer}.forecast-more .forecast-table{margin-top:10px}.forecast-more .muted{font-size:11px}.forecast-assumptions{margin-top:16px}.forecast-warnings .message{font-size:12px;margin-top:12px}.forecast-advanced{margin:14px 0 20px;padding:12px;border:1px solid var(--line);border-radius:8px}.forecast-advanced>summary{font-weight:650;font-size:13px;cursor:pointer}.forecast-advanced .form-grid{margin-top:16px}.forecast-launch .forecast-advanced small{line-height:1.5}.forecast-preset{background:var(--teal-soft);padding:12px;border-radius:8px;font-size:13px}
[data-future-saving][hidden]{display:none!important}
@media(min-width:761px){.forecast-controls:not([open]){position:sticky}.forecast-controls .forecast-form{display:block}}
@media(max-width:1080px) and (min-width:761px){.forecast-workspace{grid-template-columns:230px minmax(0,1fr);gap:10px}.forecast-results{padding:12px}.forecast-table td{font-size:14px}.forecast-table th,.forecast-table td{padding:11px 6px}.forecast-table thead th:first-child{width:38%}}
@media(max-width:760px){.forecast-workspace{grid-template-columns:1fr;gap:10px}.forecast-controls{position:static;max-height:none;overflow:visible}.forecast-controls>summary{padding:12px}.forecast-controls>summary>small{font-size:11px}.forecast-form{padding:0 12px 12px}.forecast-form .form-grid{grid-template-columns:1fr 1fr;gap:10px}.forecast-time.panel{padding:8px 12px}.forecast-time .section-heading h2{font-size:16px}.forecast-time .forecast-ticks button{min-height:32px}.forecast-results{padding:12px}.forecast-results>h2{font-size:17px}.forecast-table th,.forecast-table td{padding:12px 5px}.forecast-table thead th{font-size:10px}.forecast-table thead th:first-child{width:39%}.forecast-table td{font-size:13px}.forecast-table tbody th{font-size:11px}.forecast-table tbody th small{display:none}.forecast-table td small{font-size:10px}.forecast-summary{font-size:11px}.forecast-heading p{font-size:12px}.forecast-more .forecast-table td{font-size:12px}#future-comparison{scroll-margin-top:145px}}
@media print{.forecast-controls,.forecast-time{display:none}.forecast-workspace{display:block}.forecast-results{border:0}.forecast-table{font-size:11px}}

.forecast-original-summary{font-size:11px;color:var(--muted);line-height:1.45;margin:0 0 5px}

@media(min-width:761px){.forecast-controls{max-height:calc(100vh - 240px)}}

/* 0.24.2: optional explanations leave both comparison columns in place. */
.forecast-help-button{font:inherit;font-weight:inherit;line-height:1.45;color:inherit;text-align:left;background:transparent;border:0;padding:2px 0;cursor:pointer;min-height:24px}.forecast-help-button:hover{text-decoration:underline;text-underline-offset:3px}.forecast-help-button:focus-visible{outline:2px solid var(--teal);outline-offset:3px;border-radius:3px}.forecast-help-mark{display:inline-block;width:16px;height:16px;line-height:16px;text-align:center;border-radius:50%;background:var(--teal-soft);color:var(--ink);font-size:11px;font-weight:650;white-space:nowrap}.forecast-help-dialog{width:min(560px,calc(100vw - 32px));box-sizing:border-box}.forecast-help-dialog p{font-size:14px;line-height:1.65;margin:12px 0}.forecast-help-dialog .dialog-heading h2{font-size:19px;overflow-wrap:anywhere}.forecast-help-dialog .dialog-heading .button{flex-shrink:0}.forecast-help-dialog p:last-child{color:var(--muted);font-size:13px}@media print{.forecast-help-mark{display:none}.forecast-help-button{padding:0;min-height:0}}

/* 0.24.3: outcome first, explanations and loan breakdown on demand. */
.forecast-reading-guide{font-size:12px;line-height:1.5;margin:0 0 12px;color:var(--muted)}.forecast-tradeoff{font-size:12px;line-height:1.5;margin:12px 0;color:var(--muted)}.forecast-table [data-forecast-row="net"] td{font-size:21px}.forecast-table [data-forecast-row="net"] th{font-size:13px}.forecast-more [data-forecast-row="other_debt"] th{border-top:1px solid var(--line)}@media(max-width:760px){.forecast-table [data-forecast-row="net"] td{font-size:14px}.forecast-table [data-forecast-row="net"] th{font-size:11px}.forecast-reading-guide,.forecast-tradeoff{font-size:11px}}


/* 0.25.0: one visible result list, no nested scrolling in the choices. */
.forecast-controls{position:static;max-height:none!important;overflow:visible;overscroll-behavior:auto}
.forecast-form .forecast-actions{position:static;padding:14px 0 0;margin:8px 0 0;flex-wrap:wrap;border-top:1px solid var(--line)}
.forecast-form .forecast-actions .button{flex:1;white-space:normal;min-height:40px}
.forecast-table [data-forecast-row="net"]{background:var(--teal-soft)}
.forecast-table [data-forecast-row="net"] th,.forecast-table [data-forecast-row="net"] td{border-top:2px solid var(--teal);border-bottom:2px solid var(--teal)}
.forecast-table [data-forecast-row="net"] td:last-child{background:#f3ebda}
.forecast-assumptions h2{font-size:16px;margin:0}
.forecast-table tbody th small{display:block}
@media(min-width:761px){.forecast-controls:not([open]){position:static}.forecast-controls .forecast-form{display:block}}
@media(max-width:760px){.forecast-controls{overflow:visible;position:static}.forecast-table tbody th small{font-size:10px}.forecast-table [data-forecast-row="net"] td{font-size:14px}.forecast-table [data-forecast-row="net"] th{font-size:11px}}

/* 0.25.1: time marks follow the range; Now is a separate control. */
.forecast-scale{position:relative}.forecast-scale input[type=range]{padding:0;border:0;margin:0;box-sizing:border-box}.forecast-time .forecast-ticks{position:relative;display:block;height:32px;margin:0 8px;gap:0}
.forecast-time .forecast-ticks button{position:absolute;left:var(--tick);transform:translateX(-50%);white-space:nowrap;top:0;padding-inline:0}
.forecast-time .forecast-ticks button:first-child{transform:none}.forecast-time .forecast-ticks button:last-child{transform:translateX(-100%)}
.forecast-now-track{position:absolute;top:0;left:8px;right:8px;pointer-events:none}
.forecast-now-track span{position:absolute;top:2px;height:24px;width:2px;background:var(--ink);opacity:.55}
.forecast-now{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:3px}
.forecast-now .button{font-size:11px;min-height:30px;padding:5px 8px}.forecast-now>span{font-size:10px;color:var(--muted)}
.forecast-table tr[data-forecast-row="net"] th,.forecast-table tr[data-forecast-row="net"] td{padding-top:18px;padding-bottom:18px}
.forecast-table .forecast-saving-detail{line-height:1.55;color:var(--ink)}
@media(max-width:760px){.forecast-now>span{display:none}.forecast-table tr[data-forecast-row="net"] td{font-size:14px}.forecast-now .button{min-height:32px}}

/* 0.27.0: three short reflections and the attached comparison. */
.final-form,.final-answers{display:grid;gap:12px;margin-bottom:18px;max-width:950px}.final-form .panel,.final-answers .panel{margin:0}.final-form textarea{width:100%;box-sizing:border-box;min-height:100px;resize:vertical}.final-answers h2{font-size:17px;margin:0 0 8px}.final-attachment{margin-top:18px;max-width:950px}.final-capture{margin-top:16px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.final-capture[hidden]{display:none}.final-capture small{font-size:11px;color:var(--muted)}.final-outcomes{border:0;padding:0;margin:0 0 14px}.final-outcomes legend{font-weight:650;margin-bottom:8px}.final-outcomes label{display:flex;align-items:flex-start;gap:9px;padding:7px 0}.final-outcomes input{margin:3px 0 0;flex:0 0 auto;width:auto}.final-history{border-top:1px solid var(--line);padding:12px 0}.final-attachment .forecast-table{table-layout:fixed;width:100%}.final-attachment th,.final-attachment td{overflow-wrap:anywhere}.final-attachment .forecast-table tbody th small{display:block}@media(max-width:760px){.final-form .actions{align-items:stretch;flex-direction:column}.final-attachment{padding:12px}.final-attachment h2{font-size:18px}}

/* 0.27.1: compact entry, ordinary page flow and clear teacher approval. */
.public .app-body{min-height:100svh}.public .topbar{height:46px;min-height:46px;padding-block:6px}.public main{display:flex;align-items:center;justify-content:center;padding:22px 32px}.public .app-footer{padding:10px 32px;gap:12px;flex-wrap:wrap}
.compact-login{min-height:0;width:100%;max-width:950px;grid-template-columns:1fr minmax(320px,390px);gap:60px;padding:0}.compact-login .login-story .brand-mark{width:48px;height:48px;font-size:28px;margin-bottom:20px}.compact-login .login-story h1{font-size:48px;line-height:1.1;margin:12px 0 18px}.compact-login .login-story>p:not(.eyebrow){font-size:15px;line-height:1.6;max-width:350px}.compact-login .login-card{padding:26px}.compact-login .login-card>p.muted{margin-bottom:18px}.compact-login .field{margin-bottom:14px}.register-link{margin:18px 0 0;font-size:13px;border-top:1px solid var(--line);padding-top:14px}
.application-public{width:100%;max-width:760px;min-width:0;margin-inline:auto}.application-public h1{font-size:27px}.application-public .form-grid{align-items:start}.registration-trap{display:none}.application-list{display:grid;gap:12px}.application-row{display:flex;justify-content:space-between;align-items:center;gap:18px;min-width:0}.application-row>div{min-width:0}.application-row h2{margin-bottom:5px}.application-row p{margin-bottom:5px;overflow-wrap:anywhere}.application-row small{color:var(--muted)}.application-filters{margin-bottom:18px}.application-filters [aria-current=page]{background:var(--teal-soft);border-color:var(--teal)}.application-facts{display:grid;grid-template-columns:120px minmax(0,1fr);gap:8px 18px}.application-facts dt{font-weight:650}.application-facts dd{margin:0;overflow-wrap:anywhere}.application-outcomes{border:0;padding:0;margin:18px 0}.application-outcomes legend{font-weight:650;margin-bottom:10px}.application-outcomes label{display:flex;align-items:flex-start;gap:10px;margin-bottom:10px}.application-outcomes input[type=radio]{width:16px;height:16px;flex:0 0 16px;margin:3px 0 0}.application-queue{background:var(--teal-soft);padding:12px 16px;border-radius:8px}
.forecast-assignment{margin:-10px 0 16px;max-width:850px}.forecast-assignment p{margin-bottom:5px}.forecast-assignment p:last-child{color:var(--muted);font-size:12px}.forecast-results .final-capture{position:static;align-items:flex-start;margin:12px 0 16px;padding:0 0 14px;border-bottom:1px solid var(--line)}.final-capture small{flex-basis:100%}.final-capture button:disabled{opacity:.65}
@media(max-width:760px){.public main{padding:18px}.compact-login{grid-template-columns:minmax(0,1fr);max-width:410px;gap:16px}.compact-login .login-story{padding:0}.compact-login .login-story .brand-mark,.compact-login .login-story .eyebrow,.compact-login .login-story>p:not(.eyebrow){display:none}.compact-login .login-story h1{font-size:29px;margin:0}.compact-login .login-story h1 br{display:none}.compact-login .login-story h1 br:after{content:' '}.compact-login .login-card{padding:20px}.public .app-footer{padding:10px 18px}.public .app-footer span{display:none}.application-row{align-items:flex-start;flex-direction:column}.application-facts{grid-template-columns:1fr;gap:3px}.application-facts dd{margin-bottom:10px}.application-public h1{font-size:24px}.forecast-assignment{margin-top:0}}

/* 0.27.2: small administration-only delivery status. */
.registration-email-status{margin-top:18px}.registration-email-status h2{font-size:17px}.registration-email-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;border-top:1px solid var(--line);padding:12px 0}.registration-email-row p{margin:0;overflow-wrap:anywhere;min-width:0}.registration-email-row form{flex-shrink:0}@media(max-width:760px){.registration-email-row{flex-direction:column;gap:8px}}

/* 0.28.0: shared admin/project settings, no internal scrolling or floating actions. */
.settings-section-links{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 22px}.settings-section-links a{font-size:12px;padding:7px 10px;border:1px solid var(--line);border-radius:7px;background:var(--paper)}.settings-section{margin-bottom:26px;scroll-margin-top:20px}.settings-section>h2{font-size:19px;margin-bottom:11px}.settings-menu-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.settings-menu-card{display:block;padding:16px;min-width:0;color:var(--ink)}.settings-menu-card:hover{border-color:var(--teal);text-decoration:none}.settings-menu-card h3{font-size:15px;margin-bottom:6px;overflow-wrap:anywhere}.settings-menu-card p{font-size:12px;color:var(--muted);margin-bottom:8px}.settings-menu-card small{display:block;color:var(--teal);font-size:11px}.settings-menu-locked{background:#edf0ef}.settings-menu-locked small{color:var(--muted)}.settings-effect{font-size:13px;padding:0 0 12px;border-bottom:1px solid var(--line);max-width:950px}.settings-editor{max-width:1000px}.settings-editor .form-grid{align-items:start}.settings-editor .form-grid>.field:has(textarea){grid-column:1/-1}.settings-editor .actions{position:static;margin-top:16px}.settings-activity-layout{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr);gap:18px}.settings-activity-layout .activity-row h3{font-size:15px}.settings-activity-layout .activity-row p{font-size:12px;margin:4px 0}.settings-danger{margin-top:26px;padding-top:15px;border-top:1px solid var(--line)}.settings-danger>summary{font-size:12px;color:var(--muted);cursor:pointer}.settings-danger>p{margin:12px 0}.settings-navigation{flex-wrap:wrap;gap:8px}.settings-navigation .button{font-size:11px;white-space:normal}
@media(max-width:1100px){.settings-menu-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.settings-menu-grid,.settings-activity-layout{grid-template-columns:minmax(0,1fr)}.settings-menu-card{padding:14px}.settings-section-links{gap:6px}.settings-section-links a{font-size:11px}.settings-editor .form-grid{grid-template-columns:minmax(0,1fr)}}

@media(min-width:761px){.settings-editor .form-grid>.field:not(.checkbox-field)>label{min-height:2.8em;display:flex;align-items:flex-end}}


/* 0.29.0: short contextual help, no extra task header or sidebar menu section. */
.nav-utility{display:flex;align-items:flex-start;gap:8px;justify-content:space-between;margin-top:10px}.nav-utility .nav-tools{margin:0;min-width:0}.help-trigger{display:inline-flex;gap:6px;align-items:center;white-space:nowrap;padding:7px 8px;border-radius:7px;font-size:12px;line-height:1.5;min-height:36px}.sidebar .help-trigger{color:#e5f2ec}.help-trigger>span{border:1px solid currentColor;width:17px;height:17px;border-radius:50%;display:inline-grid;place-items:center;line-height:1}.help-trigger:focus-visible,.help-role-choice a:focus-visible,.help-topic-card:focus-visible{outline:3px solid #c49948;outline-offset:3px}.mobile-brand-help{display:none}.page-help-dialog{box-sizing:border-box;max-width:650px}.page-help-dialog p{font-size:14px}.help-steps{padding-left:24px;margin:16px 0}.help-steps li{padding-left:5px;margin:0 0 13px;line-height:1.7;overflow-wrap:anywhere}.help-dialog-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:18px}.help-preserve{font-size:11px!important;margin:12px 0 0}.help-manual{max-width:1050px}.help-topic-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.help-topic-card{padding:17px;display:block;min-width:0;color:var(--ink)}.help-topic-card h3{font-size:16px;margin-bottom:6px}.help-topic-card p{font-size:13px;color:var(--muted);margin:0;line-height:1.65}.help-topic-group{margin:25px 0}.help-topic-group>h2{font-size:19px}.help-article{max-width:850px}.help-intro{font-size:17px;line-height:1.7}.help-article section{margin-top:23px}.help-article h2{font-size:18px;margin-bottom:8px}.help-article p{line-height:1.8;overflow-wrap:anywhere}.help-example{padding:15px;background:var(--teal-soft);border-left:3px solid var(--teal);margin:20px 0}.help-example p{margin:0}.help-related{border-top:1px solid var(--line);margin-top:24px;padding-top:18px;display:flex;flex-wrap:wrap;gap:10px 20px}.help-related h2{width:100%}.help-search{max-width:760px;margin:20px 0}.help-search label{display:block;font-weight:650;margin-bottom:7px}.help-search>div{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.help-search input[type=search]{flex:1 1 220px;min-width:0}.help-role-choice{display:flex;gap:10px;flex-wrap:wrap}.help-role-choice a{padding:7px 11px;border:1px solid var(--line);border-radius:7px}.help-role-choice [aria-current]{background:var(--teal-soft);font-weight:700}
@media(max-width:900px){.student-app .nav-utility{display:none}.student-app .sidebar{position:relative;padding-right:100px}.student-app .mobile-brand-help{display:block;position:absolute;right:14px;top:9px}.student-app .mobile-task-tools .help-trigger{padding:0;min-height:28px;font-size:12px}.student-app .mobile-task-tools .help-trigger>span{display:none}}
@media(max-width:760px){.help-topic-grid{grid-template-columns:minmax(0,1fr)}.help-topic-card{padding:14px}.help-article{padding:17px}.help-steps{padding-left:20px}.help-search input[type=search]{flex-basis:100%}.help-dialog-actions{align-items:stretch;flex-direction:column}.help-intro{font-size:15px}.page-help-dialog .dialog-heading{align-items:flex-start}.page-help-dialog .dialog-heading h2{font-size:19px}}
@media print{.nav-utility,.mobile-brand-help,.page-help-dialog,.help-role-choice,.help-search,.help-dialog-actions{display:none!important}.help-topic-grid{grid-template-columns:1fr 1fr}.help-topic-card{break-inside:avoid}}
.nav-utility .nav-tools{padding-left:0;padding-right:0}

/* 0.31.0: compact login, direct calculator and separate help by the account. */
.public main:has(.compact-login){align-items:flex-start;flex:0 0 auto;padding-block:clamp(18px,4vh,42px)}
.public .compact-login{max-width:850px;grid-template-columns:minmax(0,1fr) minmax(290px,370px);gap:28px;align-content:start;align-items:center;margin:0 auto}
.compact-login .login-story{min-width:0}.compact-login .login-story h1{font-size:43px}.compact-login .login-story>p:not(.eyebrow){max-width:320px}
.sidebar .nav-utility{display:block;margin-top:10px}.sidebar .nav-utility a{padding:8px 11px;font-size:12px}
.sidebar-account{margin-top:auto;padding-top:14px}.sidebar-help{margin-bottom:8px}.sidebar-help .help-trigger{padding-left:11px}.sidebar-account .sidebar-bottom{margin-top:0}
@media(max-width:900px){.sidebar-account{padding-top:0}.sidebar-help{margin:0}.student-app .sidebar-help{display:none}.student-app .nav-utility{display:block}.student-app .nav-utility a{padding:6px 0}.student-app .sidebar-account .sidebar-bottom{position:absolute}}
@media(max-width:760px){.public .compact-login{max-width:410px;grid-template-columns:minmax(0,1fr);gap:12px}.compact-login .login-story h1{font-size:29px}.public main:has(.compact-login){padding:18px}}
@media print{.sidebar-account{display:none!important}}

/* 0.31.2: keep the previous two-column front page, with less empty space. */
.public main:has(.compact-login){padding:18px 24px}
.public .compact-login{gap:18px}
.compact-login .login-card{padding:22px}
.public .app-footer{margin-top:auto}
@media(max-width:760px){.public main:has(.compact-login){padding:16px 18px}.public .compact-login{gap:10px}.compact-login .login-card{padding:20px}}
/* Family layout and payroll explanations from 0.31.1. */
.family-setup-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:20px;align-items:start}.family-setup-facts,.family-names-card{min-width:0}.family-setup-facts>.panel{margin-bottom:14px}.family-setup-facts .adult-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.family-names-card h2{font-size:18px;margin-bottom:6px}.family-names-card .names-instruction{font-size:12px;margin-bottom:12px}.family-names-card .family-name-fields{grid-template-columns:minmax(0,1fr);gap:10px}.family-names-card .field{margin:0}.family-names-card label{font-size:12px;margin-bottom:4px}.family-names-card input:not([type=hidden]){padding:8px 10px;min-height:38px}.family-names-card .form-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.family-names-card .form-actions .button{font-size:12px}
.payroll-brief{padding:0 18px;margin:10px 0 6px;font-size:12px}.payroll-brief>div{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:3px 0}.payroll-brief dt{min-width:0}.payroll-brief dd{margin:0;white-space:nowrap;font-variant-numeric:tabular-nums}.pension-brief{padding:0 18px;margin:6px 0 12px;font-size:12px;color:var(--muted)}.salary-explanation,.payroll-teacher-notes{margin:0 18px 12px;font-size:12px;overflow-wrap:anywhere}.payroll-teacher-notes>summary{padding-left:0}
@media(max-width:1200px){.family-setup-facts .adult-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:1000px){.family-setup-layout{grid-template-columns:minmax(0,1fr)}.family-names-card{max-width:520px;width:100%}.family-setup-facts .adult-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.family-setup-facts .adult-grid{grid-template-columns:minmax(0,1fr)}}

/* 0.31.3: visible start money, quiet budget summary, no extra page header. */
.start-money{margin:12px 0;padding:12px 14px;background:var(--teal-soft);border-radius:8px;font-size:14px}.start-money>div{display:flex;gap:5px 16px;flex-wrap:wrap}.start-money>div>span{color:var(--muted);font-size:12px}.start-money p{margin:7px 0 0}.start-money details{margin-top:5px;font-size:12px}.start-money summary{cursor:pointer}.start-money-brief{margin-top:0}.saving-notice{flex-basis:100%;max-width:650px;white-space:normal}.saving-notice a{display:inline-block;margin-top:5px}

/* 0.31.4: bring login columns together; compact only the teacher overviews. */
@media(min-width:761px){
 .public .compact-login{max-width:700px;grid-template-columns:minmax(0,310px) minmax(290px,370px);gap:12px}
 .compact-login .login-story{padding:0}
}
@media(min-width:901px){
 .teacher-overview .topbar{height:48px;min-height:48px}
 .teacher-overview main{padding-top:18px;padding-bottom:24px}
 .teacher-overview .page-heading{margin-bottom:12px;gap:12px}
 .teacher-overview .page-heading h1{font-size:26px;margin-bottom:4px}
 .teacher-overview .page-heading p{margin-top:4px;margin-bottom:0}
 .teacher-overview .page-heading .eyebrow{display:none}
 .teacher-overview .stats{margin-bottom:14px}
 .teacher-overview .stats>div{padding:12px 16px}
 .teacher-overview .stats strong{font-size:25px}
 .teacher-overview .section-heading{margin:14px 0 10px}
 .teacher-overview .project-card{padding:16px}
 .teacher-overview .teacher-work-queue{padding:9px 12px;margin-bottom:10px}
 .teacher-overview .calendar-ready-notice{margin-block:8px;padding:8px 12px}
 .teacher-overview .calendar-running-note{margin-block:8px}
 .teacher-overview .compact-filters{margin:8px 0}
 .teacher-overview [data-login-selection] .panel-heading{padding:11px 14px}
 .teacher-overview .simple-groups td{padding:8px 12px}
 .teacher-overview .simple-groups th{padding:8px 12px}
 .teacher-overview .selection-actions{margin:10px 0;gap:8px}
}

/* 0.31.7: keep only the budget reviewer panel within the desktop viewport. */
@media(min-width:901px){
 .feedback-dock[data-budget-feedback].feedback-ready{position:static;align-self:start}
 .feedback-dock[data-budget-feedback].feedback-ready textarea{height:var(--budget-feedback-text-height,180px);min-height:90px}
 [data-budget-feedback]>.feedback-pinned{position:fixed;z-index:30;box-sizing:border-box;margin:0}
}

@media print{[data-budget-feedback]>.feedback-pinned{position:static!important;width:auto!important}}

/* 0.31.8: saving status never participates in a form, button row or page layout. */
.message.saving-notice{position:fixed;inset:auto 16px 16px auto;z-index:1100;width:min(430px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);overflow:auto;margin:0;padding:12px 38px 12px 14px;flex:none;align-self:auto;box-shadow:0 5px 22px #173a3828;font-size:13px;line-height:1.45}
.saving-notice-close{position:absolute;right:7px;top:5px;padding:2px 6px;font-size:18px;line-height:1}

/* A long card remains within the viewport; its own content stays reachable. */
@media(min-width:901px){[data-budget-feedback]>.feedback-pinned{overscroll-behavior:contain}[data-budget-feedback]>.feedback-pinned .feedback-actions{position:sticky;bottom:0;background:var(--paper);z-index:1;padding-block:5px}}

/* 0.32.0: one predictable project menu; all steps have direct links. */
.sidebar{overflow-y:auto}.project-menu{flex-shrink:0}.project-menu>summary{display:none}.sidebar .project-menu nav{display:grid;grid-template-columns:1fr;gap:2px}.sidebar .project-menu nav a{padding:6px 9px;min-width:0;font-size:12px;gap:7px;white-space:normal}.sidebar .project-menu .nav-text{white-space:normal;width:auto;text-align:left}.sidebar .project-menu .nav-text small{display:block;font-size:10px;font-weight:400;line-height:1.25;color:#c1d8cf;margin-top:2px}.sidebar .project-menu .step-indicator{flex:0 0 18px;width:18px;color:#c1d8cf}.sidebar .project-menu .task-future{opacity:.65}.sidebar .project-menu .task-current{box-shadow:inset 3px 0 #90d3b3}.sidebar .project-menu .task-current .nav-text{font-weight:750}.project-menu-tools{display:grid;gap:1px;border-top:1px solid #54756c;margin-top:10px;padding-top:8px}.sidebar .project-menu-tools span{width:auto;color:inherit}.student-app .sidebar .brand{margin-bottom:16px}.sidebar .project-clock{margin-bottom:10px}.menu-session{display:none}.row-review-help{margin-top:9px;font-size:11px}.row-review-help summary{cursor:pointer;color:var(--teal);font-weight:650}.row-review-help button{display:block;text-align:left;padding:5px 0}.row-review-help [role=status]{display:block;max-width:300px;white-space:normal;color:var(--teal)}.housing-cost-table tbody th{white-space:normal;min-width:150px;text-transform:none;font-size:12px}.housing-cost-table th small{display:block;font-size:10px;letter-spacing:0;font-weight:400;max-width:270px}.housing-cost-table td{font-variant-numeric:tabular-nums;white-space:nowrap}.housing-cost-table tfoot th,.housing-cost-table tfoot td{font-weight:700;border-top:2px solid var(--line);padding:10px}.housing-monthly-effect{padding:10px 12px;background:var(--teal-soft);border-radius:7px}.vehicle-cost-rows{margin:0}.vehicle-cost-rows>div{display:grid;grid-template-columns:minmax(140px,1fr) auto minmax(110px,auto);gap:6px 15px;align-items:start;padding:8px 0;border-bottom:1px solid var(--line);font-size:12px}.vehicle-cost-rows dt,.vehicle-cost-rows dd{margin:0}.vehicle-cost-rows dd{font-variant-numeric:tabular-nums;white-space:nowrap}.vehicle-cost-rows details summary{color:var(--teal);cursor:pointer;font-size:11px}.vehicle-cost-rows details p{max-width:440px;white-space:normal;margin:8px 0}.vehicle-cost-rows details[open]{grid-column:1/-1}.vehicle-cost-total{font-weight:700}.vehicle-operating-costs{margin:16px 0}.vehicle-ad-link{font-weight:650}.task-guidance{font-size:13px;color:#466159;margin:8px 0 0;max-width:820px;line-height:1.5}.task-guidance p{margin:0}.task-guidance a{font-weight:650;margin-left:5px}.page-heading:has(>.task-guidance){flex-wrap:wrap}.page-heading>.task-guidance{flex:1 0 100%}
@media(max-width:900px){.sidebar,.student-app .sidebar{position:relative;width:auto;display:block;padding:12px 16px;overflow:visible}.app-body,.student-app .app-body{margin-left:0}.sidebar .brand,.student-app .sidebar .brand{margin:0 0 8px;padding-right:100px;font-size:17px}.sidebar .brand small{display:none}.sidebar .project-clock,.student-app .sidebar>.project-clock{display:block;margin:2px 0 5px;font-size:10px;padding:0}.project-menu>summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;color:white;font-size:13px;padding:8px 10px;border:1px solid #63897c;border-radius:6px}.sidebar .project-menu[open]>nav,.student-app .sidebar .project-menu[open]>nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding-top:8px}.sidebar .project-menu .nav-text{text-align:left!important;white-space:normal!important}.sidebar .project-menu nav a{justify-content:flex-start;font-size:12px;padding:8px}.sidebar .project-menu nav .step-indicator{display:inline!important}.project-menu-tools{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:5px}.menu-session{display:flex;align-items:center;gap:12px;grid-column:1/-1;padding:6px 9px}.menu-session button{color:white}.sidebar-account,.sidebar .nav-label{display:none}.mobile-brand-help,.student-app .mobile-brand-help{display:block;position:absolute;right:14px;top:10px}.sidebar .mobile-brand-help .help-trigger{color:white}.student-app main{padding-bottom:24px}.mail-toast,.calendar-toast{bottom:16px}.app-footer{flex-wrap:wrap;gap:6px}.vehicle-cost-rows>div{grid-template-columns:minmax(130px,1fr) auto}.vehicle-cost-rows details{grid-column:1/-1}.housing-cost-table{font-size:11px}}
@media(min-width:901px) and (max-height:700px){.sidebar,.student-app .sidebar{padding-top:14px;padding-bottom:14px}.sidebar .brand,.student-app .sidebar .brand{margin-bottom:12px}.sidebar .project-menu nav a{padding-block:4px}.sidebar-account{padding-top:8px}.sidebar .project-clock{margin-bottom:5px}.project-menu-tools{margin-top:5px;padding-top:5px}}
@media print{.task-guidance,.project-menu{display:none!important}}

.calendar-month-strip strong{font-size:12px;line-height:1.4}.calendar-current strong{font-size:26px}.task-guidance [data-calendar-task-link]{display:inline-block;margin-top:4px}

.cost-attention{display:block;color:var(--amber);font-size:10px;white-space:normal;max-width:180px}

/* 0.32.1: compact direct navigation; the document owns vertical scrolling. */
@media(min-width:901px){
 /* Keep the green column painted for the full document, independently of the sticky menu. */
 .app-shell{--sidebar-width:224px;display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);align-items:start;background-image:linear-gradient(var(--nav),var(--nav));background-size:var(--sidebar-width) 100%;background-repeat:no-repeat}
 .app-shell.student-app{--sidebar-width:184px}
 .app-shell .app-body{grid-column:2;margin-left:0;min-width:0}
 .app-shell .sidebar{position:static;inset:auto;width:auto;min-height:100vh;min-height:100dvh;overflow:visible;padding-top:18px;padding-bottom:14px}
 .app-shell .brand,.app-shell.student-app .brand{margin-bottom:12px}
 .app-shell .sidebar .project-menu nav a{min-height:30px;padding-block:5px;line-height:20px}
 .app-shell .sidebar .project-menu .nav-text small{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 .app-shell .sidebar .project-menu .task-current .nav-text small{position:static;width:auto;height:auto;margin:0;overflow:visible;clip-path:none;white-space:normal;line-height:14px}
 .app-shell .project-menu-tools{margin-top:7px;padding-top:5px}
 .app-shell .sidebar-account{padding-top:8px}
 .app-shell .sidebar-help{margin-bottom:4px}
 .app-shell .sidebar-bottom{padding-top:10px}
}
@media(min-width:901px) and (max-width:950px){.app-shell.student-app{--sidebar-width:162px}}
/* 0.32.3: actual content height decides whether the menu stays fixed. */
@media(min-width:901px){.app-shell .sidebar.sidebar-fits{position:fixed;top:0;left:0;width:var(--sidebar-width)}}
@media print{.app-shell{display:block!important;background-image:none!important}.app-shell .app-body{margin:0}}

/* 0.33.0: recognizable student directions, without changing task order. */
.student-app .task-guidance,.student-app .task-instruction,.student-app .forecast-assignment{background:var(--amber-soft);border-left:4px solid var(--amber);border-radius:8px;padding:10px 14px;color:#604b27;line-height:1.5;max-width:860px;margin:8px 0 12px;font-size:13px}
.student-app .task-guidance p,.student-app .forecast-assignment p{margin:0}.student-app .task-guidance a{display:inline-block;margin:4px 0 0}.student-app .page-heading>.task-guidance{margin-bottom:0}
.project-activity,.admin-project-identity{display:block;font-size:11px;line-height:1.5;color:var(--muted)}.admin-project-identity{white-space:normal}.app-shell .topbar:has(.admin-project-identity){height:auto;min-height:67px;padding-block:10px}
.field-error{color:var(--red);font-size:12px;margin:5px 0 0}.field input,.field select,.field textarea,.amount-field input{scroll-margin-block:70px}
.mail-read-all{margin:0}.mail-read-all button{white-space:normal}

/* 0.33.1: explicit own read state; sent/oversight are never labelled read. */
.mail-list-date .mail-read-state{display:inline-block;align-self:flex-end;font-size:11px;font-weight:700;padding:3px 9px;border-radius:20px;line-height:1.4;white-space:nowrap}
.mail-list-date .is-unread{background:var(--teal);color:#fff}.mail-list-date .is-read{background:#e8eeeb;color:#43594e}.mail-list-date .is-neutral{background:#f0f2f1;color:var(--muted)}
.mail-list-row.unread .mail-list-main>strong{font-weight:800}.mail-list-row.unread .mail-list-icon{font-size:17px}.mail-list-row:not(.unread) .mail-list-main>strong{font-weight:600}

/* 0.33.2: one status-aware instruction on the opened teacher group. */
.teacher-task-guidance{background:var(--amber-soft);border-left:4px solid var(--amber);border-radius:8px;padding:12px 16px;margin:0 0 18px;color:#604b27}.teacher-task-guidance h2{font-size:16px;margin:0 0 5px}.teacher-task-guidance p{margin:0;line-height:1.5}.teacher-task-guidance .button{white-space:normal;flex-shrink:0}
@media(max-width:700px){.teacher-task-guidance{flex-direction:column;align-items:flex-start;gap:12px}}

/* 0.33.3: submitted versions compared within the existing left review column. */
.resubmission-body{padding:0 16px 14px}.resubmission-body>p{font-size:12px}.resubmission-table th,.resubmission-table td{padding:9px 10px;white-space:normal;overflow-wrap:anywhere}.resubmission-table th{min-width:0}.resubmission-table th small,.resubmission-note small{display:block;font-size:11px;font-weight:400}.resubmission-note details{font-size:12px}.resubmission-note summary{cursor:pointer;font-weight:650}.resubmission-note p{margin:5px 0 12px}.resubmission-body{overflow-wrap:anywhere}
@media(max-width:650px){.resubmission-table thead{display:none}.resubmission-table,.resubmission-table tbody,.resubmission-table tr,.resubmission-table th,.resubmission-table td{display:block;width:100%}.resubmission-table tbody tr:not(.resubmission-note){border-top:1px solid var(--line)}.resubmission-table th,.resubmission-table td{border:0;padding:5px 8px}.resubmission-table td[data-label]:before{content:attr(data-label) ': ';font-weight:650}.resubmission-table .resubmission-note td{padding-bottom:12px}}

/* Extraoppgaver: klar avstand og samme ramme som øvrige vurderingsfelt. */
[data-extra-notice] [data-extra-link]{margin-top:12px}
.extra-review-options{min-width:0;margin:0 0 18px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:var(--surface,#fff)}
.extra-review-options legend{padding:0 6px;font-weight:650}
.extra-assignment-choices{margin:14px 0;gap:12px;flex-wrap:wrap}

/* 0.37.4: explicit whole-project actions below the group controls. */
.project-lifecycle{margin:24px 0 20px;padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper)}.project-lifecycle h2{font-size:16px;margin:0 0 4px}.project-lifecycle p{font-size:12px;color:var(--muted);margin:0 0 12px}.project-lifecycle .actions form{margin:0}
@media(max-width:650px){.project-lifecycle .button{white-space:normal;text-align:center}.project-lifecycle .actions{align-items:flex-start}}
@media print{.project-lifecycle{display:none!important}}

/* 0.38.0: one solution page, separated actions and a quiet fixed-place finish row. */
.solution-actions{gap:12px;margin:16px 0 12px}.solution-actions .button{margin:0}.challenge-monthly-solution{margin:18px 0;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.challenge-monthly-solution>p{font-size:12px;color:var(--muted)}.challenge-next-stage{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:24px 0 0;padding:12px 0;border-top:1px solid var(--line)}.challenge-next-stage strong,.challenge-next-stage span{display:block}.challenge-next-stage span{font-size:12px;color:var(--muted);margin-top:2px}.challenge-next-stage .button{flex:0 0 auto}
@media(max-width:650px){.solution-actions{align-items:stretch}.solution-actions .button{flex:1 1 180px;white-space:normal}.challenge-next-stage{flex-direction:column;align-items:flex-start;gap:10px}.challenge-next-stage .button{white-space:normal}}
@media print{.challenge-next-stage,.solution-actions{display:none!important}}

/* 0.38.1: focus the passive receipt quietly; normal control focus stays visible. */
.submission-receipt-focus:focus{outline:none}
.challenge-next-stage{margin:12px 0 18px;padding:10px 0;flex-wrap:wrap}
.challenge-next-stage>div:first-child{flex:1 1 270px}
.challenge-next-stage>.actions{display:flex;flex:0 1 auto;gap:10px;flex-wrap:wrap}
.challenge-next-stage .button{white-space:normal}
@media(max-width:650px){.challenge-next-stage>div:first-child{flex:auto}.challenge-next-stage>.actions{width:100%;align-items:stretch}.challenge-next-stage .button{flex:1 1 180px}}
