/* RagnoMath visual system: soft surfaces, readable type, rounded controls. */
:root{--ink:#213c43;--window:#fff;--window-2:#e7efee;--page:#f2f6f4;--line:#d7e2df;--blue:#255d5e;--blue-hi:#3f7877;--gold:#f4c571;--gold-d:#dba340;--muted:#5b7175;--font-pixel:"Trebuchet MS","Segoe UI",sans-serif;--font-kid:"Trebuchet MS","Segoe UI",sans-serif}
body{background:radial-gradient(ellipse at top left,#dcece5,transparent 48%),#f4f7f5;font-family:var(--font-kid);color:var(--ink)}
.win{border:1px solid #cbdad7;border-radius:20px;box-shadow:0 12px 36px #183e4210}
.win-title{background:#edf4f1;color:#254c50;border-bottom:1px solid #dbe6e2;text-shadow:none;box-shadow:none;padding:15px 20px}
.win-title h2{font-size:1.1rem;font-weight:700}.win-body{padding:20px}
.btn{border:1px solid #b9ceca;border-radius:12px;box-shadow:none;min-height:44px;padding:10px 16px;transition:background .15s,transform .15s}
.btn.go{background:#265e5e;color:white;border-color:#265e5e;box-shadow:none}.btn:hover:not(:disabled){filter:brightness(.96);transform:translateY(-1px)}
.btn.danger{box-shadow:none}.topbar{background:#fff;color:#23474b;border:0;border-bottom:1px solid #d7e4de;box-shadow:none;text-shadow:none;padding:20px 28px;gap:18px}
.brand{font-size:1.6rem;letter-spacing:-.06em}.brand small{letter-spacing:0;color:#627b7b;font-size:.85rem}
.tb{color:#325b60;text-shadow:none}.tb:hover{background:#eef4f1;border-color:transparent}
.layout{padding:28px;gap:24px;grid-template-columns:260px minmax(0,1fr);max-width:1600px}
.logo{color:#265e5e;text-shadow:none;font-family:var(--font-kid);letter-spacing:-.07em;font-size:3.5rem}
.auth-wrap{max-width:500px;padding-top:60px;gap:24px}.auth-wrap .sub{margin-top:12px;color:#607776}
input:not([type=checkbox]):not([type=radio]),select,textarea{font:inherit;border:1px solid #afc6c0;border-radius:10px;padding:12px;background:#fff;min-height:44px;color:#213c43}
.class-list button{border:1px solid #e0e9e4;border-radius:12px;padding:14px 12px;min-height:54px}.class-list button[aria-current=true]{background:#e5f0e9;border-color:#77a793;box-shadow:inset 4px 0 #438369}
.class-head h3{font-weight:700;font-size:1.8rem}.table-wrap{border:1px solid #d7e3df;border-radius:14px}.roster th{padding:15px 12px;background:#f0f5f2}.roster td{padding:14px 12px}.roster tbody tr:hover{background:#f5faf6}
img.spr,#map-canvas,#ground{image-rendering:auto!important}dialog{max-height:90vh}dialog::backdrop{background:#12363777;backdrop-filter:blur(5px)}
:focus-visible{outline:3px solid #c78625;outline-offset:3px}
@media(max-width:860px){.layout{grid-template-columns:1fr;padding:16px}.topbar{padding:18px}.brand{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition:none!important;scroll-behavior:auto!important}}

.rm-fluency-link{position:fixed;right:12px;bottom:12px;z-index:12;background:#265e5e;color:white;padding:10px 14px;border-radius:14px;text-decoration:none;font:700 14px system-ui;box-shadow:0 3px 12px #183e4220}
@media print{.rm-fluency-link{display:none}}

.calendar-question{width:min(100%,660px);margin:auto}.calendar-ask{font-size:clamp(16px,2.5vw,21px);line-height:1.4}.calendar-pages{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.calendar-grid{border-collapse:separate;border-spacing:2px;table-layout:fixed;width:100%;max-width:330px;color:#253c33;font-family:system-ui,sans-serif;font-size:14px}.calendar-grid caption{padding:9px;background:#28694f;color:white;font-size:18px;font-weight:750;border-radius:10px 10px 0 0}.calendar-grid th{font-size:11px;padding:5px 0;background:#cce4d7}.calendar-grid td{height:30px;padding:3px;background:#f4f8ed;border:1px solid #b8cdbd;text-align:center;vertical-align:top}.calendar-grid td:nth-child(n+6){background:#f9e8ce}.calendar-grid td.calendar-empty{background:transparent;border-color:transparent}.calendar-grid small{display:block;font-size:9px;line-height:1.2;color:#644526;overflow-wrap:anywhere}.calendar-grid abbr{text-decoration:none}.calendar-months{font:13px/1.7 system-ui,sans-serif}.calendar-months b{background:#ffe4a1;padding:3px}.calendar-question #calendar-answer{color:#28694f;font-weight:bold;margin:3px}

/* Shop: browsing cards and a consistent, explicit checkout. */
.shop-head{gap:16px;padding:4px 0 18px;align-items:center}.shop-head>div:nth-child(2){flex:1}.shop-head small,.shop-category-note,.shop-fine{color:#5b7175;font-size:14px;line-height:1.5}.shop-wallet{background:#fff2cf;border:1px solid #e8cd8d;border-radius:16px;padding:12px 20px;text-align:center;min-width:90px}.shop-wallet small{display:block}.shop-wallet b{font-size:28px;color:#684e1f}.shop-catalogue{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px!important}.shop-catalogue li{grid-template-columns:52px minmax(0,1fr)!important;padding:16px!important;border:1px solid #d5e2da!important;border-radius:16px!important;gap:12px!important;align-content:start}.shop-catalogue .nm{font-size:17px}.shop-catalogue .nm small{font-size:13px;line-height:1.5;margin-top:5px;color:#58716a}.shop-catalogue .price{grid-column:1/3;display:flex;align-items:center;gap:6px;font-size:15px;font-weight:700}.shop-catalogue button{grid-column:1/3;width:100%;white-space:normal}.shop-catalogue .empty-li{grid-column:1/-1;display:block!important}.shop-checkout{max-width:640px;margin:auto}.shop-step{text-transform:uppercase;letter-spacing:.1em;font-size:12px;color:#58716a}.shop-checkout h3{font-size:24px;margin:8px 0 20px}.shop-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:16px 0 24px}.shop-totals>div{background:#edf4ef;border:1px solid #d2e1d7;border-radius:12px;padding:14px 10px}.shop-totals small{display:block;font-size:12px;color:#58716a;margin-bottom:7px}.shop-totals strong{font-size:18px}.shop-question{font-size:19px;line-height:1.55}.shop-equation{background:#fff3d8;padding:12px 16px;border-radius:12px;font-size:22px;font-weight:bold}.shop-checkout-actions{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-top:20px}.shop-checkout .learn-checkout-feedback{line-height:1.6;min-height:24px}.shop-receipt{text-align:center}.shop-receipt-tick{display:inline-grid;place-items:center;width:56px;height:56px;border-radius:50%;background:#d3eada;color:#205a3c;font-size:30px}.shop-fine{font-size:12px}@media(max-width:560px){.shop-catalogue{grid-template-columns:1fr}.shop-head .owl-pic{display:none}.shop-wallet{padding:10px;min-width:70px}.shop-totals strong{font-size:15px}.shop-totals>div{padding:10px 6px}.shop-checkout-actions .btn{flex:1}.shop-head p{font-size:18px}}
