
:root{--ink:#20243a;--muted:#687086;--line:#e6e8f0;--paper:#fff;--bg:#f6f7fb;--accent:#5b5ce2;--soft:#eef0ff;--green:#e8f7ef}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 Inter,system-ui,-apple-system,"Segoe UI",sans-serif}button,input{font:inherit}button{cursor:pointer;border:0}.app{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:100vh}.side{background:#fff;border-right:1px solid var(--line);padding:22px 15px;position:sticky;top:0;height:100vh;overflow:auto}.logo{font-size:24px;font-weight:850;margin:0 8px 5px}.sublogo{font-size:12px;color:var(--muted);margin:0 8px 22px}.lang{width:100%;display:flex;align-items:center;gap:10px;padding:11px;border-radius:13px;margin:5px 0;background:#f8f9fc;text-align:left}.lang.active{background:var(--soft);outline:1px solid #d9dcff}.flag{font-size:24px}.lang small{display:block;color:var(--muted)}.nav{margin-top:22px;border-top:1px solid var(--line);padding-top:12px}.nav button{width:100%;padding:10px 12px;text-align:left;background:transparent;border-radius:10px;color:#50586d;margin:2px 0}.nav button.active,.nav button:hover{background:#f0f1f8;color:var(--ink)}.main{width:100%;max-width:1200px;margin:auto;padding:28px}.top{display:flex;justify-content:space-between;align-items:center;gap:12px}.pill,.tag{display:inline-block;border:1px solid var(--line);background:#fff;padding:7px 12px;border-radius:999px;font-size:13px}.tag{background:var(--soft);border:0;color:#4b4dcc;font-weight:750}.hero{margin-top:20px;padding:26px;background:var(--paper);border:1px solid var(--line);border-radius:22px;display:flex;justify-content:space-between;align-items:center;gap:20px}.hero h1{font-size:30px;line-height:1.2;margin:12px 0 8px}.muted{color:var(--muted)}.primary{background:var(--accent);color:white;padding:12px 17px;border-radius:12px;font-weight:750}.secondary{background:#f0f1f7;color:var(--ink);padding:11px 15px;border-radius:11px;font-weight:650}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:16px}.card{background:#fff;border:1px solid var(--line);border-radius:17px;padding:18px;min-width:0}.card h3{margin:6px 0}.progress{height:8px;background:#eceef5;border-radius:8px;overflow:hidden;margin:12px 0}.progress i{display:block;height:100%;background:var(--accent)}.view{display:none}.view.show{display:block}.panel{max-width:900px;margin:22px auto;background:#fff;border:1px solid var(--line);border-radius:22px;padding:25px}.back{background:#f0f1f7;padding:9px 13px;border-radius:10px}.sectionTitle{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.list{display:grid;gap:10px;margin-top:15px}.item{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;display:flex;justify-content:space-between;align-items:center;gap:12px}.item .letter{font-size:25px;font-weight:800;min-width:50px}.item small{color:var(--muted);display:block}.lettergrid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-top:15px}.letterbtn{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 4px;text-align:center}.letterbtn strong{display:block;font-size:23px}.letterbtn small{color:var(--muted);font-size:11px}.question{font-size:27px;font-weight:800;margin:24px 0 10px}.options{display:grid;gap:9px;margin-top:16px}.option{padding:13px 15px;border:1px solid #dfe2ea;background:#fff;border-radius:12px;text-align:left}.option:hover{border-color:var(--accent)}.feedback{display:none;background:#f2f4fa;padding:13px;border-radius:12px;margin-top:14px}.feedback.good{background:var(--green)}.input{width:100%;padding:13px;border:1px solid #dfe2ea;border-radius:12px;margin:8px 0}.row{display:flex;gap:9px;flex-wrap:wrap;align-items:center}.wordline{display:grid;grid-template-columns:1fr auto;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.wordline strong{font-size:18px}.wordline small{display:block;color:var(--muted)}.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.search{padding:11px 13px;border:1px solid var(--line);border-radius:11px;min-width:220px;flex:1}.notice{background:#fff9e8;border:1px solid #f0e3bd;padding:12px 14px;border-radius:12px;margin-top:15px}.lessonstep{display:flex;gap:12px;align-items:flex-start;padding:13px 0;border-bottom:1px solid var(--line)}.stepnum{border-radius:50%;width:30px;height:30px;display:grid;place-items:center;background:var(--soft);color:#4b4dcc;font-weight:800;flex-shrink:0}.hide{display:none!important}

/* Rotavia v3: two-way translation and install-ready responsive layout */
.translation-panel{max-width:1050px}
.translate-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:18px 0}
.translate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin-top:16px}
.translate-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;min-width:0}
.translate-card h3{margin:8px 0 4px}
.translate-card .direction{font-size:12px;font-weight:800;color:#5053c9;text-transform:uppercase;letter-spacing:.04em}
.translate-textarea{width:100%;min-height:104px;padding:13px;border:1px solid #dfe2ea;border-radius:12px;resize:vertical;font:inherit;line-height:1.5;background:#fff;color:var(--ink)}
.translate-result{background:#f4f5ff;border:1px solid #e1e3ff;border-radius:12px;padding:13px;min-height:76px;white-space:pre-wrap;overflow-wrap:anywhere}
.translate-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.translate-actions button{flex:1 1 auto}
.translate-status{padding:12px 14px;border-radius:12px;background:#f1f3f8;color:#3f465c;margin:12px 0;overflow-wrap:anywhere}
.translate-status.error{background:#fff1f0;color:#8f2520}
.translate-status.success{background:#e8f7ef;color:#17663a}
.voice-preview{min-height:22px;color:var(--muted);font-size:13px;margin-top:7px}
.translate-history{display:grid;gap:12px;margin-top:15px}
.history-item{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff;min-width:0}
.history-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:8px}
.history-label{font-size:12px;font-weight:800;color:#5053c9}
.history-original{font-weight:650;white-space:pre-wrap;overflow-wrap:anywhere}
.history-translation{margin-top:7px;color:#4e556b;white-space:pre-wrap;overflow-wrap:anywhere}
.api-note{font-size:13px;color:var(--muted);line-height:1.5}
.mobile-nav-hint{display:none}
@media(max-width:800px){
 .side{padding:14px 12px}
 .nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px}
 .nav button{font-size:13px;padding:10px 8px;margin:0}
 .translate-grid{grid-template-columns:1fr}
 .translate-card{padding:15px}
 .translate-actions button{flex:1 1 100%}
 .translate-textarea{min-height:90px;font-size:16px}
 .translate-intro h2{margin-bottom:4px}
 .mobile-nav-hint{display:block}
}

@media(max-width:800px){.app{grid-template-columns:1fr}.side{position:relative;height:auto;border-right:0;border-bottom:1px solid var(--line)}.main{padding:16px}.cards{grid-template-columns:1fr}.hero{display:block}.hero .primary{margin-top:16px}.lettergrid{grid-template-columns:repeat(4,minmax(0,1fr))}.panel{padding:17px}}

.course-weeks{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:18px 0}
.week-btn{border:1px solid var(--line);background:#fff;padding:11px 8px;border-radius:12px;text-align:left;min-width:0}
.week-btn.active{background:var(--soft);border-color:#c9ccff;color:#4145ba}
.week-btn strong,.week-btn small{display:block}.week-btn small{color:var(--muted);font-size:11px}
.course-layout{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:15px}
.course-lesson-list{display:grid;gap:8px}
.course-lesson{border:1px solid var(--line);border-radius:12px;padding:12px;background:white;text-align:left;width:100%;color:var(--ink)}
.course-lesson.current{border-color:#888bfa;background:#f7f7ff}.course-lesson.locked{opacity:.52;cursor:not-allowed}
.course-lesson small{display:block;color:var(--muted);margin-top:3px}
.course-content .lettergrid{grid-template-columns:repeat(5,minmax(0,1fr))}
.lesson-vocab{display:grid;gap:9px;margin-top:12px}.lesson-vocab-item{border:1px solid var(--line);border-radius:12px;padding:12px}
.lesson-vocab-item strong{display:block;font-size:18px}.lesson-vocab-item small{color:var(--muted);display:block}.lesson-vocab-item p{margin:6px 0 0}
.course-summary{border-left:4px solid var(--accent);padding:10px 13px;background:#f7f7fc;border-radius:0 10px 10px 0;margin:12px 0}
.summary-row{border-bottom:1px solid var(--line);padding:12px 0}.summary-row:last-child{border-bottom:0}
@media(max-width:900px){.course-layout{grid-template-columns:1fr}.course-weeks{grid-template-columns:repeat(2,minmax(0,1fr))}.course-content .lettergrid{grid-template-columns:repeat(4,minmax(0,1fr))}}




/* ===== Rotavia v5 visual system ===== */
:root{--ink:#242039;--muted:#7c7a91;--line:#ebe8f3;--paper:#ffffff;--bg:#f7f6fb;--accent:#6858e9;--soft:#f0edff;--green:#e4f7ef;--shadow:0 16px 44px rgba(45,35,102,.07);--shadow-soft:0 7px 24px rgba(39,32,90,.05);--radius:22px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(ellipse at 12% 0%,rgba(216,210,255,.42),transparent 32%),radial-gradient(ellipse at 90% 8%,rgba(255,223,217,.28),transparent 26%),var(--bg);color:var(--ink);font-family:'DM Sans','Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;font-size:15px;line-height:1.55;min-height:100vh}
button,input,textarea,select{font:inherit}button{transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid rgba(104,88,233,.23);outline-offset:2px}
.app{grid-template-columns:270px minmax(0,1fr);max-width:1680px;margin:0 auto;min-height:100vh}.side{background:rgba(255,255,255,.88);backdrop-filter:blur(18px);border-right:1px solid rgba(229,225,241,.9);padding:26px 18px 18px;position:sticky;top:0;height:100vh;overflow:auto;box-shadow:5px 0 30px rgba(48,36,101,.025);z-index:10}
.brand-mark{display:flex;align-items:center;gap:12px;padding:0 9px;margin-bottom:8px}.brand-symbol{width:43px;height:43px;display:grid;place-items:center;border-radius:15px;background:linear-gradient(145deg,#7669f5,#5141c9);color:white;font-size:24px;box-shadow:0 8px 18px rgba(92,77,218,.26)}.brand-copy strong{font-size:22px;line-height:1.05;letter-spacing:-.8px;display:block;font-weight:850}.brand-copy small{display:block;font-size:9px;letter-spacing:2px;color:#9793ae;font-weight:800;margin-top:5px}.logo{font-size:24px;font-weight:850;margin:0 8px 5px}.sublogo{font-size:11px;color:#a09db2;margin:0 10px 23px;letter-spacing:.1px}
#langs{display:grid;gap:8px}.lang{width:100%;display:flex;align-items:center;gap:11px;padding:11px;border-radius:15px;margin:0;background:#faf9fd;border:1px solid #f0edf7;text-align:left;color:var(--ink);min-height:60px}.lang:hover{transform:translateY(-1px);border-color:#ded8ff;background:white}.lang.active{background:linear-gradient(110deg,#f2efff,#faf9ff);border-color:#d9d2ff;box-shadow:inset 3px 0 0 var(--accent)}.lang .flag{font-size:25px;filter:saturate(.94)}.lang b{font-size:13px;font-weight:800}.lang small{display:block;color:#9996ae;font-size:11px;margin-top:2px}.nav{margin-top:24px;border-top:1px solid #efedf5;padding-top:16px;display:grid;gap:5px}.nav button{width:100%;display:flex;align-items:center;gap:12px;padding:12px 13px;text-align:left;background:transparent;border-radius:13px;color:#77748d;margin:0;font-weight:650;font-size:13px;position:relative;min-height:45px}.nav button>i{font-size:17px;width:21px;text-align:center;color:#9a96b3;transition:color .18s ease}.nav button span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav button.active,.nav button:hover{background:#f0edff;color:#5143cd}.nav button.active{box-shadow:inset 3px 0 0 #6d5ce8;font-weight:800}.nav button.active>i,.nav button:hover>i{color:#6452e2}.nav-live{font-size:8px;line-height:1;padding:4px 5px;background:#ffe7e6;color:#cb585b;border-radius:5px;font-style:normal;font-weight:900;margin-left:auto;letter-spacing:.5px}.sidebar-foot{display:flex;align-items:center;gap:10px;background:#fbfaff;border:1px solid #f0edf9;padding:12px;border-radius:16px;margin-top:23px}.sidebar-foot-icon{width:34px;height:34px;background:#fff0d8;color:#cc8b2b;border-radius:12px;display:grid;place-items:center;font-size:17px}.sidebar-foot b{display:block;font-size:11px}.sidebar-foot small{display:block;font-size:10px;color:#9b97ac;margin-top:2px}
.main{width:100%;max-width:1450px;margin:0 auto;padding:30px clamp(20px,3vw,48px) 48px}.top{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:0 0 18px}.top>div:first-child>b{font-size:15px;display:block;text-transform:capitalize;letter-spacing:-.1px}.top .muted{font-size:12px;margin-top:3px}.pill{display:inline-flex;align-items:center;gap:8px;border:1px solid #ece8f5;background:rgba(255,255,255,.85);padding:7px 12px;border-radius:999px;font-size:12px;color:#7a7691;box-shadow:0 3px 14px rgba(40,30,100,.025)}.xp-pill{padding:8px 12px;gap:8px;font-weight:700}.xp-pill b{color:#312c4e}.xp-gem{display:grid;place-items:center;width:27px;height:27px;border-radius:9px;background:#ffefd1;color:#df9a24;font-size:14px}.pill-separator{width:1px;height:20px;background:#ece8f4;margin:0 3px}.streak-icon{color:#f08a54;font-size:15px}
.hero{margin:0 0 21px;padding:32px 34px;background:linear-gradient(118deg,#7668f4 0%,#5b4add 52%,#4431a0 100%);border:0;border-radius:27px;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(230px,.75fr);gap:20px;align-items:center;position:relative;overflow:hidden;isolation:isolate;box-shadow:0 18px 38px rgba(82,65,195,.18);min-height:280px}.hero:before{content:'';position:absolute;width:400px;height:400px;border-radius:50%;right:-100px;top:-230px;background:rgba(255,255,255,.08);z-index:-1}.hero:after{content:'';position:absolute;width:300px;height:300px;border-radius:50%;right:25%;bottom:-240px;border:1px solid rgba(255,255,255,.12);z-index:-1}.hero-copy{position:relative;z-index:2}.hero h1{font-size:clamp(27px,3vw,38px);line-height:1.15;letter-spacing:-1.3px;margin:14px 0 11px;color:#fff;max-width:580px;font-weight:850}.hero-description{color:rgba(255,255,255,.79);font-size:14px;line-height:1.7;max-width:470px;margin:0}.hero .tag{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.12);color:#fff;font-size:11px;padding:7px 11px;display:inline-flex;align-items:center;gap:7px}.hero-pills{display:flex;gap:8px;flex-wrap:wrap;margin-top:17px}.hero-pills span{display:inline-flex;align-items:center;gap:6px;color:#fff;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.10);padding:6px 10px;border-radius:999px;font-size:11px;font-weight:700}.hero-cta{margin-top:19px!important;background:white!important;color:#5142c7!important;box-shadow:0 8px 18px rgba(32,18,97,.16);display:inline-flex;gap:10px;align-items:center}.hero-cta:hover{transform:translateY(-2px);box-shadow:0 11px 25px rgba(32,18,97,.2)}.hero-visual{height:220px;position:relative;display:grid;place-items:center;min-width:0}.hero-glow{position:absolute;width:210px;height:210px;border-radius:50%;background:rgba(211,203,255,.18);filter:blur(1px)}.orbit{position:absolute;border:1px solid rgba(255,255,255,.23);border-radius:50%;transform:rotate(-25deg)}.orbit-one{width:245px;height:130px}.orbit-two{width:235px;height:185px;transform:rotate(50deg);border-style:dashed}.hero-flashcard{width:188px;min-height:170px;background:linear-gradient(150deg,rgba(255,255,255,.98),rgba(244,241,255,.97));border:1px solid rgba(255,255,255,.55);box-shadow:0 20px 35px rgba(33,22,99,.25);border-radius:24px;position:relative;z-index:2;padding:18px 20px;transform:rotate(3deg);display:flex;flex-direction:column;align-items:flex-start}.flash-icon{width:34px;height:34px;background:#ebe7ff;color:#6656df;border-radius:11px;display:grid;place-items:center;font-size:18px;margin-bottom:10px}.hero-flashcard small{font-size:8px;letter-spacing:1.1px;color:#9a95b4;font-weight:900}.hero-flashcard strong{font-size:27px;color:#2e2851;letter-spacing:-.9px;margin-top:4px}.hero-flashcard>span{font-size:12px;color:#8c87a6}.flash-wave{height:15px;display:flex;align-items:center;gap:3px;margin-top:10px}.flash-wave i{width:3px;border-radius:9px;background:#8c7df2;height:6px}.flash-wave i:nth-child(2n){height:12px}.flash-wave i:nth-child(3n){height:9px}.flash-wave i:nth-child(5n){height:14px}.language-float{position:absolute;z-index:3;background:rgba(255,255,255,.96);border-radius:12px;box-shadow:0 9px 20px rgba(34,22,96,.2);padding:8px 11px;font-size:11px;color:#403962;display:flex;align-items:center;gap:7px}.float-left{left:1%;top:29px;transform:rotate(-7deg)}.float-right{right:-1%;bottom:29px;transform:rotate(5deg)}.sparkle{position:absolute;color:#ffe3a8;z-index:3}.sparkle-a{right:8%;top:18px;font-size:25px}.sparkle-b{left:10%;bottom:20px;font-size:28px}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-top:17px}.card{background:rgba(255,255,255,.94);border:1px solid rgba(233,229,242,.95);border-radius:21px;padding:20px;min-width:0;box-shadow:var(--shadow-soft);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.cards>.card:hover{transform:translateY(-2px);box-shadow:0 13px 32px rgba(45,35,102,.07);border-color:#ddd7f4}.card h3{font-size:17px;letter-spacing:-.3px;margin:7px 0;font-weight:800}.card p{font-size:13px;line-height:1.65}.stat-card{position:relative;min-height:153px;padding:18px 20px 17px}.stat-card .muted{font-size:12px}.stat-card h3{font-size:23px;letter-spacing:-.7px;margin:4px 0 0}.stat-card small{font-size:11px;color:#9995ad}.stat-total{font-size:13px;color:#a39fb4;font-weight:700}.stat-icon{width:39px;height:39px;display:grid;place-items:center;border-radius:13px;float:right;font-size:18px}.icon-violet{background:#f0edff;color:#6c5ce8}.icon-coral{background:#fff0ea;color:#eb885d}.icon-mint{background:#e5f8f0;color:#3ca57f}.progress{height:7px;background:#f0edf7;border-radius:8px;overflow:hidden;margin:11px 0 6px}.progress i{display:block;height:100%;border-radius:8px;background:linear-gradient(90deg,#9182ff,#6452df);transition:width .45s ease}
.step-illustration{display:grid;place-items:center;width:51px;height:51px;border-radius:16px;margin-bottom:15px;font-size:22px}.step-purple{color:#6b5ce5;background:linear-gradient(145deg,#f0edff,#e6e0ff)}.step-orange{color:#e38a52;background:linear-gradient(145deg,#fff1e4,#ffe4d2)}.step-green{color:#2d9c79;background:linear-gradient(145deg,#e7fbf3,#d7f5e8)}.cards>.card .tag{display:table;margin-top:10px}.cards>.card h3{margin-top:10px}.secondary,.primary{border-radius:12px;padding:11px 15px;font-size:13px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:8px}.primary{background:linear-gradient(120deg,#7161ec,#5c4bd6);color:white;box-shadow:0 6px 15px rgba(95,75,216,.18)}.primary:hover{transform:translateY(-1px);box-shadow:0 9px 20px rgba(95,75,216,.27)}.secondary{background:#f5f3fb;color:#5d5877;border:1px solid #efecf6}.secondary:hover{background:#eeebfa;border-color:#ddd7f4;transform:translateY(-1px)}.full-width{width:100%}.notice{background:#fffbf1;border:1px solid #f5e9c7;color:#8b7652;padding:13px 16px;border-radius:14px;margin-top:16px;font-size:12px;line-height:1.65}.home-notice{display:flex;align-items:flex-start;gap:10px}.home-notice i{font-size:17px;color:#d4a03e;margin-top:1px;flex-shrink:0}.dashboard-lower{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(250px,.65fr);gap:16px;margin-top:16px}.chart-card,.daily-mission{margin:0;min-width:0}.sectionTitle{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.sectionTitle h2{font-size:26px;line-height:1.25;letter-spacing:-.8px}.sectionTitle h3{font-size:16px}.eyebrow{font-size:9px;font-weight:900;letter-spacing:1.6px;color:#9893b0;display:block}.chart-chip{border-radius:999px;background:#f2efff;color:#6858db;padding:6px 10px;font-size:10px;font-weight:800;white-space:nowrap}.chart-wrap{position:relative;height:190px;margin-top:12px}.chart-fallback{position:absolute;inset:0;display:grid;place-items:center;text-align:center;color:#aaa5bc;font-size:12px;pointer-events:none}.chart-wrap.chart-ready .chart-fallback{display:none}.daily-mission{overflow:hidden;position:relative}.mission-header{display:flex;justify-content:space-between;align-items:center}.mission-spark{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:#fff2d8;color:#d79a30}.mission-art{height:112px;background:linear-gradient(130deg,#f0edff,#e3f4ff);border-radius:16px;margin:13px 0 15px;position:relative;display:grid;place-items:center;overflow:hidden}.mission-orb{position:absolute;width:95px;height:95px;border-radius:50%;background:linear-gradient(135deg,#9f91ff,#6a5bea);box-shadow:0 9px 25px rgba(99,80,217,.22)}.mission-art>i{position:relative;color:white;font-size:43px;filter:drop-shadow(0 4px 7px rgba(45,32,114,.2));z-index:2}.mission-speech{position:absolute;background:white;border-radius:10px;padding:5px 9px;font-size:10px;font-weight:900;box-shadow:0 6px 13px rgba(45,35,102,.1);z-index:3}.speech-one{left:12%;top:19px;color:#6554db;transform:rotate(-7deg)}.speech-two{right:9%;bottom:16px;color:#2a9676;transform:rotate(5deg)}.daily-mission>p{margin-bottom:15px}
.view{display:none}.view.show{display:block;animation:viewEnter .25s ease both}@keyframes viewEnter{from{opacity:.4;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.panel{max-width:1120px;margin:0 auto;background:rgba(255,255,255,.95);border:1px solid rgba(233,229,242,.95);border-radius:25px;padding:27px;box-shadow:var(--shadow-soft)}.back{background:#f5f3fb;color:#736d8d;padding:9px 13px;border:1px solid #efecf6;border-radius:11px;font-size:12px;font-weight:800}.panel h2{font-size:28px;letter-spacing:-.9px;line-height:1.25;margin:8px 0}.panel h3{letter-spacing:-.3px}.muted{color:var(--muted)}.tag{display:inline-flex;align-items:center;gap:6px;background:#f0edff;border:0;color:#6655db;font-weight:850;padding:6px 10px;border-radius:999px;font-size:10px;letter-spacing:.3px}.sectionTitle .tag{margin-top:2px}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin:17px 0}.search,.input,.translate-textarea{padding:12px 14px;border:1px solid #e7e2f0;border-radius:13px;min-width:200px;background:#fff;color:var(--ink);box-shadow:inset 0 1px 2px rgba(35,24,90,.015);transition:border-color .2s,box-shadow .2s}.search:focus,.input:focus,.translate-textarea:focus{outline:none;border-color:#a9a0ff;box-shadow:0 0 0 4px rgba(104,88,233,.09)}.search::placeholder,.input::placeholder,.translate-textarea::placeholder{color:#b0acc0}.wordline{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;padding:17px 5px;border-bottom:1px solid #f0edf6;align-items:center}.wordline strong{font-size:16px;letter-spacing:-.2px}.wordline small{display:block;color:#9893ad;font-size:11px;margin:4px 0 8px}.wordline div div{font-size:12px;color:#77728c}.wordline div div b{color:#39344f}.item{background:#fff;border:1px solid #efebf5;border-radius:15px;padding:14px 16px;display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:7px}.item .letter{font-size:25px;font-weight:850;min-width:50px;color:#6150d6}.item small{color:#8f8ba4;display:block;font-size:12px}.lettergrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:9px;margin-top:16px}.letterbtn{background:linear-gradient(150deg,#fff,#fbfaff);border:1px solid #ebe7f4;border-radius:14px;padding:12px 4px;text-align:center;color:var(--ink);box-shadow:0 3px 10px rgba(43,29,98,.02)}.letterbtn:hover{background:#f3f0ff;border-color:#dcd5ff;transform:translateY(-2px)}.letterbtn strong{display:block;font-size:24px;color:#5142c9}.letterbtn small{color:#938ea8;font-size:10px}.question{font-size:29px;letter-spacing:-.6px;font-weight:850;margin:24px 0 10px}.options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:17px}.option{padding:14px 16px;border:1px solid #e9e5f2;background:#fff;border-radius:13px;text-align:left;color:var(--ink);font-weight:700}.option:hover{border-color:#b5abff;background:#f8f6ff}.feedback{display:none;background:#f2f0fb;padding:14px 16px;border-radius:13px;margin-top:14px;font-size:13px}.feedback.good{background:#e8f8f0;color:#22674f}.course-weeks{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin:20px 0}.week-btn{border:1px solid #e9e5f2;background:white;padding:13px 12px;border-radius:14px;text-align:left;min-width:0;color:#68627f}.week-btn.active{background:linear-gradient(135deg,#f0edff,#faf9ff);border-color:#cfc7ff;color:#5443ce;box-shadow:inset 0 0 0 1px #ded8ff}.week-btn strong{display:block;font-size:12px}.week-btn small{display:block;color:#9a95af;font-size:10px;margin-top:4px}.course-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:16px}.course-lesson-list{display:grid;gap:9px;margin-top:12px}.course-lesson{border:1px solid #eeeaf5;border-radius:14px;padding:13px 14px;background:#fff;text-align:left;width:100%;color:var(--ink);transition:.2s}.course-lesson.current{border-color:#c9c0ff;background:#f7f5ff;box-shadow:inset 3px 0 0 #7261e9}.course-lesson:hover:not(:disabled){border-color:#cfc8f4;transform:translateX(2px)}.course-lesson.locked{opacity:.5;cursor:not-allowed}.course-lesson b{font-size:12px}.course-lesson small{display:block;color:#9691aa;margin-top:4px;font-size:11px}.course-content .lettergrid{grid-template-columns:repeat(5,minmax(0,1fr))}.lesson-vocab{display:grid;gap:10px;margin-top:13px}.lesson-vocab-item{border:1px solid #eeeaf5;border-radius:14px;padding:14px;background:#fff}.lesson-vocab-item strong{display:block;font-size:17px}.lesson-vocab-item small{color:#9893ad;display:block;font-size:11px}.lesson-vocab-item p{margin:7px 0 0;font-size:12px}.course-summary{border-left:3px solid #7665e9;padding:12px 15px;background:#f7f5ff;border-radius:0 12px 12px 0;margin:14px 0;font-size:12px}.summary-row{border-bottom:1px solid #f0edf6;padding:13px 0}.summary-row:last-child{border-bottom:0}.summary-row p{font-size:12px;margin:5px 0}.summary-row small{line-height:1.5}
.translation-panel{max-width:1170px}.translate-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:17px;flex-wrap:wrap;margin:18px 0}.translate-intro h2{font-size:30px!important;letter-spacing:-1px}.translate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:17px}.translate-card{background:linear-gradient(180deg,#fff,#fdfcff);border:1px solid #eae6f3;border-radius:21px;padding:21px;min-width:0;box-shadow:var(--shadow-soft);position:relative;overflow:hidden}.translate-card:before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#7564ef,#b0a5ff)}.translate-card:nth-child(2):before{background:linear-gradient(90deg,#f0a26d,#f5c5a1)}.translate-card h3{margin:11px 0 5px;font-size:19px}.translate-card h4{font-size:12px;text-transform:uppercase;letter-spacing:.65px;color:#79738e;margin:18px 0 8px}.translate-card .direction{font-size:9px;font-weight:900;color:#7770a0;text-transform:uppercase;letter-spacing:1px}.translate-card-head{display:flex;align-items:center;gap:10px;min-width:0}.translate-icon{width:39px;height:39px;display:grid;place-items:center;border-radius:13px;font-size:18px;flex-shrink:0}.incoming-icon{background:#eeeaff;color:#6553db}.outgoing-icon{background:#fff0e6;color:#d98c54}.live-dot{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:9px;text-transform:uppercase;letter-spacing:.5px;background:#f2f0f9;border-radius:999px;padding:6px 8px;color:#8d87a4;font-weight:900}.live-dot:before{content:'';width:5px;height:5px;border-radius:50%;background:#9a92bd}.translate-textarea{width:100%;min-height:112px;resize:vertical;font:inherit;line-height:1.6;background:#fff;color:var(--ink);margin-top:10px;font-size:14px}.translate-result{background:linear-gradient(140deg,#f4f1ff,#faf9ff);border:1px solid #e4defe;border-radius:14px;padding:15px;min-height:82px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;color:#423a73}.translate-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:11px}.translate-actions button{flex:1 1 130px}.translate-status{padding:13px 16px;border:1px solid #e9e5f3;border-radius:14px;background:#f9f8fc;color:#635e79;margin:13px 0;font-size:12px;overflow-wrap:anywhere}.translate-status.error{background:#fff0ee;border-color:#ffd9d5;color:#9c3932}.translate-status.success{background:#eaf8f1;border-color:#d2efe0;color:#23694c}.voice-preview{min-height:19px;color:#8983a2;font-size:11px;margin-top:7px}.translate-history{display:grid;gap:11px;margin-top:15px}.history-item{border:1px solid #ece8f4;border-radius:15px;padding:15px;background:#fff;min-width:0}.history-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:8px}.history-label{font-size:9px;font-weight:900;color:#6c5bde;letter-spacing:.8px}.history-original{font-weight:750;white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px}.history-translation{margin-top:7px;color:#66617e;white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px}.api-note{font-size:11px;color:#9290a6;line-height:1.7}.mobile-nav-hint{display:none}
/* Existing generic form/control styling */
label{font-size:12px;color:#6f6985}textarea{max-width:100%}select{cursor:pointer}.row{display:flex;gap:9px;flex-wrap:wrap;align-items:center}.input{width:100%;margin:8px 0}.notice b{color:#6f5b2f}
@media(max-width:1100px){.app{grid-template-columns:240px minmax(0,1fr)}.side{padding:22px 14px}.main{padding:24px 22px 38px}.hero{padding:27px;grid-template-columns:minmax(0,1.1fr) minmax(200px,.8fr)}.hero-visual{transform:scale(.9)}.dashboard-lower{grid-template-columns:1fr}.mission-art{height:130px}.course-layout{grid-template-columns:1fr}.course-weeks{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:820px){.app{grid-template-columns:1fr}.side{position:relative;height:auto;padding:16px 16px 11px;border-right:0;border-bottom:1px solid #ece8f4;overflow:visible}.brand-mark{margin-bottom:3px}.sublogo{margin-bottom:14px}.side #langs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.lang{padding:8px 7px;min-height:50px;gap:7px;border-radius:12px}.lang .flag{font-size:21px}.lang b{font-size:11px}.lang small{font-size:9px}.nav{display:flex;overflow-x:auto;gap:5px;margin-top:13px;padding:11px 0 1px;border-top:1px solid #f0edf6;scrollbar-width:thin}.nav button{width:auto;flex:0 0 auto;padding:10px 12px;font-size:11px;min-height:41px}.nav button>i{font-size:15px;width:auto}.nav-live{display:none}.sidebar-foot{display:none}.main{padding:20px 16px 38px}.hero{grid-template-columns:minmax(0,1fr) minmax(190px,.65fr);gap:5px;padding:25px;border-radius:23px;min-height:250px}.hero-visual{transform:scale(.78);margin-left:-15px;margin-right:-20px}.hero h1{font-size:29px}.cards{gap:12px}.card{padding:17px}.stats-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.stat-card{padding:15px;min-height:148px}.stat-card h3{font-size:20px}.stat-icon{width:33px;height:33px}.translate-grid{grid-template-columns:1fr}.translate-card{padding:19px}.panel{padding:21px;border-radius:21px}.lettergrid{grid-template-columns:repeat(6,minmax(0,1fr))}.options{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:580px){.main{padding:16px 12px 30px}.top{align-items:flex-start;margin-bottom:13px}.top>div:first-child>b{font-size:13px}.top .muted{font-size:10px}.xp-pill{gap:6px;padding:5px 8px;font-size:10px}.xp-gem{width:23px;height:23px}.pill-separator{height:16px;margin:0 1px}.hero{display:block;padding:23px 22px;min-height:unset}.hero-visual{display:none}.hero h1{font-size:28px;max-width:none}.hero-description{font-size:12px}.hero-pills{gap:6px;margin-top:14px}.hero-pills span{font-size:10px;padding:5px 8px}.hero-cta{margin-top:16px!important}.stats-cards{grid-template-columns:1fr;gap:9px}.stat-card{min-height:0;padding:14px 15px;display:grid;grid-template-columns:43px minmax(0,1fr);column-gap:12px;align-items:center}.stat-card .stat-icon{grid-row:1/4;float:none;width:39px;height:39px}.stat-card .muted,.stat-card h3,.stat-card .progress,.stat-card>small{grid-column:2}.stat-card .muted{align-self:end}.stat-card h3{font-size:19px;line-height:1.25}.stat-card .progress{margin:6px 0 3px}.stat-card>small{font-size:10px}.cards{grid-template-columns:1fr}.cards>.card{padding:18px}.dashboard-lower{grid-template-columns:1fr;gap:12px}.chart-wrap{height:165px}.daily-mission{display:block}.panel{padding:16px;border-radius:19px}.panel h2{font-size:24px}.sectionTitle h2{font-size:24px}.course-weeks{grid-template-columns:repeat(2,minmax(0,1fr))}.course-layout{grid-template-columns:1fr}.course-content .lettergrid{grid-template-columns:repeat(4,minmax(0,1fr))}.lettergrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.letterbtn{padding:9px 3px}.letterbtn strong{font-size:21px}.translate-intro h2{font-size:27px!important}.translate-card{padding:16px}.translate-actions button{flex:1 1 calc(50% - 8px);font-size:12px;padding:11px 9px}.translate-textarea{min-height:93px;font-size:16px}.translate-card-head{gap:8px}.translate-card .direction{font-size:8px}.translate-icon{width:34px;height:34px}.wordline{grid-template-columns:minmax(0,1fr);gap:9px}.wordline button{justify-self:start}.toolbar{gap:8px}.search{min-width:100%;flex-basis:100%}.options{grid-template-columns:1fr}.top .pill{max-width:56%}.hero-description{max-width:100%}.history-head{align-items:flex-start}.summary-row{padding:11px 0}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}


/* Rotavia v7: assessments, practice variety and responsive matching cards */
.exercise-dashboard .card{display:flex;flex-direction:column;gap:8px;min-height:180px}
.exercise-dashboard .card .primary{margin-top:auto}
.exercise-question-card{max-width:820px;margin:20px auto 0;padding:clamp(18px,3vw,28px)}
.course-exam-entry{border:1px solid #e4ddff;background:linear-gradient(135deg,#faf8ff,#fff);border-radius:18px;padding:18px;margin-top:16px}
.course-exam-entry .muted{margin:5px 0 12px}
.course-exam-question{border:1px solid #e6e0f7;border-radius:18px;padding:clamp(18px,3vw,28px);margin-top:18px;background:#fff}
.course-exam-question .options{margin-top:18px}
.course-exam-question .option:disabled{cursor:default;opacity:.85}
.course-exam-question .option:disabled:hover{transform:none}
.exam-last-score{font-size:.9rem;color:#8d4d26}
.lesson-material-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.match-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}
.match-grid>div{display:grid;gap:8px;align-content:start}
.match-item{min-height:54px;text-align:left;white-space:normal;overflow-wrap:anywhere}
.match-item.matched{background:#edf9f0;border-color:#9cddb0;color:#235d34}
.match-item.selected{outline:2px solid #7361ed;border-color:#7361ed}
@media(max-width:620px){.match-grid{grid-template-columns:1fr}.match-item{min-height:46px}.exercise-dashboard .card{min-height:auto}}

/* ===== Rotavia v10: adult photographic design + Google Maps travel studio ===== */
:root{--accent:#2d596f;--soft:#eaf1f4;--ink:#1f2933;--muted:#687784;--line:#e0e6e8;--bg:#f4f6f6;--green:#e7f5ef;--shadow:0 18px 44px rgba(26,47,59,.08)}
body{background:#f4f6f6;color:var(--ink)}
.app{max-width:1780px}.side{background:#fdfefe;border-right-color:#dce4e6}.brand-symbol{background:#294f62!important}.nav button.active,.nav button:hover{background:#eaf1f4!important;color:#24495a!important}
.primary{background:#2d596f}.tag{background:#e8f0f3;color:#2b5265}.hero{background:linear-gradient(88deg,rgba(20,43,56,.87),rgba(20,43,56,.46) 58%,rgba(20,43,56,.12)),url('https://images.unsplash.com/photo-1519501025264-65ba15a82390?auto=format&fit=crop&w=1800&q=88') center 48%/cover no-repeat;border:1px solid rgba(255,255,255,.35);box-shadow:0 18px 45px rgba(22,42,52,.16)}
.hero-photo{min-height:225px;position:relative;align-self:stretch;border-radius:18px;background:linear-gradient(180deg,transparent 35%,rgba(10,22,28,.72)),url('https://images.unsplash.com/photo-1523906834658-6e24ef2386f9?auto=format&fit=crop&w=1000&q=85') center/cover no-repeat;overflow:hidden;box-shadow:0 18px 32px rgba(5,15,20,.18)}
.hero-photo-caption{position:absolute;bottom:18px;left:18px;right:16px;color:white;display:grid;gap:4px}.hero-photo-caption span{font-size:10px;letter-spacing:1.5px;font-weight:800;opacity:.85}.hero-photo-caption strong{font-size:17px;line-height:1.35}.hero-photo-caption small{opacity:.83}
.mission-photo{height:150px;margin:10px 0 15px;border-radius:14px;background:linear-gradient(180deg,transparent 40%,rgba(8,20,25,.18)),url('https://images.unsplash.com/photo-1554118811-1e0d58224f24?auto=format&fit=crop&w=900&q=85') center/cover no-repeat}
.daily-mission .mission-spark{color:#2d596f;background:#eaf1f4}
/* Google Maps travel page */
.travel-page{max-width:1440px;margin:0 auto;padding:0 0 30px}.travel-hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);align-items:stretch;overflow:hidden;border-radius:23px;background:#263f4b;color:#fff;box-shadow:0 18px 44px rgba(28,49,60,.12);margin:0 0 18px}.travel-hero-copy{padding:34px 36px;align-self:center}.travel-hero-copy h1{font-size:clamp(28px,3.5vw,42px);line-height:1.12;letter-spacing:-1.2px;margin:12px 0}.travel-hero-copy p{max-width:640px;color:rgba(255,255,255,.8);line-height:1.75;margin:0}.eyebrow.light{color:#c8dce4}.travel-hero-pills{display:flex;gap:8px;flex-wrap:wrap;margin-top:19px}.travel-hero-pills span{display:inline-flex;gap:7px;align-items:center;padding:7px 11px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);font-size:12px}.travel-hero-image{min-height:285px;background:linear-gradient(90deg,rgba(38,63,75,.18),rgba(38,63,75,0)),url('https://images.unsplash.com/photo-1524231757912-21f4fe3a7200?auto=format&fit=crop&w=1200&q=88') center/cover no-repeat}
.travel-search-bar{display:grid;grid-template-columns:minmax(160px,1.15fr) minmax(160px,1fr) minmax(140px,.7fr) minmax(140px,.7fr) auto;gap:11px;padding:15px;background:#fff;border:1px solid #dce4e6;border-radius:17px;box-shadow:0 8px 26px rgba(29,52,63,.045);align-items:end}.travel-search-field{display:grid;gap:6px;min-width:0}.travel-search-field label{font-weight:750;font-size:12px;color:#3d4f5b}.travel-search-field input,.travel-search-field select{height:43px;min-width:0;width:100%;padding:10px 12px;border:1px solid #dbe3e6;border-radius:10px;background:#fff;color:#273740}.travel-search-field small{font-size:10px;color:#89959a}.travel-search-button{height:43px;white-space:nowrap}.travel-status{padding:12px 15px;background:#edf3f5;border:1px solid #dce7eb;border-radius:12px;color:#395767;margin:13px 0;font-size:13px}.travel-status.success{background:#e7f5ee;border-color:#cae8d8;color:#266749}.travel-status.warning{background:#fff7e8;border-color:#f1dfba;color:#775b24}.travel-status.error{background:#fff0ef;border-color:#f0ccca;color:#9c302c}
.travel-workspace{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);gap:15px;align-items:start}.travel-map-panel,.travel-results-panel,.my-travel-panel{min-width:0;border:1px solid #dce4e6;border-radius:18px;background:#fff;overflow:hidden;box-shadow:0 7px 26px rgba(24,48,60,.045)}.travel-map-panel{padding:0}.travel-map-top{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:17px 18px 13px;border-bottom:1px solid #edf0f1}.travel-map-top h3,.travel-results-head h3{margin:3px 0 0;font-size:18px;letter-spacing:-.3px}.map-count{font-size:12px;font-weight:800;background:#eaf1f4;color:#2c596f;border-radius:999px;padding:6px 10px}.map-attribution-note{padding:9px 13px;color:#697b83;font-size:11px;border-bottom:1px solid #edf0f1;background:#fafcfc}.map-attribution-note i{margin-right:6px;color:#4285f4}.map-attribution-note a{color:inherit}
#travelMap{height:520px;width:100%;background:#e8edef;position:relative;overflow:hidden}.map-setup-state{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:9px;min-height:520px;padding:clamp(20px,3vw,36px);background:linear-gradient(135deg,#edf2f4,#e4ecee)}.map-setup-icon{font-size:29px;width:56px;height:56px;display:grid;place-items:center;border-radius:16px;background:#fff;color:#315e72;box-shadow:0 8px 20px rgba(28,55,68,.08)}.map-setup-state h3{margin:4px 0 0;font-size:22px}.map-setup-state p{color:#63737b;max-width:440px;margin:0}.map-setup-state ol{margin:5px 0 8px;padding-left:22px;color:#4d6068;line-height:1.8;font-size:13px}.map-setup-state code{background:#fff;border:1px solid #dae3e6;border-radius:5px;padding:2px 5px}.map-setup-state a{display:inline-flex;text-decoration:none}
.manual-place{display:grid;gap:9px;padding:16px 17px 18px}.manual-place>div:first-child{display:grid;gap:3px}.manual-place>div:first-child b{font-size:13px}.manual-place>div:first-child small{font-size:11px;color:#76848a}.manual-place input{width:100%;min-width:0;padding:10px 12px;border:1px solid #dce4e6;border-radius:10px}.manual-coords{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.travel-results-panel{padding:0}.travel-results-head{padding:17px 18px 13px;border-bottom:1px solid #edf0f1}.travel-results-head .muted{font-size:11px;display:block;margin-top:3px}.travel-result-list{display:grid;gap:0;max-height:820px;overflow:auto}.travel-place-card{display:grid;grid-template-columns:32px minmax(0,1fr);gap:11px;padding:15px 17px;border-bottom:1px solid #edf0f1;transition:background .15s}.travel-place-card:hover{background:#fafcfc}.place-card-number{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:#edf3f5;color:#2d596f;font-size:12px;font-weight:850}.travel-place-overline{font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:#788991;font-weight:800}.travel-place-main h4{margin:4px 0 4px;font-size:15px;line-height:1.35}.travel-place-address{margin:0;color:#6e7d84;font-size:11px;line-height:1.5}.travel-place-rating{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:9px}.google-rating{color:#a56c16;display:inline-flex;align-items:center;gap:5px;font-size:13px}.google-rating i{font-size:12px}.google-rating small{color:#7c878c;font-size:10px}.rating-count{font-size:10px;color:#77858b}.rating-missing{font-size:11px;color:#7d888c}.place-closed{color:#a53d37}.travel-place-actions{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin-top:12px}.travel-place-actions button,.travel-place-actions a{font-size:11px;padding:8px 10px;text-decoration:none}.travel-place-actions .secondary{background:#edf3f5;color:#2e5669}.text-button{background:transparent;color:#49616d;padding:7px 8px;border-radius:8px;text-decoration:none;font-weight:700}.text-button:hover{background:#edf3f5}.travel-empty{padding:29px 22px;display:grid;justify-items:start;gap:9px;color:#334d59}.travel-empty>i{font-size:25px;color:#4d7485}.travel-empty b{font-size:15px}.travel-empty p{margin:0;color:#718087;font-size:12px;line-height:1.6}.travel-empty.personal-empty{border:1px dashed #d4e0e4;border-radius:14px;margin:14px}
.google-map-pin{width:31px;height:31px;display:grid;place-items:center;background:var(--pin-color,#315b73);border:2px solid white;border-radius:50% 50% 50% 5px;transform:rotate(-45deg);box-shadow:0 2px 8px rgba(0,0,0,.25);color:#fff;font-size:11px;font-weight:900}.google-map-pin::first-letter{transform:rotate(45deg)}.google-map-pin.personal-pin{background:#9b6a35}.travel-place-details{margin:12px;padding:16px;border-radius:14px;background:#f7f9f9;border:1px solid #e1e7e9}.travel-place-details[hidden]{display:none}.details-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.details-top h3{margin:5px 0;font-size:20px}.details-top p{font-size:12px;margin:0}.icon-close{background:transparent;color:#6b7d85;border-radius:8px;padding:7px}.details-rating{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:14px 0;border-top:1px solid #e2e8e9;border-bottom:1px solid #e2e8e9;margin:13px 0}.details-rating-score{font-size:25px;letter-spacing:-.8px;font-weight:850;color:#a56b17}.details-rating-score i{font-size:18px}.details-rating>div:nth-child(2){display:grid;gap:2px;flex:1}.details-rating>div:nth-child(2) b{font-size:12px}.details-rating>div:nth-child(2) small{font-size:11px;color:#77858b}.details-rating>a{font-size:11px;text-decoration:none}.details-contact{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;margin:10px 0}.details-contact a{color:#315c70}.place-hours{font-size:12px;margin:10px 0}.place-hours p{line-height:1.7;color:#64767e}.reviews-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:16px}.reviews-head h4{margin:0;font-size:14px}.reviews-head span{font-size:10px;color:#76858b}.google-review{border-top:1px solid #e0e7e9;padding:13px 0}.review-author{display:flex;align-items:center;gap:9px}.review-avatar{width:31px;height:31px;display:grid;place-items:center;background:#dce8ed;border-radius:50%;color:#31596b;font-weight:800}.review-author>div{display:grid;gap:1px;flex:1}.review-author b{font-size:12px}.review-author b a{color:#314f5c;text-decoration:none}.review-author small{font-size:10px;color:#78878d}.review-stars{font-size:11px;color:#ae761d;white-space:nowrap}.google-review p{font-size:12px;line-height:1.65;white-space:pre-wrap;margin:8px 0}.review-source{font-size:10px;color:#486a79;text-decoration:none}.place-attributions{font-size:10px;line-height:1.5;color:#73838a;margin-bottom:8px}.place-attributions a{color:#426c7d}.google-data-note{font-size:10px;color:#7a898e;line-height:1.55;margin:12px 0 0}.details-loading{padding:20px;background:#f8fafa;border-radius:12px;font-size:12px;color:#526973}.details-loading.error{color:#9b3d36}.spinner{display:inline-block;width:15px;height:15px;border:2px solid #ced9de;border-top-color:#325f73;border-radius:50%;vertical-align:middle;animation:turn .8s linear infinite;margin-right:6px}@keyframes turn{to{transform:rotate(360deg)}}
.my-travel-panel{margin-top:16px;padding:21px}.my-travel-panel .sectionTitle h2{font-size:24px;margin:5px 0}.my-travel-panel .sectionTitle p{font-size:12px;margin:0}.travel-list-tabs{display:flex;gap:5px;padding:4px;background:#f0f4f5;border-radius:11px}.travel-list-tabs button{padding:8px 11px;border-radius:8px;background:transparent;color:#61727a;font-weight:750;font-size:11px}.travel-list-tabs button.active{background:#fff;color:#2c5668;box-shadow:0 2px 7px rgba(25,53,65,.08)}.travel-list-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin:16px 0 10px}.travel-list-toolbar .secondary{font-size:11px}.my-travel-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.my-trip-item{border:1px solid #dfe7e9;border-radius:14px;padding:15px;min-width:0;display:flex;flex-direction:column;gap:13px;background:#fff}.my-trip-info h4{margin:8px 0 4px;font-size:14px;overflow-wrap:anywhere}.my-trip-info p{font-size:11px;margin:4px 0;overflow-wrap:anywhere}.trip-status{display:inline-flex;padding:5px 8px;border-radius:999px;background:#edf2f4;color:#536a75;font-size:10px;font-weight:800}.trip-status.visited{background:#e4f4eb;color:#286a49}.my-trip-note{color:#60737d}.personal-rating{font-size:10px;font-weight:750;color:#8e672a}.my-trip-actions{display:flex;gap:7px;flex-wrap:wrap;border-top:1px solid #edf1f2;padding-top:11px;margin-top:auto}.my-trip-actions button{font-size:10px;padding:7px 8px}.remove-trip{color:#a34d48}.travel-bottom-note{font-size:11px;display:flex;gap:9px;line-height:1.6;color:#728188;padding:14px 3px}.travel-bottom-note i{color:#527987}.travel-bottom-note a{color:inherit}
@media(max-width:1150px){.travel-search-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.travel-search-button{width:100%}.travel-workspace{grid-template-columns:minmax(0,1fr)}.travel-map-panel{order:1}.travel-results-panel{order:2}.travel-result-list{max-height:none}.my-travel-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.travel-hero{grid-template-columns:1fr}.travel-hero-copy{padding:25px 22px}.travel-hero-image{min-height:170px;grid-row:1}.travel-hero-copy h1{font-size:30px}.travel-search-bar{grid-template-columns:1fr;padding:12px}.travel-search-button{width:100%}.travel-workspace{grid-template-columns:1fr}.travel-map-panel,.travel-results-panel{border-radius:15px}#travelMap,.map-setup-state{height:390px;min-height:390px}.my-travel-panel{padding:15px}.my-travel-list{grid-template-columns:1fr}.my-travel-panel .sectionTitle{align-items:flex-start}.travel-list-tabs{width:100%;justify-content:space-between}.travel-list-tabs button{flex:1}.travel-place-card{padding:13px}.travel-place-actions{gap:4px}.travel-place-actions button,.travel-place-actions a{font-size:10px}.details-rating{gap:9px}.details-rating>a{width:100%;text-align:center}.travel-hero-pills span{font-size:10px}}

/* Rotavia v10 — editorial photography, Google Maps and personal trip journal */
.hero-photo{height:245px;min-width:0;border-radius:20px;overflow:hidden;position:relative;background-image:linear-gradient(180deg,rgba(11,19,32,.04) 15%,rgba(11,19,32,.72) 100%),url('assets/city-cafe.jpg');background-size:cover;background-position:center 48%;box-shadow:0 14px 28px rgba(20,18,55,.2);border:1px solid rgba(255,255,255,.18)}
.hero-photo-caption{position:absolute;left:18px;right:18px;bottom:18px;display:grid;gap:5px;color:#fff}.hero-photo-caption span{font-size:9px;letter-spacing:1.7px;font-weight:900;color:rgba(255,255,255,.72)}.hero-photo-caption strong{font-size:17px;line-height:1.28;letter-spacing:-.3px;max-width:270px}.hero-photo-caption small{font-size:11px;color:rgba(255,255,255,.78)}
.mission-photo{height:138px;border-radius:15px;margin:12px 0 14px;background-image:linear-gradient(0deg,rgba(12,20,30,.35),transparent 65%),url('assets/city-cafe.jpg');background-position:center 54%;background-size:cover}
.travel-page{display:grid;gap:17px}.travel-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.78fr);gap:0;border-radius:24px;overflow:hidden;background:#1f3143;color:white;min-height:275px;box-shadow:0 15px 38px rgba(32,45,64,.11)}.travel-hero-copy{padding:clamp(22px,3vw,36px);align-self:center}.eyebrow.light{color:rgba(255,255,255,.63)}.travel-hero h1{font-size:clamp(29px,3vw,40px);line-height:1.08;letter-spacing:-1.2px;margin:12px 0 11px;color:#fff}.travel-hero p{font-size:13px;line-height:1.8;max-width:560px;color:rgba(255,255,255,.76);margin:0}.travel-hero-pills{display:flex;gap:8px;flex-wrap:wrap;margin-top:17px}.travel-hero-pills span{display:inline-flex;align-items:center;gap:7px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);color:white;padding:7px 10px;border-radius:999px;font-size:10px;font-weight:800}.travel-hero-image{min-height:260px;background-image:linear-gradient(90deg,rgba(31,49,67,.1),rgba(31,49,67,0)),url('assets/city-cafe.jpg');background-size:cover;background-position:center 54%}
.travel-search-bar{display:grid;grid-template-columns:minmax(190px,1.1fr) minmax(180px,.8fr) minmax(160px,.65fr) auto;gap:11px;align-items:end;padding:15px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 6px 20px rgba(34,44,66,.035)}.travel-search-field{display:grid;gap:7px;min-width:0}.travel-search-field label{font-weight:800;font-size:11px;color:#424d60}.travel-search-field input,.travel-search-field select{width:100%;min-width:0;padding:12px;border:1px solid #dde2ea;border-radius:11px;background:#fff;color:var(--ink);font:inherit;font-size:13px;outline:none}.travel-search-field input:focus,.travel-search-field select:focus{border-color:#8d9fbd;box-shadow:0 0 0 3px rgba(84,113,153,.12)}.travel-search-field small{font-size:10px;color:#929aab}.travel-search-button{height:43px;white-space:nowrap;border-radius:11px;background:#294660;box-shadow:none}.travel-search-button:hover{background:#1e3549;box-shadow:none}.travel-search-button:disabled{opacity:.65;cursor:wait}
.travel-status{padding:12px 15px;border-radius:12px;border:1px solid #dfe6ee;background:#f5f8fb;color:#526377;font-size:12px;line-height:1.55}.travel-status.success{background:#edf7f2;border-color:#cde8da;color:#28674e}.travel-status.warning{background:#fff8ec;border-color:#f1e0bd;color:#7e6133}.travel-status.error{background:#fff0ef;border-color:#f2d3d0;color:#933c35}.travel-workspace{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(310px,.88fr);gap:16px;align-items:start}.travel-map-panel,.travel-results-panel,.my-travel-panel{background:white;border:1px solid var(--line);border-radius:20px;padding:17px;min-width:0;box-shadow:0 7px 22px rgba(29,42,66,.035)}.travel-map-top,.travel-results-head{display:flex;justify-content:space-between;align-items:start;gap:10px;margin-bottom:12px}.travel-map-top h3,.travel-results-head h3{font-size:16px;letter-spacing:-.25px;margin:6px 0 0}.map-count{white-space:nowrap;font-size:10px;font-weight:800;padding:7px 9px;border-radius:999px;background:#f0f4f8;color:#52677d}.travel-map-panel #travelMap{height:490px;width:100%;border-radius:14px;overflow:hidden;background:#edf1f5;border:1px solid #e5e9f0}.map-attribution-note{margin:9px 0 14px;font-size:10px;line-height:1.5;color:#7c8798;display:flex;align-items:center;gap:6px}.map-attribution-note i{color:#4285f4}.map-setup-state{height:100%;min-height:430px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:28px;color:#526174;background:linear-gradient(145deg,#f0f4f7,#f9fafb)}.map-setup-icon{display:grid;place-items:center;width:54px;height:54px;border-radius:16px;background:#fff;border:1px solid #e1e6ee;color:#4285f4;font-size:23px;box-shadow:0 6px 17px rgba(35,50,71,.08)}.map-setup-state h4{margin:14px 0 5px;font-size:17px;color:#26394b}.map-setup-state p{font-size:12px;line-height:1.7;max-width:340px;margin:0 0 14px}.map-setup-state a{font-size:12px;font-weight:800;color:#355c7b;text-decoration:none}.map-setup-state code{background:#e9eef3;border-radius:5px;padding:2px 5px}.map-info-window{max-width:230px;padding:3px 2px;color:#253447}.map-info-window p{font-size:11px;margin:5px 0;color:#6a7788}.map-info-window div{font-size:11px;color:#986d19}
.manual-place{padding:13px;background:#f7f9fb;border:1px solid #e7ebf1;border-radius:14px;display:grid;gap:9px}.manual-place>div{display:grid;gap:4px}.manual-place b{font-size:12px;color:#36465a}.manual-place small{font-size:10px;color:#8a95a5;line-height:1.5}.manual-place input{width:100%;min-width:0;background:#fff;border:1px solid #dfe5ed;border-radius:9px;padding:10px 11px;font:inherit;font-size:12px}.manual-coords{display:grid;grid-template-columns:1fr 1fr;gap:8px}.manual-place .secondary{background:#fff;color:#405f7b;border-color:#d8e1e9}
.travel-results-panel{min-height:600px}.travel-results-head{margin-bottom:14px}.travel-results-head .muted{font-size:10px;max-width:130px;text-align:right}.travel-result-list{display:grid;gap:13px}.travel-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:32px 18px;gap:8px;border:1px dashed #d9e0e8;border-radius:15px;background:#fafbfd;color:#7a8798;min-height:220px}.travel-empty>i{font-size:27px;color:#7990a5}.travel-empty b{color:#37495c;font-size:14px}.travel-empty p{font-size:11px;line-height:1.7;max-width:350px;margin:0}.travel-empty button{margin-top:5px}.place-card{border:1px solid #e2e7ee;border-radius:15px;overflow:hidden;background:#fff;transition:box-shadow .18s,border-color .18s}.place-card:hover{border-color:#cbd7e2;box-shadow:0 7px 20px rgba(35,52,72,.07)}.place-card-photo{height:145px;background-size:cover;background-position:center;position:relative;background-color:#edf1f4}.place-type-pill{position:absolute;left:11px;top:11px;padding:6px 8px;border-radius:6px;background:rgba(255,255,255,.93);font-size:9px;font-weight:850;color:#4a5d70;max-width:75%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.place-map-link{position:absolute;right:10px;top:10px;width:31px;height:31px;border:0;border-radius:9px;background:rgba(255,255,255,.95);color:#335570;display:grid;place-items:center}.place-card-body{padding:13px}.place-card-heading{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.place-card-heading h4{font-size:13px;line-height:1.4;margin:0;color:#26394b;min-width:0;letter-spacing:-.1px}.google-rating{flex-shrink:0;white-space:nowrap;display:flex;align-items:center;gap:4px;color:#9a721f;font-size:11px}.google-rating i{font-size:10px;color:#e3a522}.google-rating small{color:#929baa;font-size:9px}.place-address{display:flex;gap:6px;color:#7c8798;font-size:10px;line-height:1.5;margin:7px 0;align-items:flex-start}.place-address i{color:#8391a3}.place-card-meta{display:flex;justify-content:space-between;gap:8px;font-size:9px;color:#929baa;padding:8px 0;border-top:1px solid #f0f2f5}.google-source{display:inline-flex;align-items:center;gap:4px;color:#8b95a4}.place-card-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:7px}.place-card-actions button{font-size:10px;padding:9px 7px;white-space:nowrap;border-radius:9px}.place-card-actions .secondary{background:#f6f8fa;color:#465a6d;border-color:#e3e8ef}.review-toggle{width:100%;display:flex;align-items:center;gap:6px;padding:10px 1px 0;border:0;background:transparent;color:#436482;font-size:10px;font-weight:800;text-align:left}.review-toggle span{font-weight:600;color:#9aa3b0}.photo-attribution{font-size:8px;line-height:1.5;color:#8994a2;margin-top:7px}.photo-attribution a{color:#72849a}.place-reviews{border-top:1px solid #e8edf2;margin-top:10px;padding-top:11px}.review-header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:6px}.review-header b{font-size:10px;color:#3d5063}.review-header a{font-size:9px;color:#466984;text-decoration:none;text-align:right}.google-review{padding:10px 0;border-bottom:1px solid #eef1f5}.google-review:last-of-type{border-bottom:0}.google-review-top{display:flex;justify-content:space-between;gap:8px;align-items:center}.google-review-top b,.google-review-top b a{font-size:10px;color:#42566b;text-decoration:none}.review-stars{white-space:nowrap;font-size:10px;letter-spacing:1px;color:#dfa41d}.google-review p{font-size:11px;line-height:1.6;color:#667487;margin:6px 0}.google-review small{font-size:9px;color:#9aa3b0}.review-limit-note{color:#98a1af;font-size:9px;line-height:1.5;margin:7px 0 0}.review-loading,.error-inline{font-size:11px;line-height:1.6;color:#7d8998;padding:8px 0}.error-inline{color:#99443d}.travel-bottom-note{display:flex;gap:9px;align-items:flex-start;padding:13px 15px;border-radius:13px;background:#f3f6f8;color:#728091;font-size:10px;line-height:1.65}.travel-bottom-note>i{color:#557d9e;font-size:15px;flex-shrink:0}
.my-travel-panel{padding:20px}.my-travel-panel .sectionTitle{align-items:center}.my-travel-panel .sectionTitle h2{font-size:22px;margin:6px 0}.travel-list-tabs{display:flex;gap:4px;background:#f0f3f6;padding:4px;border-radius:11px}.travel-list-tabs button{border:0;border-radius:8px;background:transparent;color:#728094;padding:8px 10px;font-size:10px;font-weight:800;white-space:nowrap}.travel-list-tabs button.active{background:white;color:#365c78;box-shadow:0 1px 4px rgba(22,37,55,.08)}.travel-list-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:14px 0 11px;padding-top:13px;border-top:1px solid #edf0f4}.travel-list-toolbar .muted{font-size:10px}.travel-list-toolbar button{font-size:10px;background:white;color:#496981;border-color:#dce5ed}.my-travel-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.trip-card{border:1px solid #e4e9ef;border-radius:14px;padding:13px;background:#fff;min-width:0;display:grid;grid-template-columns:1fr;gap:11px}.trip-status{display:inline-flex;align-items:center;gap:5px;font-size:9px;font-weight:850;letter-spacing:.25px;text-transform:uppercase;color:#55758f;background:#edf3f8;padding:6px 8px;border-radius:999px}.trip-status.is-visited{color:#26755f;background:#e9f7f0}.trip-card-main h4{font-size:13px;margin:9px 0 5px;color:#2b3e52}.trip-address{font-size:10px;line-height:1.5;color:#8792a1;margin:0}.trip-metadata{display:flex;gap:9px;flex-wrap:wrap;color:#9aa3b0;font-size:9px;margin-top:8px}.trip-card-controls{display:grid;gap:8px}.trip-card-controls label{display:grid;gap:5px;font-size:9px;font-weight:800;color:#66758a}.trip-card-controls textarea,.trip-card-controls select{min-width:0;width:100%;border:1px solid #e0e6ed;border-radius:8px;padding:8px 9px;font:inherit;font-size:11px;color:#44566b;background:#fafbfd;resize:vertical}.trip-card-actions{display:flex;gap:6px;flex-wrap:wrap}.trip-card-actions button{font-size:9px;padding:8px 9px;border-radius:8px;background:#f8fafb;color:#526a7f;border:1px solid #e2e8ee}.trip-card-actions .trip-remove{margin-left:auto;color:#a2625e}.travel-list-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.travel-list-tools .travel-list-tabs{display:flex}.personal-empty{grid-column:1/-1}
@media(max-width:1180px){.travel-search-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.travel-search-button{width:100%}.travel-workspace{grid-template-columns:minmax(0,1fr) minmax(280px,.9fr)}.travel-map-panel #travelMap{height:430px}}
@media(max-width:900px){.travel-workspace{grid-template-columns:1fr}.travel-results-panel{min-height:0}.travel-result-list{grid-template-columns:repeat(2,minmax(0,1fr))}.travel-map-panel #travelMap{height:420px}.travel-hero{grid-template-columns:1fr minmax(230px,.8fr)}}
@media(max-width:640px){.hero{grid-template-columns:1fr;gap:17px}.hero-photo{height:185px}.hero-photo-caption strong{font-size:16px}.travel-hero{grid-template-columns:1fr}.travel-hero-copy{padding:24px 21px}.travel-hero h1{font-size:29px}.travel-hero-image{min-height:175px}.travel-search-bar{grid-template-columns:1fr;padding:12px}.travel-workspace{gap:12px}.travel-map-panel,.travel-results-panel,.my-travel-panel{padding:12px;border-radius:16px}.travel-map-panel #travelMap{height:345px}.map-setup-state{min-height:325px;padding:20px}.travel-result-list{grid-template-columns:1fr}.place-card-photo{height:180px}.my-travel-panel .sectionTitle{display:grid}.travel-list-tools{display:grid;justify-items:stretch;width:100%}.travel-list-tools>button{width:100%}.travel-list-tabs{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.travel-list-tabs button{padding:8px 4px;font-size:9px}.my-travel-list{grid-template-columns:1fr}.travel-list-toolbar{align-items:flex-start;flex-direction:column}.manual-coords{grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){.place-card,.travel-search-button{transition:none}}


/* Rotavia v11 — account screens: fixed modal layer, responsive and isolated from page flow */
[hidden]{display:none!important}
body.modal-open{overflow:hidden!important}
.account-widget{display:grid;grid-template-columns:38px minmax(0,1fr);gap:8px;align-items:center;min-width:0;margin:17px 0 16px;padding:12px;border:1px solid #e0e7ea;border-radius:15px;background:linear-gradient(145deg,#fff,#f7f9fa)}
.account-avatar{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:#e9f0f3;color:#2d596f;font-size:17px;flex-shrink:0}
.account-copy{display:grid;gap:2px;min-width:0}
.account-copy strong{font-size:12px;line-height:1.3;color:#263845;overflow-wrap:anywhere}
.account-copy small{font-size:10px;line-height:1.45;color:#7c8a91;overflow-wrap:anywhere}
.account-open{grid-column:1/-1;width:100%;min-width:0;padding:9px 12px;border:1px solid #dce5e9;border-radius:10px;background:#fff;color:#31596b;font-size:12px;font-weight:800}
.account-open:hover{background:#edf3f5;border-color:#c8d8de}
.modal-overlay{position:fixed!important;inset:0!important;z-index:10000!important;display:flex;align-items:center;justify-content:center;overflow-y:auto;overscroll-behavior:contain;padding:24px;background:rgba(18,31,42,.58);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}
.modal-overlay[hidden]{display:none!important}
.account-modal{position:relative;isolation:isolate;width:min(100%,490px);max-height:calc(100dvh - 48px);overflow-y:auto;overscroll-behavior:contain;margin:auto;padding:clamp(22px,4vw,34px);border:1px solid rgba(255,255,255,.75);border-radius:24px;background:#fff;box-shadow:0 28px 90px rgba(10,24,36,.27);color:#253442;min-width:0}
.modal-close{position:absolute;top:15px;right:15px;width:36px;height:36px;display:grid;place-items:center;border:1px solid #e3e8eb;border-radius:11px;background:#f8fafb;color:#566b78;font-size:14px}
.modal-close:hover{background:#edf3f5;color:#243f4e}
.modal-brand-mark{width:48px;height:48px;display:grid;place-items:center;margin-bottom:17px;border-radius:15px;background:#eaf1f4;color:#315c70;font-size:24px}
.account-modal>.eyebrow{color:#79909b;font-size:10px;letter-spacing:1.5px;font-weight:850}
.account-modal h2{font-size:clamp(23px,3vw,29px);line-height:1.2;letter-spacing:-.7px;margin:8px 38px 9px 0;color:#243543}
.account-modal>.muted{font-size:13px;line-height:1.65;margin:0 0 19px;color:#6d7c87}
.account-mode-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:5px;margin:0 0 18px;border:1px solid #e7ecee;border-radius:13px;background:#f3f6f7}
.account-mode-tabs button{min-height:41px;padding:9px 12px;border-radius:9px;background:transparent;color:#6c7d88;font-size:12px;font-weight:800}
.account-mode-tabs button.active{background:#fff;color:#2b5669;box-shadow:0 2px 7px rgba(24,51,65,.1);border:1px solid #e5ebee}
#accountForm{display:grid;gap:8px;min-width:0}
#accountForm label{display:block;margin:3px 0 0;font-size:11px;font-weight:800;color:#445968}
#accountForm .account-input{display:block;width:100%;min-width:0;height:47px;margin:0;padding:12px 13px;border:1px solid #dce4e8;border-radius:11px;background:#fff;color:#243543;box-shadow:none;font-size:14px}
#accountForm .account-input:focus{outline:none;border-color:#7896a6;box-shadow:0 0 0 3px rgba(64,107,129,.12)}
#accountForm .primary{width:100%;min-height:47px;margin-top:8px;border-radius:11px;background:#2d596f;color:#fff;font-size:13px}
#accountForm .primary:disabled{opacity:.65;cursor:wait;transform:none}
.account-reset-link{justify-self:end;padding:3px 1px;background:transparent;color:#3b687e;font-size:11px;font-weight:750;text-decoration:underline;text-underline-offset:2px}
.account-reset-link:hover{color:#244c60}
.account-message{margin-top:13px;padding:11px 12px;border:1px solid #e1e8eb;border-radius:11px;background:#f5f8f9;color:#506773;font-size:11px;line-height:1.65;overflow-wrap:anywhere}
.account-message.warning{background:#fff8e9;border-color:#f0dfb9;color:#795e2c}
.account-message.error{background:#fff0ef;border-color:#f1d0cd;color:#963d37}
.account-message.success{background:#edf8f1;border-color:#cee8d7;color:#2a694a}
.account-modal .demo-login,.account-modal #accountSignOut{width:100%;margin-top:10px;min-height:43px;border-radius:11px;font-size:12px;white-space:normal}
.account-privacy{font-size:10px;line-height:1.7;color:#8a969d;margin:17px 0 0}
.account-privacy a{color:#3b687e;text-underline-offset:2px}
.account-modal .full-width{max-width:100%}
.account-modal button{touch-action:manipulation}
@media(max-width:640px){
 .account-widget{grid-template-columns:34px minmax(0,1fr);padding:10px;margin:12px 0}
 .account-avatar{width:34px;height:34px}
 .account-open{min-height:40px}
 .modal-overlay{align-items:center;padding:12px}
 .account-modal{width:100%;max-height:calc(100dvh - 24px);padding:22px 18px 20px;border-radius:19px}
 .account-modal h2{font-size:23px}
 .account-modal>.muted{font-size:12px}
 #accountForm .account-input{font-size:16px;height:48px}
 .account-privacy{margin-top:13px}
}
@media(max-height:620px){.modal-overlay{align-items:flex-start}.account-modal{margin:auto 0;max-height:calc(100dvh - 24px)}}

/* Rotavia v12 — email-only account flow and stable modal layout */
#accountForm[hidden], #accountModeTabs[hidden], #accountPlanPanel[hidden], #accountSignOut[hidden], #accountResetPassword[hidden], #accountFullNameWrap[hidden] { display: none !important; }
.account-modal { display: block; box-sizing: border-box; }
.account-modal * { box-sizing: border-box; }
#accountForm { display: grid; grid-template-columns: minmax(0,1fr); align-items: stretch; }
#accountEmailWrap, #accountPasswordWrap { min-width: 0; }
.account-message { overflow-wrap: anywhere; }
.account-maps-note { display:flex; align-items:flex-start; gap:10px; margin-top:13px; padding:12px; background:#f4f7f8; border:1px solid #e1e8eb; border-radius:11px; color:#31596b; }
.account-maps-note>i { font-size:18px; flex-shrink:0; }
.account-maps-note>div { display:grid; gap:4px; }
.account-maps-note b { font-size:12px; }
.account-maps-note small { font-size:11px; line-height:1.6; color:#657783; }
@media(max-width:640px) { .modal-overlay { padding:10px; } .account-modal { max-height:calc(100dvh - 20px); padding:22px 16px 18px; } }


/* Rotavia v14 — email rules, provider suggestions and form feedback */
.email-rules { display:block; margin:7px 1px 0; color:#75838d; font-size:10px; line-height:1.55; }
#accountForm .account-input.input-invalid { border-color:#c9514c!important; background:#fffafa; box-shadow:0 0 0 3px rgba(201,81,76,.09)!important; }
#accountForm .account-input[aria-invalid="true"]:focus { border-color:#c9514c!important; }
.email-domain-chips { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; min-width:0; }
.email-domain-chips[hidden] { display:none!important; }
.email-domain-chip { max-width:100%; padding:6px 9px; border:1px solid #dce5e9; border-radius:999px; background:#f5f8fa; color:#3c6577; font-size:10px; font-weight:750; overflow-wrap:anywhere; }
.email-domain-chip:hover,.email-domain-chip:focus-visible { background:#e8f1f5; border-color:#abc3ce; outline:none; }
#accountForm .email-domain-chips + small { margin-top:5px; }
@media(max-width:420px) { .email-domain-chip { font-size:10px; padding:7px 8px; } .email-rules { font-size:10px; } }

/* Rotavia: optional, privacy-first location control */
.travel-location-row{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:10px 0 2px;padding:11px 14px;border:1px solid #e3e9eb;border-radius:13px;background:#f9fbfb}
.travel-location-copy{display:flex;align-items:flex-start;gap:9px;min-width:0;color:#63757e;font-size:11px;line-height:1.6}
.travel-location-copy>i{flex:0 0 auto;margin-top:1px;color:#447b78;font-size:15px}
.travel-location-button{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:39px;border:1px solid #d5e2e3;background:#fff;color:#315e66;font-size:11px;white-space:nowrap}
.travel-location-button:hover,.travel-location-button.location-active{border-color:#a8d7c7;background:#edf8f2;color:#256a53}
.travel-location-button:disabled{opacity:.7;cursor:wait}
.maps-url-mode .api-only-filter{display:none!important}
@media(max-width:640px){.travel-location-row{align-items:stretch;flex-direction:column;padding:11px}.travel-location-button{width:100%;min-height:44px;white-space:normal}.travel-location-copy{font-size:11px}}

/* Rotavia final brand system: calm, adult, travel-editorial palette */
:root{--ink:#1f2933;--muted:#687784;--line:#e0e6e8;--paper:#ffffff;--bg:#f4f6f6;--accent:#2d596f;--soft:#eaf1f4;--green:#e7f5ef}
.brand-symbol{background:linear-gradient(145deg,#416f7b,#203d50);box-shadow:0 8px 18px rgba(31,61,80,.22)}
.brand-copy small{letter-spacing:.8px;color:#7e8d94;font-size:8px}
.lang.active{background:linear-gradient(110deg,#eaf1f4,#f8faf9);border-color:#cbdde1;box-shadow:inset 3px 0 0 var(--accent)}
.lang:hover{border-color:#cbdde1}
.nav button.active,.nav button:hover{background:#eaf1f4;color:#2d596f}
.nav button.active>i,.nav button:hover>i{color:#2d596f}
.tag{background:#eaf1f4;color:#2d596f}
.stepnum{background:#eaf1f4;color:#2d596f}
.week-btn.active{background:#eaf1f4;border-color:#b7d0d6;color:#2d596f}
.hero{background:linear-gradient(118deg,#203d50 0%,#2d596f 54%,#416f7b 100%);box-shadow:0 18px 38px rgba(32,61,80,.16)}
.hero-cta{color:#2d596f!important}
