:root{--ochre: #007aff;--ochre-deep: #0066cc;--ochre-soft: #eaf3ff;--charcoal: #1d1d1f;--light-grey: #f5f5f7;--sandstone: #fff6e5;--navy: #5856d6;--navy-deep: #3634a3;--navy-soft: #eeedfb;--eucalypt: #34c759;--eucalypt-deep: #248a3d;--eucalypt-soft: #e8f8ed;--jacaranda: #af52de;--jacaranda-deep: #8944ab;--jacaranda-soft: #f6eafc;--heritage-rose: #ff3b30;--rose-deep: #d70015;--rose-soft: #ffecea;--ink: #1d1d1f;--ink-soft: #86868b;--parchment: #f5f5f7;--sheet: #ffffff;--rule: rgba(0, 0, 0, .08);--brass: #007aff;--brass-deep: #0066cc;--oxblood: #ff3b30;--forest: #34c759;--sky: #007aff;--mint: #34c759;--amber: #ff9500;--coral: #ff2d55;--lilac: #5856d6;--hd: #34c759;--d: #007aff;--c: #5856d6;--p: #8e8e93;--f: #ff3b30;--shadow: 0 2px 2px rgba(0, 0, 0, .16);--shadow-hover: 0 6px 16px rgba(0, 0, 0, .16);--radius: 18px;--font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Helvetica Neue", Helvetica, Arial, sans-serif;--mono: ui-monospace, "SF Mono", Menlo, Monaco, "Courier New", monospace}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;color:var(--ink);background:var(--light-grey);font-family:var(--font);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}.app{width:min(1280px,calc(100% - 32px));margin:0 auto;padding:28px 0 64px}.site-footer{margin-top:48px;padding-top:22px;border-top:1px solid var(--rule);color:var(--ink-soft);font-size:13px;display:grid;gap:8px}.site-footer p{margin:0}.site-footer-links{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.site-footer-links button,.site-footer-links a{border:0;background:none;padding:0;color:var(--ochre-deep);box-shadow:none;font-size:inherit;text-decoration:underline}.masthead{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;padding-bottom:22px;border-bottom:1px solid var(--rule)}.masthead-heading{display:flex;flex-wrap:wrap;align-items:center;gap:12px 14px}.masthead-heading h1{margin:0}.masthead-actions{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px}.backup-actions{display:flex;flex-wrap:wrap;gap:8px}.subscribe-plans{display:grid;gap:12px}.subscribe-plan{display:grid;gap:6px;padding:16px 18px;border-radius:16px;background:var(--sheet);border:1px solid var(--rule);border-left:3px solid var(--ochre);box-shadow:var(--shadow);text-decoration:none;color:inherit}.subscribe-plan strong{font-size:16px}.subscribe-plan em{font-style:normal;font-size:28px;font-weight:650;letter-spacing:-.03em}.subscribe-plan span:not(.btn){color:var(--ink-soft);font-size:14px}.subscribe-plan .btn{justify-self:start;margin-top:8px}.eyebrow{margin:0 0 4px;letter-spacing:.18em;text-transform:uppercase;font-size:11px;color:var(--ink-soft);font-weight:600}h1,h2,h3{font-family:var(--font);font-weight:650;letter-spacing:-.022em;margin:0}h1{font-size:clamp(32px,4vw,48px)}.student-name{display:grid;gap:6px;min-width:220px}.student-name span,.field>span{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);font-weight:600}input,select,textarea{width:100%;border:1px solid var(--rule);background:var(--sheet);border-radius:10px;padding:10px 12px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--brass);box-shadow:0 0 0 3px #007aff38}.toolbar,.stats,.list-toolbar,.form-actions,.row,.subject-head,.head-actions,.card-top,.card-foot{display:flex;gap:12px;align-items:center}.toolbar{margin:22px 0 18px;flex-wrap:wrap}.view-switch{display:flex;background:var(--sheet);border:1px solid var(--rule);border-radius:999px;padding:3px;box-shadow:var(--shadow)}.view-switch button{border:0;background:transparent;border-radius:999px;padding:8px 14px;color:var(--ink-soft)}.view-switch button.active{background:var(--ochre);color:#fff}.search{flex:1;min-width:240px}.toolbar-filters{display:flex;gap:12px;align-items:center}.toolbar select{width:170px}.btn,.icon-btn{border:1px solid var(--rule);background:var(--sheet);border-radius:999px;padding:10px 16px;box-shadow:var(--shadow)}.btn.primary{background:var(--ochre);color:#fff;border-color:var(--ochre-deep);box-shadow:var(--shadow)}.btn.ghost{background:transparent}.btn.danger,.btn.compact.danger{color:var(--oxblood);border-color:#ff3b3047}.btn.compact{padding:7px 12px;font-size:13px}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.demo-banner{margin:16px 0 0;padding:12px 16px;border-radius:12px;background:var(--sheet);border:1px solid var(--rule);box-shadow:var(--shadow);color:var(--ink-soft);font-size:14px;font-weight:600}.out-link{display:inline-flex;align-items:center;text-decoration:none;border:1px solid var(--ochre);background:var(--ochre-soft);color:var(--ochre-deep);border-radius:999px;padding:5px 10px;font-size:12px;font-weight:700;box-shadow:var(--shadow)}.out-link:hover{background:#fff}.link-bar{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.due-banner{margin:0 0 22px;padding:12px 14px;border-radius:14px}.due-banner.urgent{background:var(--sheet);border:1px solid var(--rule);border-left:3px solid var(--oxblood);box-shadow:var(--shadow);color:var(--oxblood)}.due-banner.soon{background:var(--sheet);border:1px solid var(--rule);border-left:3px solid var(--amber);box-shadow:var(--shadow);color:var(--ink)}.due-banner strong{display:block;margin-bottom:8px;font-size:13px;letter-spacing:.08em;text-transform:uppercase}.due-banner ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}.due-banner button{width:100%;text-align:left;display:grid;gap:2px;padding:8px 10px;border-radius:12px;border:1px solid rgba(0,122,255,.12);background:#ffffffb3}.due-banner button em{font-style:normal;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.due-banner button span{font-weight:700}.due-banner button small{color:var(--ink-soft)}.due-banner button.lecture{border-color:var(--navy)}.due-banner button.tutorial{border-color:var(--eucalypt)}.due-banner button.assignment{border-color:var(--ochre)}.due-banner button.exam{border-color:var(--rose-deep)}.icon-btn{width:36px;height:36px;padding:0;font-size:22px;line-height:1}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:22px}.stats article{background:var(--sheet);border:1px solid var(--rule);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow)}.stats article:nth-child(1),.stats article:nth-child(2),.stats article:nth-child(3),.stats article:nth-child(4){background:var(--sheet);border-color:var(--rule);box-shadow:var(--shadow);border-left-width:3px}.stats article:nth-child(1){border-left-color:var(--navy)}.stats article:nth-child(2){border-left-color:var(--ochre)}.stats article:nth-child(3){border-left-color:var(--rose-deep)}.stats article:nth-child(4){border-left-color:var(--eucalypt)}.stats span{display:block;font-size:12px;color:var(--ink-soft);margin-bottom:6px}.stats strong{font-family:var(--font);font-size:28px}.stats .small{font-size:18px}.layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:22px}.layout.week-mode{grid-template-columns:1fr}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;overflow:visible}.subject-card,.panel,.item-card,.rail,.empty-state,.subject-view{background:var(--sheet);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow)}.stats article,.subject-card,.panel,.item-card,.rail,.empty-state,.timeline button,.week-item,.day-col,.due-banner,.hero-grade,.weekend-strip,.subscribe-plan{transition:transform .22s cubic-bezier(.25,.1,.25,1),box-shadow .22s ease}@media(hover:hover){.stats article:hover,.subject-card:hover,.panel:hover,.item-card:hover,.rail:hover,.empty-state:hover,.timeline button:hover,.week-item:hover,.day-col:hover,.due-banner:hover,.hero-grade:hover,.weekend-strip:hover,.subscribe-plan:hover{transform:translateY(-6px);box-shadow:var(--shadow-hover);z-index:2}}@media(prefers-reduced-motion:reduce){.stats article,.subject-card,.panel,.item-card,.rail,.empty-state,.timeline button,.week-item,.day-col,.due-banner,.hero-grade{transition:none}.stats article:hover,.subject-card:hover,.panel:hover,.item-card:hover,.rail:hover,.empty-state:hover,.timeline button:hover,.week-item:hover,.day-col:hover,.due-banner:hover,.hero-grade:hover{transform:none}}.subject-card{text-align:left;padding:18px;display:grid;gap:12px;min-height:280px;position:relative}.subject-card:before{content:"";position:absolute;inset:0 0 auto;height:8px;border-radius:var(--radius) var(--radius) 0 0;background:var(--sky)}.subject-card:nth-child(4n+1),.subject-card:nth-child(4n+2),.subject-card:nth-child(4n+3),.subject-card:nth-child(4n+4){background:var(--sheet);border-color:var(--rule);box-shadow:var(--shadow)}.subject-card:nth-child(4n+1):before{background:var(--navy)}.subject-card:nth-child(4n+2):before{background:var(--eucalypt)}.subject-card:nth-child(4n+3):before{background:var(--ochre)}.subject-card:nth-child(4n+4):before{background:var(--rose-deep)}.subject-card h3{font-size:26px;line-height:1.1}.code,.code-lg{font-family:var(--mono);letter-spacing:.04em}.code,.term{font-size:12px;color:var(--ink-soft)}.card-top,.card-foot{justify-content:space-between}.subject-card dl{margin:0;display:grid;gap:8px}.subject-card dl div{display:grid;grid-template-columns:86px 1fr;gap:8px;font-size:14px}dt{color:var(--ink-soft);font-weight:500}dd{margin:0}.grade,.mark{display:inline-flex;align-items:center;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600;background:#007aff14}.grade.hd,.mark.hd,.hero-grade.hd{color:var(--hd);background:#34c7592e}.grade.d,.mark.d,.hero-grade.d{color:var(--d);background:#007aff1f}.grade.c,.mark.c,.hero-grade.c{color:var(--c);background:#5856d629}.grade.p,.mark.p,.hero-grade.p{color:var(--p);background:#8e8e9329}.grade.f,.mark.f,.hero-grade.f,.mark.pending{color:var(--f);background:#ff3b301f}.next{font-size:12px;color:var(--ink-soft)}.rail{padding:20px;height:fit-content;position:sticky;top:16px;background:var(--sheet);border-color:var(--rule);box-shadow:var(--shadow)}.lede,.empty-copy,.schedule-note,.meta{color:var(--ink-soft)}.lede{font-size:14px;margin:8px 0 16px}.timeline{list-style:none;margin:0;padding:0;display:grid;gap:8px}.timeline button{width:100%;text-align:left;background:var(--sheet);border:1px solid var(--rule);border-radius:14px;padding:12px;display:grid;gap:4px;box-shadow:var(--shadow)}.timeline button.lecture{border-left:3px solid var(--navy)}.timeline button.tutorial{border-left:3px solid var(--eucalypt)}.timeline button.assignment{border-left:3px solid var(--ochre)}.timeline button.exam{border-left:3px solid var(--rose-deep)}.timeline strong{font-size:14px}.timeline small{color:var(--ink-soft);display:flex;gap:8px;align-items:center;flex-wrap:wrap}.when{display:flex;justify-content:space-between;font-size:12px;color:var(--ink-soft)}.danger{color:var(--oxblood)}.warn{color:var(--ochre-deep)}.note{color:var(--brass-deep)}.muted{color:var(--ink-soft)}.pill{display:inline-flex;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin-right:6px}.pill.lecture{background:var(--navy);color:#fff}.pill.tutorial{background:var(--eucalypt);color:#fff}.pill.assignment{background:var(--ochre);color:#fff}.pill.exam{background:var(--rose-deep);color:#fff}.empty-state{padding:48px 32px;text-align:center}.empty-state h2{margin-bottom:8px}.subject-view{padding:20px;background:var(--sheet);border-color:var(--rule);box-shadow:var(--shadow)}.subject-head{justify-content:space-between;margin-bottom:18px}.subject-hero{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding-bottom:18px;border-bottom:1px solid var(--rule)}.code-lg{margin:0 0 6px;color:var(--brass-deep)}.subject-hero h2{font-size:clamp(28px,4vw,40px)}.hero-grade{min-width:180px;text-align:right;padding:12px 16px;border-radius:16px}.hero-grade span,.hero-grade em,.hero-grade small{display:block;font-size:12px;font-style:normal}.hero-grade small{margin-top:6px;line-height:1.35;max-width:220px;margin-left:auto}.hero-grade strong{font-family:var(--font);font-size:36px}.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:18px 0}.tabs button{border:0;background:transparent;padding:8px 12px;border-bottom:2px solid transparent;color:var(--ink-soft)}.tabs button.active{color:var(--ochre);border-bottom-color:var(--ochre)}.tabs i{font-style:normal;margin-left:6px;font-size:11px;background:var(--navy-soft);color:var(--ochre);border-radius:99px;padding:1px 7px}.overview{display:grid;grid-template-columns:1fr 1fr;gap:12px}.panel{padding:16px 18px}.panel.timetable,.panel.people,.panel.links,.panel.forecast,.panel.assessments,.panel.cases,.panel.readings,.panel.notes{background:var(--sheet);border-color:var(--rule);box-shadow:var(--shadow)}.panel.timetable{border-top:3px solid var(--navy)}.panel.people{border-top:3px solid var(--jacaranda)}.panel.links{border-top:3px solid var(--ochre)}.panel.forecast{border-top:3px solid var(--amber)}.panel.assessments{border-top:3px solid var(--ochre)}.panel.cases{border-top:3px solid var(--jacaranda);overflow-x:auto}.panel.readings,.panel.notes{border-top:3px solid var(--eucalypt)}.panel.links p{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline}.panel.links a{color:var(--ochre);font-weight:700}.case-preview{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}.case-preview li{display:grid;gap:2px;background:#ffffff8c;border-radius:12px;padding:8px 10px}.case-preview em{font-style:italic;color:var(--ink-soft);font-size:13px}.need-list{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}.need-list li{background:#ffffff8c;border-radius:12px;padding:8px 10px;font-size:13px}.need-list .locked{color:var(--eucalypt-deep)}.need-list .reach{color:var(--ochre-deep)}.need-list .out,.need-list .missed{color:var(--ochre)}.need-line{font-size:12px;font-weight:600;color:var(--ochre-deep)}.panel.wide{grid-column:1 / -1}.panel h3{margin-bottom:10px;font-size:20px}.panel p{margin:8px 0}.panel b{display:inline-block;min-width:118px;color:var(--ink-soft);font-weight:500}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--rule);vertical-align:middle}th{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}.comments-preview{white-space:pre-wrap}.list-toolbar{justify-content:space-between;flex-wrap:wrap;margin-bottom:12px}.stack{display:grid;gap:12px}.item-card{padding:16px}.item-card.lecture,.item-card.tutorial,.item-card.assignment,.item-card.exam{background:var(--sheet);border-color:var(--rule);box-shadow:var(--shadow);border-left-width:3px}.item-card.lecture{border-left-color:var(--navy)}.item-card.tutorial{border-left-color:var(--eucalypt)}.item-card.assignment{border-left-color:var(--ochre)}.item-card.exam{border-left-color:var(--rose-deep)}.item-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.item-grid.assess{grid-template-columns:repeat(4,minmax(0,1fr))}.field{display:grid;gap:6px}.date-field{display:flex;align-items:center;gap:8px;min-width:0}.date-field input{flex:1;min-width:0}.date-field em{flex:0 0 auto;font-style:normal;font-family:var(--mono);font-size:12px;font-weight:600;color:var(--ink-soft);white-space:nowrap}.item-grid .field:has(textarea),.item-grid .urgency,.item-grid .prep{grid-column:1 / -1}.prep{display:grid;gap:10px;padding-top:4px;border-top:1px dashed var(--rule)}.prep-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.prep-head h4{margin:0;font-size:14px}.prep-head span{font-size:12px;color:var(--ink-soft);margin-right:auto}.case-row,.reading-row{display:grid;gap:8px;align-items:center}.case-row{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto auto}.case-row .ratio{grid-column:1 / -1}.reading-row{grid-template-columns:auto minmax(0,1fr) auto}.cases-tab{display:grid;gap:12px}.case-table input{width:100%;min-width:0}.reading-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.reading-list li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 10px;align-items:center;background:#ffffff8c;border-radius:12px;padding:8px 10px}.reading-list small{grid-column:2;color:var(--ink-soft)}.urgency{display:flex;gap:10px;align-items:center;justify-content:flex-end}.comments-panel textarea,.full-area{min-height:180px;resize:vertical}.modal-backdrop{position:fixed;inset:0;background:#00000073;display:grid;place-items:center;padding:24px;z-index:20}.modal{width:min(560px,100%);background:var(--sheet);border-radius:20px;padding:20px;border:1px solid var(--rule);box-shadow:var(--shadow-hover)}.modal.wide{width:min(780px,100%)}.modal.legal{width:min(720px,100%);max-height:min(86vh,840px);display:flex;flex-direction:column}.modal.legal .modal-head{flex-shrink:0}.legal-body{overflow:auto;display:grid;gap:12px;padding-right:4px}.legal-body h3{margin:8px 0 0;font-size:16px}.legal-body p,.legal-body li{margin:0;color:var(--ink);font-size:15px;line-height:1.55}.legal-body ul{margin:0;padding-left:1.2em;display:grid;gap:8px}.legal-body a{color:var(--ochre-deep)}a.btn{display:inline-flex;align-items:center;text-decoration:none}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.full,.form-grid .field:has(.full-area),.form-actions{grid-column:1 / -1}.form-actions{justify-content:flex-end;margin-top:6px}.chip-input{display:flex;gap:8px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1px solid var(--rule);background:var(--parchment);border-radius:999px;padding:6px 10px}.toast{position:fixed;right:20px;bottom:20px;background:var(--ochre);color:#fff;padding:12px 16px;border-radius:999px;box-shadow:var(--shadow)}.week-view{display:grid;gap:16px}.week-toolbar{display:grid;gap:10px}.week-title h2{font-size:28px}.week-title p{margin:2px 0 0;color:var(--ink-soft)}.missed-banner{margin:0;padding:10px 14px;border-radius:12px;background:var(--sheet);border:1px solid var(--rule);border-left:3px solid var(--oxblood);box-shadow:var(--shadow);color:var(--oxblood);font-weight:600}.week-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;overflow:visible}.day-col{background:var(--sheet);border:1px solid var(--rule);border-radius:16px;box-shadow:var(--shadow);padding:12px;min-height:280px;display:grid;align-content:start;gap:8px}.day-col header{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding-bottom:8px;border-bottom:1px solid var(--rule)}.day-col header span{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}.day-col.today{background:var(--sheet);border-color:var(--ochre);box-shadow:var(--shadow)}.day-col.past{background:var(--parchment)}.week-item{display:grid;gap:6px;padding:8px;border-radius:12px;border:1px solid var(--rule);box-shadow:var(--shadow);background:var(--sheet)}.week-item.lecture{border-left:3px solid var(--navy)}.week-item.tutorial{border-left:3px solid var(--eucalypt)}.week-item.assignment{border-left:3px solid var(--ochre)}.week-item.exam{border-left:3px solid var(--rose-deep)}.week-item.missed{outline:2px solid var(--oxblood)}.week-item.attended,.week-item.submitted,.week-item.done{opacity:.78}.week-item-main{display:grid;gap:2px;text-align:left;border:0;background:transparent;padding:0;width:100%}.week-item-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px}.week-item-actions .link-bar{margin-top:0}.week-time{font-family:var(--mono);font-size:11px;color:var(--ink-soft)}.week-item strong{font-size:14px;line-height:1.25}.week-item small{color:var(--ink-soft);font-size:12px}.prep-chip{font-style:normal;font-size:11px;font-weight:600;color:var(--navy);background:#ffffffa6;border-radius:99px;padding:1px 7px;width:fit-content}.done-tick{display:inline-flex;align-items:center;gap:6px;width:fit-content;font-size:12px;font-weight:600;cursor:pointer}.done-tick.missed{color:var(--ochre)}.done-tick.attended,.done-tick.submitted,.done-tick.done{color:var(--eucalypt)}.weekend-strip{background:var(--sheet);border:1px solid var(--rule);box-shadow:var(--shadow);border-radius:16px;padding:16px}.weekend-strip h3{margin-bottom:10px}.weekend-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.week-hint{margin:0}@media(max-width:980px){.layout,.stats,.overview,.form-grid,.item-grid,.item-grid.assess,.week-grid,.case-row,.reading-row,.reading-list li{grid-template-columns:1fr}.rail{position:static}.masthead,.masthead-actions,.subject-hero,.list-toolbar{flex-direction:column;align-items:stretch}.hero-grade{text-align:left}}@media(prefers-reduced-motion:reduce){.stats article,.subject-card,.empty-state,.timeline button,.week-item{transition:none}.stats article:hover,.subject-card:hover,.empty-state:hover,.timeline button:hover,.week-item:hover{transform:none}}.print-sheet{display:none}.tour-root{position:fixed;inset:0;z-index:40;pointer-events:none}.tour-dim,.tour-shade{position:absolute;background:#1d1d1f75}.tour-dim{inset:0}.tour-ring{position:absolute;border:2px solid var(--ochre);border-radius:18px;pointer-events:none}.tour-popup{position:absolute;z-index:42;pointer-events:auto;background:var(--sheet);color:var(--ink);border:1px solid var(--rule);border-radius:18px;padding:18px 18px 14px;box-shadow:var(--shadow-hover);max-width:360px}.tour-popup.cinematic{top:auto;bottom:28px;left:50%;transform:translate(-50%);width:min(520px,calc(100vw - 40px));max-width:520px}.tour-kicker{margin:0 0 6px;letter-spacing:.16em;text-transform:uppercase;font-size:11px;font-weight:600;color:var(--ochre)}.tour-popup h2{font-size:20px;margin:0 0 8px}.tour-popup p{margin:0;color:var(--ink-soft);font-size:15px;line-height:1.45}.tour-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.tour-dots{display:flex;flex-wrap:wrap;gap:5px;list-style:none;margin:14px 0 0;padding:0}.tour-dots li{width:7px;height:7px;border-radius:999px;background:var(--rule)}.tour-dots li.active{background:var(--ochre);width:16px}@media print{@page{margin:14mm}body{background:#fff;color:#111}.no-print{display:none!important}.print-sheet{display:block;font-family:Georgia,Times New Roman,serif}.print-sheet header{margin-bottom:18px;padding-bottom:10px;border-bottom:2px solid #111}.print-sheet h1{font-size:26px;margin:0 0 6px}.print-sheet h2{font-size:16px;letter-spacing:.08em;text-transform:uppercase;margin:18px 0 8px}.print-sheet p{margin:0;font-size:12px}.print-sheet table{width:100%;border-collapse:collapse;font-size:12px;margin-bottom:8px}.print-sheet th,.print-sheet td{border-bottom:1px solid #ccc;padding:6px 5px;text-align:left;vertical-align:top}.print-sheet th{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#444}}
