/* ALTERVERSE app styles — deployed as root asset, cache-busted with ?v=AVP_VERSION */
/* v0.26 (v2 Phase 1): self-hosted variable fonts (latin subset). Τα Archivo/Mulish
   δεν φορτώνονταν ΠΟΤΕ στο /my/ (ανακάλυψη shell-diet audit) — το app render-άριζε
   πάντα σε system fallback. Latin μόνο: κανένα από τα δύο δεν έχει ελληνικό subset,
   οπότε τα ελληνικά συνεχίζουν στο system stack (καμία οπτική αλλαγή εκεί)·
   wordmark/ψηφία/EN παίρνουν πρώτη φορά τον πραγματικό τους χαρακτήρα. */
@font-face{font-family:"AVInter";src:url("/avp-font-inter-greek.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}
@font-face{font-family:"AVRobotoCond";src:url("/avp-font-robotocond-greek.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}
/* v0.31 (απόφαση Τάση 17/07): «fonts σαν το site» ΚΑΙ στα ελληνικά — τα Archivo/Mulish
   δεν έχουν ελληνικό subset, οπότε τα ελληνικά glyphs σερβίρονται πλέον από
   Roboto Condensed (display, ίδιο condensed-bold ύφος) και Inter (body) — τα δύο
   fonts που φορτώνει και το site. Greek-only subsets (19+22KB), per-glyph fallback:
   λατινικά=brand faces όπως πριν, ελληνικά=designed αντί για system. */
@font-face{font-family:"AVArchivo";src:url("/avp-font-archivo.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"AVMulish";src:url("/avp-font-mulish.woff2") format("woff2");font-weight:200 1000;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
#avp{--ink:#0C1112;--panel:#161D20;--panel2:#1E282C;--hair:#2A363B;--paper:#F5F1E8;--dim:#D6D1C4;--mute:#A6B0AA;--petrol:#123840;--ember-t:#F09B8A;--moss-t:#8FBF86;--z-nav:100;--z-sheet:200;--z-toast:300;--amber:#DDA23E;--amber2:#E8BF6E;--ember:#E0573A;--moss:#6FA663;--sky:#5B97C9;
 width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);background:var(--ink);color:var(--dim);font-family:"AVMulish","AVInter",system-ui,sans-serif;line-height:1.55;min-height:100vh;overflow-x:clip}
#avp *{box-sizing:border-box}
#avp .avwrap{max-width:520px;margin:0 auto;padding:0 20px}
#avp h1,#avp h2,#avp h3,#avp .disp{font-family:"AVArchivo","AVRobotoCond",system-ui,sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.02em;color:var(--paper);margin:0}
#avp .eyebrow{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:600;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--amber2)}
#avp a{color:var(--amber2);text-decoration:none}
#avp .demo{background:rgba(221,162,62,.08);border-bottom:1px solid rgba(221,162,62,.22);color:#B8A87E;font-size:11px;text-align:center;padding:5px 12px;letter-spacing:.05em}
#avp .demo select{display:none} /* testing hook — ορατό μόνο με ?avpdebug=1 */
#avp.avp-debug .demo select{display:inline-block}
#avp .top{display:flex;align-items:center;justify-content:space-between;padding-top:16px;padding-bottom:16px;border-bottom:1px solid var(--hair)}
#avp .brand{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:800;font-size:21px;letter-spacing:.14em;color:var(--paper);line-height:1}
#avp .brand small{display:inline-block;margin-top:7px;font-size:9px;letter-spacing:.3em;color:var(--amber2);font-weight:700;padding:4px 12px 3px;border:1px solid rgba(221,162,62,.45);border-radius:999px;background:rgba(221,162,62,.08)}
#avp .avatar{width:36px;height:36px;border-radius:50%;background:var(--panel2);border:1px solid var(--hair);box-shadow:0 0 0 2px rgba(221,162,62,.3);display:flex;align-items:center;justify-content:center;font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:700;color:var(--amber2);font-size:12px}
#avp .hero{position:relative;overflow:hidden;border-bottom:1px solid var(--hair)}
#avp #avp-sky{position:absolute;inset:0;width:100%;height:100%;opacity:.55;transition:opacity 1s}
#avp .hero-in{position:relative;z-index:2;padding-top:26px;padding-bottom:24px}
#avp .greet{font-size:15px;color:var(--dim);margin:0 0 16px}
#avp .greet b{color:var(--paper);font-weight:700}
#avp .mood{display:inline-flex;align-items:center;gap:8px;background:rgba(12,17,18,.55);border:1px solid var(--hair);border-radius:999px;padding:6px 14px;margin-bottom:12px}
#avp .mood .ic{font-size:15px}
#avp .mood .t{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:700;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--amber2)}
#avp .trip-name{font-size:36px;line-height:.95;margin:4px 0 2px}
#avp .trip-dates{font-size:14px;color:var(--mute);letter-spacing:.04em;margin-bottom:6px}
#avp .ambient{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px;min-height:22px}
#avp .ambient span{font-size:12px;color:var(--dim);background:rgba(12,17,18,.5);border:1px solid var(--hair);border-radius:999px;padding:3px 11px}
#avp .ambient span.aur{color:var(--amber2);border-color:rgba(221,162,62,.4)}
#avp.bday .hero-in{animation:avp-bday 3s ease-in-out infinite alternate}
@keyframes avp-bday{from{filter:brightness(1)}to{filter:brightness(1.12)}}
#avp .phrase{font-size:17px;color:var(--paper);font-weight:600;min-height:48px;margin:0 0 16px;transition:opacity .5s}
#avp .cd{display:flex;gap:8px;margin:0 0 8px}
#avp .cd .u{flex:1;background:rgba(12,17,18,.6);border:1px solid var(--hair);border-radius:12px;padding:12px 4px;text-align:center;transition:border-color .8s}
#avp .cd .n{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:800;font-size:29px;color:var(--paper);font-variant-numeric:tabular-nums}
#avp .cd .l{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--mute);margin-top:2px}
#avp.ph-hot .cd .u{border-color:rgba(224,87,58,.5)}
#avp .astro{display:flex;align-items:center;gap:12px;margin:16px 0 0}
#avp .astro .badge{width:52px;height:52px;border-radius:50%;background:var(--panel2);border:1px solid var(--hair);display:flex;align-items:center;justify-content:center;font-size:24px;flex:none;transition:transform .5s}
#avp.ph-hot .astro .badge{animation:avp-pulse 1.6s infinite}
@keyframes avp-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.07)}}
#avp .astro .st .k{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--mute)}
#avp .astro .st .v{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:700;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--paper)}
#avp section.blk{padding:22px 0;border-bottom:1px solid var(--hair)}
#avp .blk h3{font-size:15px;letter-spacing:.06em;margin-bottom:14px;display:flex;align-items:center;gap:10px}
#avp .blk h3 .tag{margin-left:auto;font-family:"AVMulish","AVInter",sans-serif;font-weight:600;text-transform:none;letter-spacing:0;font-size:12px;color:var(--moss);background:rgba(111,166,99,.12);border:1px solid rgba(111,166,99,.3);padding:2px 10px;border-radius:999px}
#avp .bar{height:7px;border-radius:5px;background:#0e1416;border:1px solid var(--hair);overflow:hidden;margin:10px 0 6px}
#avp .bar i{display:block;height:100%;background:var(--moss);transition:width .8s}
#avp .caption{font-size:12px;color:var(--mute)}
#avp .rowsb{display:flex;align-items:center;justify-content:space-between;gap:12px}
#avp .pay{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--panel);border:1px solid var(--hair);border-radius:14px;padding:14px 16px}
#avp .pay .amt{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:800;font-size:24px;color:var(--ember)}
#avp .btn{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:13px;padding:11px 18px;border-radius:999px;border:0;cursor:pointer;background:var(--amber);color:#1A1206;white-space:nowrap}
#avp .btn.ghost{background:transparent;color:var(--paper);border:1px solid var(--hair)}
#avp ul.pk{list-style:none;margin:0;padding:0;display:grid;gap:2px}
#avp ul.pk li{display:flex;align-items:center;gap:12px;padding:10px 2px;cursor:pointer}
#avp .ck{width:22px;height:22px;border-radius:7px;border:1.5px solid var(--hair);flex:none;display:flex;align-items:center;justify-content:center;color:#1A1206;font-weight:800;font-size:13px;transition:.15s}
#avp li.on .ck{background:var(--amber);border-color:var(--amber)}
#avp li .t{font-size:15px;color:var(--paper)}
#avp li.on .t{color:var(--mute);text-decoration:line-through}
#avp .crew{display:flex;align-items:center;margin-bottom:12px}
#avp .crew .c{width:38px;height:38px;border-radius:50%;background:var(--panel2);border:2px solid var(--ink);display:flex;align-items:center;justify-content:center;font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:700;color:var(--amber2);font-size:13px;margin-left:-9px}
#avp .crew .c:first-child{margin-left:0}
#avp .crew .more{background:var(--amber);color:#1A1206}
#avp .note{font-size:14px;color:var(--dim)}
#avp .note b{color:var(--paper);font-weight:700}
#avp .ann{display:grid;gap:10px}
#avp .ann .a{background:var(--panel);border:1px solid var(--hair);border-radius:12px;padding:12px 14px}
#avp .ann .a .d{font-size:11px;color:var(--mute);letter-spacing:.06em;margin-bottom:2px}
#avp .ann .a .b{font-size:14px;color:var(--paper)}
#avp .tierrow{display:flex;gap:10px;overflow-x:auto;padding-bottom:6px;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}
#avp .tierrow::-webkit-scrollbar{display:none;width:0;height:0}
#avp .tier{flex:0 0 128px;background:var(--panel);border:1px solid var(--hair);border-radius:14px;padding:14px 10px;text-align:center}
#avp .tier.lock{filter:grayscale(.5)}#avp .tier.lock .nm,#avp .tier.lock .pk2{color:var(--mute)}
#avp .tier .em{font-size:26px}
#avp .tier .nm{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:800;font-size:12px;letter-spacing:.1em;color:var(--paper);margin:6px 0 2px;text-transform:uppercase}
#avp .tier .pk2{font-size:11px;color:var(--mute);line-height:1.4}
#avp .tier.cur{border-color:var(--amber);box-shadow:0 0 0 1px var(--amber) inset}
#avp .foot{padding-top:26px;padding-bottom:34px;text-align:center;color:var(--mute);font-size:12px}
#avp .foot .disp{font-size:15px;color:var(--dim);margin-bottom:4px;letter-spacing:.04em}
#avp .demo select{margin-left:10px;background:#2a1512;color:#F0B9AC;border:1px solid rgba(224,87,58,.4);border-radius:8px;padding:2px 8px;font-size:12px}
@media (prefers-reduced-motion:reduce){#avp #avp-sky{display:none}#avp.ph-hot .astro .badge{animation:none}}
/* ===== DESKTOP COCKPIT (≥1025px): αριστερά sticky Mission Control, δεξιά app content ===== */
@media (min-width:1025px){
#avp .shell{display:grid;grid-template-columns:minmax(430px,500px) minmax(0,1fr);max-width:1280px;margin:0 auto;align-items:start}
#avp .mission{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;border-right:1px solid var(--hair);overflow:hidden}
#avp .mission .top{padding-left:36px;padding-right:36px}
#avp .mission .avwrap{max-width:none;margin:0;padding-left:0;padding-right:0}
#avp .mission .top.avwrap{padding:16px 36px}
#avp .hero{flex:1;display:flex;border-bottom:0}
#avp .mission .hero-in{align-self:stretch;display:flex;flex-direction:column;justify-content:center;width:100%;padding:20px 36px 48px;max-width:none;margin:0}
#avp .trip-name{font-size:46px}
#avp .phrase{font-size:19px}
#avp .cd .n{font-size:34px}
#avp .content{padding:8px 48px 0;min-width:0}
#avp .content .avwrap{max-width:660px;margin:0;padding:0}
#avp .content section.blk{padding:26px 0}
#avp .tierrow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:visible;padding-bottom:0}
#avp .tier{flex:none}
#avp .foot{text-align:left;padding:26px 0 40px}
}
@media (max-width:1024px){#avp .mission,#avp .content{display:block}}
#av-tabbar{display:none!important} /* το global site tabbar κρύβεται ΜΟΝΟ στη σελίδα του portal — τα tabs του portal αναλαμβάνουν */
/* ===== TABS / VIEWS / POLISH (v0.4) =====
   v0.19: το dock block του v0.4 αφαιρέθηκε — ένα από τα ΕΞΙ ανταγωνιστικά .tabs
   blocks που είχαν συσσωρευτεί. Το clearance ήταν hard-coded 84px· τώρα παράγεται
   από το ΙΔΙΟ token με το ύψος του nav, ώστε να μην μπορούν να ξεσυγχρονιστούν.
   Έφυγε και το text-transform:uppercase του: στα ελληνικά κρατάει τον τόνο
   («Ταξίδι» → «ΤΑΞΊΔΙ»), που είναι ορθογραφικό λάθος — τα κεφαλαία γράφονται
   πλέον στο ίδιο το copy. */
#avp .view{display:none}
/* 200ms: μέσα στη ζώνη 120-220ms που ζητά ένα app· τα 350ms διαβάζονταν αργά. */
#avp .view.on{display:block;animation:avp-in .2s ease}
@keyframes avp-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
#avp .mtrust{padding:14px 20px 18px;color:var(--mute);font-size:12px;letter-spacing:.04em;border-top:1px solid var(--hair);text-align:center}
#avp .prog{list-style:none;margin:0;padding:0}
#avp .prog li{padding:11px 0;border-bottom:1px dashed var(--hair)}
#avp .prog li:last-child{border-bottom:0}
#avp .prog b{display:block;color:var(--paper);font-family:"AVArchivo","AVRobotoCond",sans-serif;font-size:14px;letter-spacing:.05em;text-transform:uppercase;margin-bottom:2px}
#avp .prog span{font-size:14px}
#avp .fcard{background:var(--panel);border:1px solid var(--hair);border-radius:12px;padding:14px 16px;font-size:14px;line-height:1.6}
#avp .fcard b{color:var(--paper)}
#avp .chips{display:flex;flex-wrap:wrap;gap:8px}
#avp .chips span{font-size:12px;background:var(--panel);border:1px solid var(--hair);border-radius:999px;padding:5px 12px}
#avp .mem{background:var(--panel);border:1px solid var(--hair);border-radius:14px;padding:14px 16px;margin-bottom:12px}
#avp .mh{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px;gap:10px}
#avp .mh b{color:var(--paper);font-family:"AVArchivo","AVRobotoCond",sans-serif;text-transform:uppercase;letter-spacing:.04em}
#avp .mh span{font-size:12px;color:var(--mute);white-space:nowrap}
#avp .strip{display:flex;gap:8px;margin-bottom:10px}
#avp .strip i{flex:1;aspect-ratio:4/3;background:var(--panel2);border:1px solid var(--hair);border-radius:8px;display:flex;align-items:center;justify-content:center;font-style:normal;color:var(--mute);font-size:15px}
#avp .me{display:flex;align-items:center;gap:14px}
#avp .avatar.big{width:56px;height:56px;font-size:16px}
#avp .set{list-style:none;margin:0;padding:0}
#avp .set li{display:flex;justify-content:space-between;align-items:center;padding:13px 2px;border-bottom:1px solid var(--hair);color:var(--paper);font-size:15px}
#avp .set li:last-child{border-bottom:0}
#avp .set li span{color:var(--mute);font-size:12px}
@media (min-width:1025px){
#avp{padding-bottom:0}
/* v0.19: το desktop pill .tabs έφυγε — ήταν νεκρό ούτως ή άλλως, αφού το dock
   κρύβεται ολόκληρο πάνω από 1025px και το .tnav αναλαμβάνει την πλοήγηση. */
#avp .mtrust{padding:16px 36px;text-align:left;margin-top:auto}
#avp .mission .greet{margin-bottom:auto;padding-top:4px}
#avp .mission .astro{margin-top:auto;padding-top:26px}
}
#avp .share{margin-top:14px;font-size:12px;padding:9px 16px}
#avp .nxt{display:grid;gap:10px}
#avp .nxt a{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--hair);border-radius:12px;padding:13px 15px;color:var(--paper);text-decoration:none;transition:border-color .2s}
#avp .nxt a:hover{border-color:var(--amber)}
#avp .nxt .nm{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:14px;color:var(--paper)}
#avp .nxt .dt{font-size:12px;color:var(--mute)}
#avp .nxt .pr{text-align:right;font-size:11px;color:var(--mute);white-space:nowrap}
#avp .nxt .pr b{display:block;color:var(--amber2);font-family:"AVArchivo","AVRobotoCond",sans-serif;font-size:15px}
/* ===== TODAY'S MISSION (v0.5) ===== */
#avp .dm{background:linear-gradient(135deg,rgba(221,162,62,.10),rgba(22,29,32,.6));border:1px solid rgba(221,162,62,.35);border-radius:16px;padding:16px}
#avp .dm-h{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
#avp .dm-h .t{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:800;font-size:14px;letter-spacing:.1em;text-transform:uppercase;color:var(--amber2)}
#avp .dm-h .km{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:800;font-size:13px;color:var(--paper);background:rgba(12,17,18,.6);border:1px solid var(--hair);border-radius:999px;padding:4px 12px;white-space:nowrap}
#avp .dm ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}
#avp .dm li{display:flex;align-items:center;gap:11px;padding:9px 2px;cursor:pointer}
#avp .dm li .ic{font-size:17px;flex:none;width:24px;text-align:center}
#avp .dm li .tx{flex:1;font-size:14px;color:var(--paper)}
#avp .dm li .pts{font-size:11px;color:var(--mute);white-space:nowrap}
#avp .dm li.done .tx{color:var(--mute);text-decoration:line-through}
#avp .dm li.done .pts{color:var(--moss)}
#avp .dm .fin{margin-top:10px;font-size:13px;color:var(--amber2);font-weight:600;display:none}
#avp .dm.alldone .fin{display:block}
#avp .dm .odo{display:flex;align-items:baseline;gap:8px;margin-top:12px;padding-top:12px;border-top:1px dashed var(--hair)}
#avp .odo b{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:800;font-size:18px;color:var(--paper);font-variant-numeric:tabular-nums}
/* v0.19: ΗΤΑΝ  — unscoped. Τα ψηφία του κοντέρ γίνονται inject ως
   <span class="odo-d"> (avp-app.js), οπότε ο κανόνας τους έκλεβε font-size:11px και
   χρώμα λεζάντας. Scoped πλέον στο teaser, για το οποίο και γράφτηκε. */
#avp #avp-verse-teaser .odo span{font-size:11px;color:var(--mute)}
/* ===== CAMPFIRE (v0.7) ===== */
#avp .fire{background:linear-gradient(160deg,rgba(224,87,58,.13),rgba(22,29,32,.72));border:1px solid rgba(224,87,58,.4);border-radius:16px;padding:16px}
#avp .fire .fh{display:flex;gap:12px;align-items:center;margin-bottom:12px}
#avp .fire .fi{font-size:26px;animation:avp-pulse 2.4s infinite}
#avp .fire .ft{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:800;font-size:14px;letter-spacing:.08em;text-transform:uppercase;color:var(--paper)}
#avp .fire .fq{font-size:16px;color:var(--paper);font-weight:600;margin:0 0 10px}
#avp .fire textarea{width:100%;background:rgba(12,17,18,.65);border:1px solid var(--hair);border-radius:10px;color:var(--paper);padding:10px 12px;font-family:"AVMulish","AVInter",system-ui,sans-serif;font-size:14px;resize:vertical}
#avp .fire textarea:focus{outline:none;border-color:rgba(224,87,58,.6)}
/* ===== ALTERPASSPORT + TIMELINE (v0.6) ===== */
#avp .pass{background:var(--panel);border:1px solid var(--hair);border-radius:16px;padding:18px 16px 14px;position:relative;overflow:hidden}
#avp .pass:before{content:'ALTERVAN · ROAD PASSPORT · ALTERVAN · ROAD PASSPORT';position:absolute;top:14px;right:-60px;transform:rotate(32deg);font-family:"AVArchivo","AVRobotoCond",sans-serif;font-size:9px;letter-spacing:.3em;color:rgba(221,162,62,.18);white-space:nowrap}
#avp .stamps{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:12px;position:relative}
#avp .stamp{aspect-ratio:1;border:2px dashed rgba(221,162,62,.55);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--amber2);transform:rotate(-6deg);gap:2px}
#avp .stamp b{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-size:16px;letter-spacing:.1em}
#avp .stamp span{font-size:9px;letter-spacing:.12em;color:var(--mute);text-transform:uppercase}
#avp .stamp:nth-child(2n){transform:rotate(5deg);border-color:rgba(111,166,99,.55);color:#A6CB9D}
#avp .stamp:nth-child(3n){transform:rotate(-2deg);border-color:rgba(91,151,201,.55);color:#9CC2E3}
#avp .stamp.next{border-color:var(--amber);color:var(--amber2);animation:avp-pulse 2.2s infinite;transform:rotate(2deg)}
#avp .stamp.lock{border-style:dotted;border-color:var(--hair);color:var(--mute);transform:rotate(0);animation:none}
#avp .pass .cap{margin-top:12px}
#avp .tl{list-style:none;margin:6px 0 22px;padding:0 0 0 18px;border-left:2px solid var(--hair);display:grid;gap:16px}
#avp .tl li{position:relative;padding-left:14px}
#avp .tl li:before{content:'';position:absolute;left:-25px;top:4px;width:10px;height:10px;border-radius:50%;background:var(--amber);box-shadow:0 0 0 3px rgba(221,162,62,.18)}
#avp .tl li.next:before{background:var(--ember);box-shadow:0 0 0 3px rgba(224,87,58,.25);animation:avp-pulse 2s infinite}
#avp .tl .y{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:800;color:var(--paper);font-size:12px;letter-spacing:.1em}
#avp .tl .d{font-size:13px;color:var(--dim)}
/* ---- DASHBOARD premium (mockup look): top nav + cinematic hero + quick-access grid ---- */
#avp .tnav{display:none}
@media(min-width:1025px){
 #avp .tnav{position:sticky;top:0;z-index:var(--z-nav);display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px clamp(20px,3vw,44px);background:rgba(12,17,18,.92);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--hair)}
 #avp .tnav .tn-logo{display:flex;align-items:center;gap:11px;flex:none}
 #avp .tnav .tn-logo svg{width:22px;height:27px}
 #avp .tnav .tn-logo .wm{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:800;font-size:16px;letter-spacing:.14em;color:var(--paper)}
 #avp .tnav .tn-logo .wm b{color:var(--amber2)}
 #avp .tn-links{display:flex;gap:4px;flex:1;justify-content:center}
 #avp .tn-links button{font-family:"AVMulish","AVInter",sans-serif;font-size:13.5px;color:var(--dim);background:none;border:0;padding:9px 15px;border-radius:9px;cursor:pointer;transition:.15s;white-space:nowrap}
 #avp .tn-links button:hover{color:var(--paper);background:rgba(255,255,255,.05)}
 #avp .tn-links button.on{color:var(--paper);font-weight:700;background:rgba(221,162,62,.12)}
 #avp .tn-links button.soon{color:var(--mute);cursor:default}
 #avp .tn-links button.soon:hover{background:none;color:var(--dim)}
 #avp .tn-links button .sn{font-size:9px;color:var(--amber2);margin-left:5px;letter-spacing:.06em}
 #avp .tn-user{display:flex;align-items:center;gap:10px;flex:none}
 #avp .tn-user .nm{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:600;font-size:13px;color:var(--paper)}
 #avp .shell{max-width:1280px}
}
#avp .dash-head{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:800;font-size:clamp(30px,3.2vw,44px);line-height:1.04;letter-spacing:-.01em;color:var(--paper);margin:6px 0 10px;text-transform:none}
#avp .dash-head .nm{color:var(--paper)}
#avp .dash-ctas{display:flex;gap:10px;margin:16px 0 18px;flex-wrap:wrap}
#avp .dash-ctas .c1{display:inline-flex;align-items:center;gap:9px;font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:700;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:#1A1206;background:var(--amber);border:0;border-radius:10px;padding:13px 20px;cursor:pointer;transition:background .18s}
#avp .dash-ctas .c1:hover{background:var(--amber2)}
#avp .dash-ctas .c2{display:inline-flex;align-items:center;gap:9px;font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:600;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--paper);background:rgba(255,255,255,.05);border:1px solid var(--hair);border-radius:10px;padding:13px 20px;cursor:pointer;transition:.18s}
#avp .dash-ctas .c2:hover{border-color:var(--amber2);color:var(--amber2)}
#avp .dash-tag{margin-top:16px;background:rgba(12,17,18,.55);border:1px solid var(--hair);border-radius:12px;padding:14px 18px;font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:700;font-size:12.5px;letter-spacing:.06em;color:var(--paper);line-height:1.6;text-transform:uppercase}
#avp .dash-tag b{color:var(--amber2)}
/* Τελευταία Νέα + Trip Leader */
#avp .nl-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:760px){#avp .nl-grid{grid-template-columns:1fr}}
#avp .nl-card{display:flex;gap:14px;background:var(--panel);border:1px solid var(--hair);border-radius:14px;overflow:hidden;text-decoration:none;transition:border-color .18s}
#avp .nl-card:hover{border-color:var(--amber)}
#avp .nl-card .im{flex:none;width:118px;background-size:cover;background-position:center;background-color:var(--panel2)}
#avp .nl-card .bx{padding:15px 16px 15px 2px;min-width:0}
#avp .nl-card .t{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:600;font-size:14.5px;color:var(--paper);line-height:1.35;margin:0 0 6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
#avp .nl-card .d{font-size:12.5px;color:var(--mute);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0 0 7px}
#avp .nl-card .mr{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--amber2)}
#avp .tl-card{display:flex;align-items:center;gap:16px;background:var(--panel);border:1px solid var(--hair);border-radius:14px;padding:18px}
#avp .tl-card .ph{flex:none;width:64px;height:64px;border-radius:50%;background:var(--panel2) center/cover;border:2px solid rgba(221,162,62,.45)}
#avp .tl-card .nm{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:700;font-size:15.5px;color:var(--paper)}
#avp .tl-card .rl{font-size:12.5px;color:var(--mute);margin:2px 0 3px}
#avp .tl-card .hd{font-size:12.5px;color:var(--amber2)}
#avp .tl-card .soc{display:flex;gap:10px;margin-top:8px}
#avp .tl-card .soc a{color:var(--mute);display:flex;transition:color .15s}
#avp .tl-card .soc a:hover{color:var(--amber2)}
/* Mobile declutter (feedback Τάση 14/07): μικρότερο hero, χωρίς phrase/astro/tagline, portrait bg */
@media(max-width:1024px){
 #avp .phrase,#avp .astro,#avp .dash-tag{display:none}
 #avp .mission{background-image:var(--avp-hero-m)!important;background-position:center top}
 #avp .dash-ctas{margin:14px 0 12px}
 #avp .hero-in{padding-top:20px;padding-bottom:18px}
}
#avp .mission{background-size:cover;background-position:center top}
#avp .mission:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,17,18,.42) 0%,rgba(12,17,18,.62) 55%,rgba(12,17,18,.93) 100%);z-index:1;pointer-events:none}
#avp .mission>*{position:relative;z-index:2}
#avp #avp-sky{opacity:.22}
#avp .qa{margin:2px 0 10px}
#avp .qa-h{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--mute);margin:0 0 14px}
#avp .qa-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
#avp .qa-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:20px 8px;background:var(--panel);border:1px solid var(--hair);border-radius:14px;cursor:pointer;transition:border-color .18s,transform .18s,background .18s;text-align:center;color:inherit;text-decoration:none}
#avp .qa-item:hover{border-color:var(--amber);background:var(--panel2);transform:translateY(-2px)}
#avp .qa-item .qi{color:var(--amber2);display:flex}
#avp .qa-item .qt{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:600;font-size:12.5px;letter-spacing:.02em;color:var(--paper)}
@media(max-width:560px){#avp .qa-grid{gap:8px}#avp .qa-item{padding:15px 4px;gap:8px}#avp .qa-item .qt{font-size:10.5px}}
/* ---- REFERRAL (invite + credits) ---- */
#avp .rf{background:linear-gradient(135deg,#1A2226 0%,#161D20 100%);border:1px solid var(--hair);border-radius:16px;padding:22px;position:relative;overflow:hidden}
#avp .rf:before{content:'';position:absolute;right:-40px;top:-40px;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,rgba(221,162,62,.16),transparent 70%)}
#avp .rf-top{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
#avp .rf-h{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:700;font-size:16px;color:var(--paper);text-transform:uppercase;letter-spacing:.02em;margin:0}
#avp .rf-bal{text-align:right}
#avp .rf-bal .n{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:800;font-size:26px;color:var(--amber2);line-height:1}
#avp .rf-bal .l{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
#avp .rf p.rf-sub{font-size:13.5px;color:var(--dim);line-height:1.55;margin:10px 0 16px;max-width:440px}
#avp .rf p.rf-sub b{color:var(--amber2)}
#avp .rf-link{display:flex;gap:8px;align-items:stretch}
#avp .rf-link input{flex:1;min-width:0;font-family:"AVMulish","AVInter",sans-serif;font-size:13px;color:var(--paper);background:rgba(12,17,18,.7);border:1px solid var(--hair);border-radius:10px;padding:12px 13px}
#avp .rf-link input:focus{outline:none;border-color:var(--amber2)}
#avp .rf-cp{flex:none;font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:700;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:#1A1206;background:var(--amber);border:0;border-radius:10px;padding:0 16px;cursor:pointer;transition:background .18s}
#avp .rf-cp:hover{background:var(--amber2)}
#avp .rf-share{display:flex;gap:9px;margin-top:11px}
#avp .rf-share a{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;font-family:"AVArchivo","AVRobotoCond",sans-serif;font-size:12px;letter-spacing:.03em;text-transform:uppercase;color:var(--dim);background:rgba(255,255,255,.04);border:1px solid var(--hair);border-radius:10px;padding:11px;text-decoration:none;transition:.15s}
#avp .rf-share a:hover{border-color:var(--amber2);color:var(--amber2)}
#avp .rf-steps{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}
#avp .rf-step{flex:1;min-width:110px;font-size:11.5px;color:var(--mute);line-height:1.4}
#avp .rf-step b{display:block;color:var(--paper);font-family:"AVArchivo","AVRobotoCond",sans-serif;font-size:12px;margin-bottom:2px}
#avp .rf-hist{margin-top:16px;border-top:1px solid var(--hair);padding-top:14px;display:none}
#avp .rf-hist.on{display:block}
#avp .rf-hist .row{display:flex;justify-content:space-between;gap:12px;font-size:12.5px;padding:6px 0;color:var(--dim)}
#avp .rf-hist .row .a{color:var(--amber2);font-weight:700;font-variant-numeric:tabular-nums}
/* ---- LOGIN (Alterverse premium split) ---- */
#avp .avp-login{display:none;min-height:100vh;width:100%}
#avp.avp-need-login .avp-login{display:grid;grid-template-columns:1.12fr .88fr}
/* v0.19: το gate ΔΙΑΡΡΕΕ. Έκρυβε μόνο το .shell, αλλά το nav.tnav ζει έξω από
   αυτό — και μετά τη διόρθωση του σπασμένου </div> τα view-mem/view-me/.foot
   επέστρεψαν μέσα στο <main>. Με AVP_AUTH=true η οθόνη σύνδεσης θα έδειχνε τη
   desktop μπάρα από πάνω και το footer από κάτω. Το gate δένεται πλέον στο
   ΠΕΡΙΕΧΟΜΕΝΟ, όχι στο περιτύλιγμα.
   Το `.view.on` είναι ΑΠΑΡΑΙΤΗΤΟ ρητά: το `#avp .view.on{display:block!important}`
   (γρ.1458) έχει ΙΔΙΟ specificity με ένα σκέτο `#avp.avp-need-login .view`, οπότε
   θα κέρδιζε λόγω σειράς — και το view-trip ξεκινά με .on μέσα στο markup, που
   είναι ακριβώς η περίπτωση που μετράει. */
#avp.avp-need-login .shell,
#avp.avp-need-login .demo,
#avp.avp-need-login .tnav,
#avp.avp-need-login .tabs,
#avp.avp-need-login .foot,
#avp.avp-need-login .view,
#avp.avp-need-login .view.on{display:none!important}
#avp .avp-lg-hero{position:relative;min-height:100vh;background:#0C1112 center/cover no-repeat;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(28px,3.5vw,52px) clamp(28px,4vw,64px)}
#avp .avp-lg-hero:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,11,12,.78) 0%,rgba(8,11,12,.30) 46%,rgba(8,11,12,.60) 100%)}
#avp .avp-lg-hero>*{position:relative;z-index:2}
#avp .avp-lg-logo{display:flex;align-items:center;gap:13px}
#avp .avp-lg-logo .mk{width:30px;height:36px;flex:none}
#avp .avp-lg-logo .wm{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:800;font-size:21px;letter-spacing:.15em;color:var(--paper);line-height:1}
#avp .avp-lg-logo .wm b{color:var(--amber2)}
#avp .avp-lg-logo small{display:block;font-size:8px;letter-spacing:.32em;color:var(--mute);margin-top:5px;font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:600}
#avp .avp-lg-copy{max-width:460px}
#avp .avp-lg-copy .eb{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:600;font-size:12px;letter-spacing:.24em;color:var(--amber2);text-transform:uppercase}
#avp .avp-lg-copy h1{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:800;text-transform:uppercase;color:var(--paper);font-size:clamp(28px,3.6vw,50px);line-height:.98;letter-spacing:-.01em;margin:16px 0 0}
#avp .avp-lg-copy h1 span{color:var(--amber2)}
#avp .avp-lg-copy .sub{font-size:15px;color:var(--dim);line-height:1.55;margin:16px 0 0;max-width:330px}
#avp .avp-lg-cd-wrap{margin-top:28px}
#avp .avp-lg-cd-lbl{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-size:11px;letter-spacing:.2em;color:var(--mute);text-transform:uppercase}
#avp .avp-lg-dest{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:800;font-size:21px;color:var(--paper);text-transform:uppercase;margin:7px 0 12px;letter-spacing:.01em}
#avp .avp-lg-cd{display:flex;gap:clamp(14px,2vw,26px)}
#avp .avp-lg-cd .u{text-align:left}
#avp .avp-lg-cd .n{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:800;font-size:clamp(28px,3vw,38px);color:var(--paper);font-variant-numeric:tabular-nums;line-height:1}
#avp .avp-lg-cd .l{font-size:9px;letter-spacing:.14em;color:var(--mute);text-transform:uppercase;margin-top:5px}
#avp .avp-lg-tag{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:700;font-size:13px;letter-spacing:.02em;color:var(--paper);text-transform:uppercase;line-height:1.5}
#avp .avp-lg-tag b{color:var(--amber2)}
#avp .avp-lg-panel{background:#0F1517;display:flex;align-items:center;justify-content:center;padding:40px clamp(22px,3vw,52px);border-left:1px solid var(--hair)}
#avp .avp-lg-card{width:100%;max-width:376px}
#avp .avp-lg-card h2{text-align:center;font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:700;font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:var(--paper);margin:0}
#avp .avp-lg-rule{width:32px;height:2px;background:var(--amber);margin:13px auto 26px;border-radius:2px}
#avp .avp-lg-tabs{display:flex;gap:6px;background:rgba(12,17,18,.6);border:1px solid var(--hair);border-radius:11px;padding:4px;margin-bottom:22px}
#avp .avp-lg-tabs button{flex:1;font-family:"AVMulish","AVInter",sans-serif;font-size:13.5px;color:var(--mute);background:none;border:0;padding:9px;border-radius:8px;cursor:pointer;transition:.15s}
#avp .avp-lg-tabs button.on{background:var(--panel2);color:var(--paper);font-weight:700}
#avp .avp-lg-lbl{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-size:12px;letter-spacing:.16em;color:var(--mute);text-transform:uppercase;margin-bottom:8px;display:block}
#avp .avp-lg-in{position:relative;margin-bottom:14px}
#avp .avp-lg-in input{width:100%;font-family:"AVMulish","AVInter",sans-serif;font-size:15px;color:var(--paper);background:rgba(12,17,18,.6);border:1px solid var(--hair);border-radius:11px;padding:14px 44px 14px 15px;transition:border-color .15s}
#avp .avp-lg-in input:focus{outline:none;border-color:var(--amber2)}
#avp .avp-lg-in .ic{position:absolute;right:15px;top:50%;transform:translateY(-50%);color:var(--mute);display:flex}
#avp .avp-lg-primary{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:700;font-size:13.5px;letter-spacing:.05em;text-transform:uppercase;padding:15px;border:0;border-radius:11px;background:var(--amber);color:#1A1206;cursor:pointer;transition:background .2s}
#avp .avp-lg-primary:hover{background:var(--amber2)}
#avp .avp-lg-primary:disabled{opacity:.55;cursor:default}
#avp .avp-lg-or{display:flex;align-items:center;gap:14px;margin:22px 0;color:var(--mute);font-size:12px}
#avp .avp-lg-or:before,#avp .avp-lg-or:after{content:'';flex:1;height:1px;background:var(--hair)}
#avp .avp-lg-soc{display:flex;flex-direction:column;gap:11px}
#avp .avp-lg-soc button{display:flex;align-items:center;justify-content:center;gap:11px;width:100%;font-family:"AVMulish","AVInter",sans-serif;font-size:14px;font-weight:600;color:var(--paper);background:rgba(255,255,255,.04);border:1px solid var(--hair);border-radius:11px;padding:13px;cursor:pointer;transition:.15s}
#avp .avp-lg-soc button:hover{background:rgba(255,255,255,.08);border-color:#3A484E}
#avp .avp-lg-soc svg{width:18px;height:18px;flex:none}
#avp .avp-lg-invite{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;margin-top:20px;font-family:"AVArchivo","AVRobotoCond",sans-serif;font-size:12.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--dim);background:none;border:1px solid var(--hair);border-radius:11px;padding:13px;cursor:pointer;text-decoration:none;transition:.15s}
#avp .avp-lg-invite:hover{border-color:var(--amber2);color:var(--amber2)}
#avp .avp-lg-msg{margin:14px 0 0;font-size:13px;line-height:1.5;text-align:center;min-height:16px}
#avp .avp-lg-msg.ok{color:var(--moss)}
#avp .avp-lg-msg.err{color:#F0B9AC}
#avp .avp-lg-priv{margin:20px 0 0;font-size:12px;color:var(--mute);text-align:center;line-height:1.5}
#avp .avp-lg-priv a{color:var(--amber2)}
@media(max-width:1024px){
 #avp.avp-need-login .avp-login{grid-template-columns:1fr}
 #avp .avp-lg-hero{min-height:auto;padding-top:34px;padding-bottom:34px;gap:26px}
 #avp .avp-lg-hero .avp-lg-tag{display:none}
 #avp .avp-lg-panel{border-left:0;border-top:1px solid var(--hair)}
}

/* ---- ALTERVERSE tab (deep cosmic scope) ---- */
#avp[data-area='verse']{--ink:#080D0E;background:#080D0E}
#avp .view-verse .blk{border-color:#1A2428}
#avp .verse-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
#avp .verse-km{text-align:right;flex:none}
#avp .verse-km b{display:block;font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:800;font-size:30px;color:var(--amber2);line-height:1;font-variant-numeric:tabular-nums}
#avp .verse-km span{font-size:11.5px;color:var(--mute);letter-spacing:.08em;text-transform:uppercase}
#avp .verse-soon{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;padding:26px 18px;background:var(--panel);border:1px dashed var(--hair);border-radius:14px;color:var(--mute);font-size:13.5px;line-height:1.55}
#avp .verse-soon b{color:var(--dim);font-family:"AVArchivo","AVRobotoCond",sans-serif;font-size:14px}


/* ================== BATCH 1 · PRIMITIVES (agent A1) — appended last: overrides legacy ================== */
/* ============================================================
   AGENT 1 · DESIGN SYSTEM & PRIMITIVES
   Paste as the FIRST section of avp-app.css (tokens must load
   before every other agent's rules).
   ============================================================ */

/* ---------- A1.1 TOKENS + ROOT ---------- */
#avp{
  --ink:#0C1112;
  --panel:#161D20;
  --panel2:#1E282C;
  --petrol:#123840;
  --hair:#2A363B;
  --paper:#F5F1E8;
  --dim:#D6D1C4;
  --mute:#A6B0AA;
  --amber:#DDA23E;
  --amber-ink:#1A1206; /* ink on amber fills (from contract) */
  --amber2:#E8BF6E;
  --ember-t:#F09B8A;
  --moss-t:#8FBF86;
  --z-nav:100;
  --z-sheet:200;
  --z-toast:300;
  --f-disp:"AVArchivo","AVRobotoCond","Helvetica Neue",Arial,sans-serif;
  --f-body:"AVMulish","AVInter","Segoe UI",Arial,sans-serif;
  --ease:cubic-bezier(.32,.72,0,1);
  background:var(--ink);
  color:var(--dim);
  font-family:var(--f-body);
  font-size:14px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  /* mobile root padding so content clears the fixed bottom nav */
  padding-bottom:calc(84px + env(safe-area-inset-bottom));
}
@media(min-width:1025px){
  #avp{padding-bottom:0;}
}

/* ALTERVERSE deep-dark scope */
#avp [data-area="verse"]{
  --ink:#080D0E;
  --panel:#10171A;
  --panel2:#172024;
  --petrol:#0E2F36;
  background:var(--ink);
}

/* ---------- A1.2 BASE / RESET (scoped) ---------- */
#avp *,#avp *::before,#avp *::after{box-sizing:border-box;}
#avp h1,#avp h2,#avp h3,#avp h4{font-family:var(--f-disp);color:var(--paper);margin:0 0 .4em;}
#avp p{margin:0 0 .8em;}
#avp a{color:var(--amber2);}
#avp img,#avp svg{max-width:100%;}
#avp button{font:inherit;}
#avp a:focus-visible,
#avp button:focus-visible,
#avp input:focus-visible,
#avp select:focus-visible,
#avp textarea:focus-visible{outline:2px solid var(--amber2);outline-offset:2px;}
/* Disabled/locked TEXT: never opacity — mute color + a glyph slot (.lk holds a 16px lock SVG) */
#avp .locked{color:var(--mute);}
#avp .locked .lk{display:inline-block;width:14px;height:14px;vertical-align:-2px;margin-right:5px;}
#avp .locked .lk svg{width:100%;height:100%;display:block;}

/* ---------- A1.3 CARD ---------- */
#avp .card{
  background:var(--panel);
  border:1px solid var(--hair);
  border-radius:16px;
  padding:16px;
}
#avp .card--petrol{background:var(--petrol);}

/* ---------- A1.4 BUTTONS ---------- */
#avp .btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:44px;padding:10px 18px;
  border-radius:12px;border:1px solid transparent;
  background:transparent;color:var(--dim);
  font-family:var(--f-disp);font-weight:700;font-size:14px;line-height:1;letter-spacing:.02em;
  cursor:pointer;text-decoration:none;
  -webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;
  transition:background-color 160ms var(--ease),border-color 160ms var(--ease),color 160ms var(--ease),transform 120ms var(--ease);
}
#avp .btn svg{width:20px;height:20px;flex:none;}
#avp .btn:focus-visible{outline:2px solid var(--amber2);outline-offset:2px;}
#avp .btn:active{transform:translateY(1px);}
#avp .btn:disabled{cursor:not-allowed;transform:none;}
#avp .btn--block{width:100%;}

#avp .btn--primary{background:var(--amber);border-color:var(--amber);color:var(--amber-ink);}
#avp .btn--primary:hover{background:var(--amber2);border-color:var(--amber2);}
#avp .btn--primary:disabled{background:var(--panel2);border-color:var(--hair);color:var(--mute);}

#avp .btn--ghost{border-color:var(--hair);color:var(--paper);}
#avp .btn--ghost:hover{background:var(--panel2);border-color:var(--mute);}
#avp .btn--ghost:disabled{background:transparent;border-color:var(--hair);color:var(--mute);}

#avp .btn--quiet{min-height:40px;padding:8px 12px;color:var(--amber2);}
#avp .btn--quiet:hover{background:var(--panel2);}
#avp .btn--quiet:disabled{background:transparent;color:var(--mute);}

/* ---------- A1.5 CHIPS ---------- */
/* NOTE: no text-transform — write Greek caps directly in copy (uppercase transform mangles tonos) */
#avp .chip{
  display:inline-flex;align-items:center;gap:6px;
  padding:3px 10px;border-radius:999px;
  border:1px solid var(--hair);background:var(--panel2);
  color:var(--mute);font-family:var(--f-disp);
  font-size:12px;font-weight:700;letter-spacing:.04em;white-space:nowrap;
}
#avp .chip--ok{color:var(--moss-t);}
#avp .chip--warn{color:var(--amber2);}
#avp .chip--live{color:var(--moss-t);}
#avp .chip--live::before{
  content:"";width:6px;height:6px;border-radius:50%;flex:none;
  background:var(--moss-t);
  animation:avp-dot-pulse 1.6s var(--ease) infinite;
}
/* v0.19: ΗΤΑΝ κι αυτό «avp-pulse» — ίδιο όνομα με το keyframe της γρ.40. Στα CSS
   keyframes ο ΤΕΛΕΥΤΑΙΟΣ ορισμός νικάει για ΟΛΟΥΣ τους χρήστες, οπότε αυτός εδώ
   καταλάμβανε το .astro .badge (γρ.39), το .fire .fi (172), το .stamp.next (186)
   και την κουκκίδα του timeline (192) — γραμμένα για τον απαλό παλμό scale(1.07)
   της γρ.40. Αποτέλεσμα: ζωντανό περιεχόμενο έσβηνε στο opacity:.45 κάθε 2 δευτ.
   και διαβαζόταν ως απενεργοποιημένο. Το shrink+fade έχει νόημα ΜΟΝΟ για την
   κουκκίδα 6px από πάνω — γι' αυτό κρατά τη συμπεριφορά, αλλάζει μόνο όνομα. */
@keyframes avp-dot-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.75)}}

/* ---------- A1.6 SKELETON ---------- */
#avp .skel{
  position:relative;overflow:hidden;
  background:var(--panel2);border-radius:10px;
  color:transparent !important;
  pointer-events:none;-webkit-user-select:none;user-select:none;
}
#avp .skel::after{
  content:"";position:absolute;top:0;left:0;right:0;bottom:0;
  transform:translateX(-100%);
  background:linear-gradient(90deg,rgba(245,241,232,0) 0%,rgba(245,241,232,.07) 50%,rgba(245,241,232,0) 100%);
  animation:avp-shimmer 1.4s linear infinite;
}
#avp .skel--line{height:14px;}
#avp .skel--title{height:22px;width:58%;}
#avp .skel--card{height:96px;border-radius:16px;}
#avp .skel + .skel{margin-top:10px;}
@keyframes avp-shimmer{100%{transform:translateX(100%)}}

/* ---------- A1.7 EMPTY STATE ---------- */
#avp .empty-state{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:40px 20px;gap:4px;
}
#avp .empty-state .es-ic{width:44px;height:44px;color:var(--mute);margin-bottom:8px;}
#avp .empty-state .es-ic svg{width:100%;height:100%;display:block;}
#avp .empty-state .es-t{font-family:var(--f-disp);font-size:16px;font-weight:700;color:var(--paper);margin:0;}
#avp .empty-state .es-b{font-size:13px;color:var(--mute);line-height:1.55;max-width:340px;margin:0;}
#avp .empty-state .btn{margin-top:14px;}

/* ---------- A1.8 TOAST ---------- */
#avp #avp-toast{
  position:fixed;left:50%;bottom:calc(96px + env(safe-area-inset-bottom));
  transform:translate(-50%,10px);
  z-index:var(--z-toast);
  max-width:min(92vw,420px);
  background:var(--panel2);border:1px solid var(--hair);
  color:var(--paper);font-size:13px;font-weight:600;line-height:1.4;
  padding:11px 16px;border-radius:12px;
  box-shadow:0 10px 30px rgba(0,0,0,.45);
  opacity:0;pointer-events:none;
  transition:opacity 200ms var(--ease),transform 200ms var(--ease);
}
#avp #avp-toast.on{opacity:1;transform:translate(-50%,0);}
@media(min-width:1025px){
  #avp #avp-toast{bottom:28px;}
}

/* ---------- A1.9 BOTTOM SHEET ---------- */
#avp .sheet{position:fixed;top:0;left:0;right:0;bottom:0;z-index:var(--z-sheet);display:none;}
#avp .sheet.on{display:block;}
#avp .sheet-bg{
  position:absolute;top:0;left:0;right:0;bottom:0;
  background:rgba(8,13,14,.62);
  opacity:0;transition:opacity 260ms var(--ease);
}
#avp .sheet-p{
  position:absolute;left:0;right:0;bottom:0;margin:0 auto;
  max-width:640px;max-height:min(86vh,720px);
  display:flex;flex-direction:column;
  background:var(--panel);border:1px solid var(--hair);border-bottom:0;
  border-radius:20px 20px 0 0;
  padding:10px 18px calc(20px + env(safe-area-inset-bottom));
  transform:translateY(103%);
  transition:transform 260ms var(--ease);
}
#avp .sheet.in .sheet-bg{opacity:1;}
#avp .sheet.in .sheet-p{transform:translateY(0);}
#avp .sheet-grab{width:38px;height:4px;border-radius:999px;background:var(--hair);margin:2px auto 10px;flex:none;}
#avp .sheet-hd{display:flex;align-items:center;gap:12px;min-height:32px;flex:none;}
#avp .sheet-t{flex:1;font-family:var(--f-disp);font-size:17px;font-weight:700;color:var(--paper);margin:0;}
#avp .sheet-x{
  margin-left:auto;flex:none;
  display:inline-flex;align-items:center;justify-content:center;
  width:36px;height:36px;border-radius:10px;border:0;
  background:transparent;color:var(--mute);cursor:pointer;
  transition:background-color 160ms var(--ease),color 160ms var(--ease);
}
#avp .sheet-x:hover{background:var(--panel2);color:var(--paper);}
#avp .sheet-x:focus-visible{outline:2px solid var(--amber2);outline-offset:2px;}
#avp .sheet-c{overflow-y:auto;-webkit-overflow-scrolling:touch;padding-top:8px;min-height:0;}

/* ---------- A1.10 DAY-CARD ACCORDION ---------- */
#avp .day-card{
  background:var(--panel);border:1px solid var(--hair);
  border-radius:14px;overflow:hidden;
}
#avp .day-card + .day-card{margin-top:10px;}
#avp .dc-sum{
  display:flex;align-items:center;gap:12px;width:100%;
  padding:14px 16px;background:transparent;border:0;
  color:var(--paper);text-align:left;cursor:pointer;
  font-family:var(--f-disp);-webkit-tap-highlight-color:transparent;
}
#avp .dc-sum:hover{background:var(--panel2);}
#avp .dc-sum:focus-visible{outline:2px solid var(--amber2);outline-offset:-2px;}
#avp .dc-n{flex:none;font-size:12px;font-weight:800;letter-spacing:.08em;color:var(--amber2);white-space:nowrap;}
#avp .dc-t{flex:1;font-size:15px;font-weight:700;min-width:0;}
#avp .dc-car{flex:none;color:var(--mute);transition:transform 260ms var(--ease);}
#avp .dc-car svg{display:block;}
#avp .dc-body{
  display:grid;grid-template-rows:0fr;
  transition:grid-template-rows 260ms var(--ease);
}
#avp .dc-body > div{overflow:hidden;min-height:0;}
#avp .dc-in{padding:0 16px 16px;color:var(--dim);font-size:14px;line-height:1.6;}
#avp .day-card.open .dc-body{grid-template-rows:1fr;}
#avp .day-card.open .dc-car{transform:rotate(180deg);}

/* ---------- A1.11 PROGRESS ---------- */
/* fill = amber2 accent (solid --amber stays reserved for action fills); .progress--ok for paid/complete */
#avp .progress{
  position:relative;height:8px;border-radius:999px;
  background:var(--panel2);border:1px solid var(--hair);overflow:hidden;
}
#avp .progress > i{
  display:block;height:100%;width:0;border-radius:999px;
  background:var(--amber2);
  transition:width 480ms var(--ease);
}
#avp .progress--ok > i{background:var(--moss-t);}

/* ---------- A1.12 SECTION HEADING ---------- */
/* Write Greek caps directly in copy, e.g. ΤΟ ΤΑΞΙΔΙ ΣΟΥ (no text-transform: tonos safety) */
#avp .sec-h{
  display:flex;align-items:center;gap:10px;
  margin:24px 0 10px;
  font-family:var(--f-disp);font-size:12px;font-weight:800;
  letter-spacing:.14em;color:var(--mute);
}
#avp .sec-h::after{content:"";flex:1;height:1px;background:var(--hair);}

/* ---------- A1.13 BOTTOM NAV — ΑΦΑΙΡΕΘΗΚΕ στο v0.19 ----------
   Το έκτο και τελευταίο ανταγωνιστικό .tabs block. Το ενεργό state του ήταν
   μια γραμμή 2px στην ΚΟΡΥΦΗ του κουμπιού — ακριβώς το «μόνο λεπτή γραμμή»
   που απαγορεύει το brief. Ό,τι χρειάζεται ζει τώρα στο ACTIVE CAPSULE dock
   στο τέλος του αρχείου, ΜΑΖΙ με το display:none του desktop. */

/* ---------- A1.14 VIEWS + MOTION ---------- */
#avp .view{display:none;}
#avp .view.on{display:block;animation:avp-in 200ms var(--ease) both;}
#avp .avp-in{animation:avp-in 200ms var(--ease) both;}
@keyframes avp-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* countdown digit swap: JS re-adds .pop after changing textContent (see tickSwap) */
#avp .tick{display:inline-block;}
#avp .tick.pop{animation:avp-tick 300ms var(--ease);}
@keyframes avp-tick{from{transform:translateY(6px);opacity:0}to{transform:translateY(0);opacity:1}}

/* unlock reveal (perks, milestones) */
#avp .unlock{animation:avp-unlock 620ms var(--ease) both;}
@keyframes avp-unlock{
  0%{opacity:0;transform:scale(.92);filter:blur(5px)}
  60%{opacity:1;filter:blur(0)}
  100%{opacity:1;transform:scale(1)}
}

/* blanket reduced-motion */
@media (prefers-reduced-motion:reduce){
  #avp *,#avp *::before,#avp *::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
}

/* ---- ALTERVERSE wordmark (vector) ---- */
#avp .avw{flex:none}
#avp .avw--glow{filter:drop-shadow(0 0 7px rgba(245,241,232,.38))}
#avp .avp-lg-logo--wm{display:flex;flex-direction:column;gap:9px;align-items:flex-start}
#avp .avp-lg-logo--wm small{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-size:9px;letter-spacing:.32em;color:var(--mute);font-weight:600}
#avp .brand--wm{display:flex;align-items:center;min-height:22px}

/* ================== BATCH 2 · DATA states ================== */
/* ================================================================
   AVP — AGENT 3 · DATA LAYER UI ATOMS
   (skeleton loaders, empty state, error card, demo chip)
   Paste into avp-app.css. Everything scoped under #avp.
   Injected at runtime by DATA.mount() — no markup to author.
   ================================================================ */

/* ---------- skeleton loaders (loading state) ---------- */
#avp .skel{
  padding:14px 16px;
  background:var(--panel);
  border:1px solid var(--hair);
  border-radius:14px;
  margin:0 0 10px;
}
#avp .skel:last-child{margin-bottom:0;}
#avp .skel-line{
  height:12px;
  border-radius:6px;
  background:linear-gradient(90deg,var(--panel2) 25%,var(--hair) 50%,var(--panel2) 75%);
  background-size:200% 100%;
  animation:avpShimmer 1.4s linear infinite;
  margin:0 0 10px;
}
#avp .skel-line:last-child{margin-bottom:0;}
#avp .skel-w60{width:60%;}
#avp .skel-w80{width:80%;}
@keyframes avpShimmer{
  from{background-position:200% 0;}
  to{background-position:-200% 0;}
}
@media (prefers-reduced-motion:reduce){
  #avp .skel-line{animation:none;background:var(--panel2);}
}

/* ---------- empty state ---------- */
#avp .avp-empty{
  text-align:center;
  padding:28px 18px;
  background:var(--panel);
  border:1px dashed var(--hair);
  border-radius:14px;
}
#avp .avp-empty svg{width:24px;height:24px;color:var(--mute);}
#avp .avp-empty-t{
  margin:10px 0 4px;
  font-family:"AVArchivo","AVRobotoCond",sans-serif;
  font-size:15px;
  font-weight:600;
  color:var(--paper);
}
#avp .avp-empty-b{
  margin:0;
  font-family:"AVMulish","AVInter",sans-serif;
  font-size:13px;
  line-height:1.55;
  color:var(--mute);
}

/* CTA in empty state — primary action, so amber fill (ink text on it) */
#avp .avp-cta{
  display:inline-block;
  margin-top:14px;
  padding:10px 18px;
  border:0;
  border-radius:10px;
  background:var(--amber);
  color:#1A1206;
  font-family:"AVArchivo","AVRobotoCond",sans-serif;
  font-size:13px;
  font-weight:700;
  text-decoration:none;
  cursor:pointer;
}
#avp .avp-cta:hover{background:var(--amber2);}
#avp .avp-cta:active{transform:translateY(1px);}
#avp .avp-cta:focus-visible{outline:2px solid var(--amber2);outline-offset:2px;}

/* ---------- error card + retry ---------- */
#avp .avp-err{
  padding:16px 18px;
  background:var(--panel);
  border:1px solid var(--hair);
  border-left:3px solid var(--ember-t);
  border-radius:14px;
}
#avp .avp-err svg{width:24px;height:24px;color:var(--ember-t);}
#avp .avp-err-t{
  margin:8px 0 2px;
  font-family:"AVArchivo","AVRobotoCond",sans-serif;
  font-size:14px;
  font-weight:600;
  color:var(--ember-t);
}
#avp .avp-err-b{
  margin:0 0 12px;
  font-family:"AVMulish","AVInter",sans-serif;
  font-size:13px;
  line-height:1.55;
  color:var(--mute);
}
/* retry = quiet secondary action (amber stays reserved for primary) */
#avp .avp-retry{
  padding:9px 16px;
  border:1px solid var(--hair);
  border-radius:10px;
  background:var(--panel2);
  color:var(--dim);
  font-family:"AVArchivo","AVRobotoCond",sans-serif;
  font-size:13px;
  font-weight:600;
  cursor:pointer;
}
#avp .avp-retry:hover{border-color:var(--mute);color:var(--paper);}
#avp .avp-retry:active{transform:translateY(1px);}
#avp .avp-retry:focus-visible{outline:2px solid var(--amber2);outline-offset:2px;}

/* ---------- demo chip («δείγμα») — honest-demo marker ---------- */
/* ================== BATCH 2 · PAYMENT SHEET + READY ================== */
/* ==========================================================================
   AGENT 5 — PAYMENT SHEET (.pay-*) + READINESS CARD (.ready*)
   Επικόλληση στο τέλος του avp-app.css. Όλα scoped κάτω από #avp,
   μόνο δηλωμένα tokens, ένα breakpoint seam, χωρίς νέα z-index.
   ========================================================================== */

/* ---------- Payment sheet: σκελετός ---------- */
#avp .pay{display:flex;flex-direction:column;gap:16px;padding-bottom:calc(4px + env(safe-area-inset-bottom))}
#avp .pay-trip{margin:0;font-size:13px;color:var(--mute);letter-spacing:.02em}
#avp .pay-trip b{color:var(--paper);font-weight:700}
#avp .pay-codechip{display:inline-block;margin-left:8px;padding:2px 9px;border:1px solid var(--hair);border-radius:999px;font-size:12px;color:var(--mute);font-variant-numeric:tabular-nums;vertical-align:1px}

/* ---------- Ποσά: paid / total / ΥΠΟΛΟΙΠΟ ---------- */
#avp .pay-amounts{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:8px}
#avp .pay-amounts.is-two{grid-template-columns:1fr 1fr}
#avp .pay-cell{background:var(--panel2);border:1px solid var(--hair);border-radius:12px;padding:12px 10px;text-align:center}
#avp .pay-lab{display:block;font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:600;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
#avp .pay-val{display:block;margin-top:4px;font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:700;font-size:18px;color:var(--paper);font-variant-numeric:tabular-nums}
#avp .pay-cell--owed{background:var(--petrol);border-color:var(--amber2)}
#avp .pay-cell--owed .pay-lab{color:var(--amber2)}
#avp .pay-cell--owed .pay-val{font-size:26px;font-weight:800;color:var(--amber2)}

/* ---------- Θετική κατάσταση: owed = 0 ---------- */
#avp .pay-ok{display:flex;gap:12px;align-items:flex-start;background:var(--petrol);border:1px solid var(--hair);border-radius:14px;padding:16px}
#avp .pay-ok .ic{flex:none;width:40px;height:40px;border-radius:50%;background:var(--panel2);color:var(--moss-t);display:flex;align-items:center;justify-content:center}
#avp .pay-ok .t{margin:0;font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:700;font-size:15px;text-transform:uppercase;letter-spacing:.03em;color:var(--moss-t)}
#avp .pay-ok .b{margin:4px 0 0;font-size:13px;color:var(--dim);line-height:1.5}

/* ---------- Επικεφαλίδες ενοτήτων sheet ---------- */
#avp .pay-h{margin:2px 0 0;font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:600;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--amber2)}
#avp .pay-sub{margin:3px 0 0;font-size:12px;color:var(--mute)}

/* ---------- Λίστα τραπεζών ---------- */
#avp .pay-banks{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none}
#avp .pay-bank{display:flex;align-items:center;gap:12px;background:var(--panel2);border:1px solid var(--hair);border-radius:12px;padding:12px 14px}
#avp .pay-bank .bx{min-width:0;flex:1}
#avp .pay-bank .bk{display:block;font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:700;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--paper)}
#avp .pay-bank .ib{display:block;margin-top:3px;font-size:14px;color:var(--dim);font-variant-numeric:tabular-nums;letter-spacing:.02em;overflow-wrap:anywhere}
#avp .pay-bank .hd{display:block;margin-top:2px;font-size:12px;color:var(--mute)}
#avp .pay-bank--raw .ib{margin-top:0}
#avp .pay-empty{background:var(--panel2);border:1px dashed var(--hair);border-radius:12px;padding:16px;font-size:13px;color:var(--mute);text-align:center;line-height:1.5}

/* ---------- Copy κουμπί (44px touch target) ---------- */
#avp .pay-copy{flex:none;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--hair);border-radius:10px;color:var(--amber2);cursor:pointer;padding:0;transition:border-color .15s,background-color .15s}
#avp .pay-copy:hover{background:var(--petrol);border-color:var(--amber2)}
#avp .pay-copy:active{transform:scale(.94)}
#avp .pay-copy:focus-visible{outline:2px solid var(--amber2);outline-offset:2px}

/* ---------- Αιτιολογία κατάθεσης ---------- */
#avp .pay-ref{background:var(--petrol);border:1px solid var(--hair);border-radius:14px;padding:14px 16px}
#avp .pay-ref .row{display:flex;align-items:center;gap:12px;margin-top:8px}
#avp .pay-ref code{flex:1;min-width:0;font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:800;font-size:17px;letter-spacing:.05em;color:var(--paper);background:none;padding:0;overflow-wrap:anywhere}
#avp .pay-ref .ex{margin:10px 0 0;font-size:12px;color:var(--mute);line-height:1.5}

/* ---------- CTA (amber = μόνο ενέργειες) ---------- */
#avp .pay-wa,#avp .pay-link{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:14px;border:0;border-radius:12px;background:var(--amber);color:#1A1206;font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:700;font-size:13px;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:filter .15s}
#avp .pay-wa:hover,#avp .pay-link:hover{filter:brightness(1.08)}
#avp .pay-wa:active,#avp .pay-link:active{transform:translateY(1px)}
#avp .pay-wa:focus-visible,#avp .pay-link:focus-visible{outline:2px solid var(--amber2);outline-offset:2px}

/* ---------- Honest note ---------- */
#avp .pay-note{display:flex;gap:8px;align-items:flex-start;margin:0;font-size:12px;color:var(--mute);line-height:1.55}
#avp .pay-note svg{flex:none;margin-top:2px}

/* ---------- Readiness κάρτα (READY.card / READY.mount) ---------- */
#avp .ready{display:flex;gap:12px;align-items:flex-start;background:var(--panel);border:1px solid var(--hair);border-radius:14px;padding:14px 16px}
#avp .ready-ic{flex:none;width:40px;height:40px;border-radius:12px;background:var(--petrol);color:var(--amber2);display:flex;align-items:center;justify-content:center}
#avp .ready--ok .ready-ic{color:var(--moss-t)}
#avp .ready-tx{min-width:0;flex:1}
#avp .ready-t{margin:0;font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:700;font-size:13px;letter-spacing:.05em;text-transform:uppercase;color:var(--paper)}
#avp .ready-b{margin:4px 0 0;font-size:13px;color:var(--dim);line-height:1.5}
#avp .ready-cta{display:inline-block;margin-top:10px;padding:9px 14px;border:0;border-radius:10px;background:var(--amber);color:#1A1206;font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:700;font-size:12px;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:filter .15s}
#avp .ready-cta:hover{filter:brightness(1.08)}
#avp .ready-cta:active{transform:translateY(1px)}
#avp .ready-cta:focus-visible{outline:2px solid var(--amber2);outline-offset:2px}

/* ---------- Desktop (το μοναδικό seam) ---------- */
@media(min-width:1025px){
	#avp .pay{gap:18px}
	#avp .pay-cell--owed .pay-val{font-size:30px}
	#avp .pay-wa,#avp .pay-link{width:auto;min-width:280px;align-self:flex-start;padding:14px 22px}
}

/* ---------- Reduced motion ---------- */
@media(prefers-reduced-motion:reduce){
	#avp .pay-copy,#avp .pay-wa,#avp .pay-link,#avp .ready-cta{transition:none}
	#avp .pay-copy:active,#avp .pay-wa:active,#avp .pay-link:active,#avp .ready-cta:active{transform:none}
}
/* =====================================================================
   AGENT 8 — i18n LAYER — no CSS required.
   Language never changes layout: Greek and English strings are sized
   to fit the same components (EN kept at comparable length on purpose).
   Do NOT add [lang]-scoped rules; both languages use identical styling.
   ===================================================================== */

/* ================== BATCH 3 · ALTERVERSE ================== */
/* ============================================================
   AGENT 6 — ALTERVERSE (view-verse) · scope [data-area="verse"]
   Paste into avp-app.css. Uses only shared tokens; no z-index
   (layering via DOM order: sky canvas first, .verse-wrap after).
   ============================================================ */

/* --- deep-space scope: re-declared ink, deepened panels --- */
#avp [data-area="verse"]{
  --ink:#080D0E;
  --panel:#121A1D;
  --panel2:#182226;
  background:var(--ink);
  position:relative;
}
#avp [data-area="verse"] [hidden]{ display:none !important; }

/* --- SKY canvas as tab background (painted by the SKY module) --- */
#avp .verse-sky{
  position:absolute; top:0; left:0; right:0; bottom:0;
  width:100%; height:100%;
  pointer-events:none;
}

/* --- content column (paints above the canvas via DOM order) --- */
#avp .verse-wrap{
  position:relative;
  max-width:680px; margin:0 auto;
  padding:20px 16px calc(96px + env(safe-area-inset-bottom));
}

/* ============ (1) HEADER STRIP: Road Log odometer + tier ============ */
#avp .verse-head{ margin-bottom:20px; }
#avp .verse-head .odo{
display:block;max-width:100%;
  background:linear-gradient(160deg, var(--petrol), var(--panel));
  border:1px solid var(--hair);
  border-radius:16px;
  padding:16px;
}
#avp .odo-top{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:10px; }
#avp .odo-label{
  font-family:"AVArchivo","AVRobotoCond",sans-serif; font-size:12px; font-weight:700;
  letter-spacing:.14em; color:var(--mute);
}
#avp .chip--tier{
  display:inline-flex; align-items:center;
  font-family:"AVArchivo","AVRobotoCond",sans-serif; font-size:12px; font-weight:700; letter-spacing:.06em;
  color:var(--amber2); border:1px solid var(--amber2);
  border-radius:999px; padding:3px 10px; white-space:nowrap;
}
#avp .odo-row{ display:flex; align-items:baseline; gap:8px; }
#avp .odo-digits{ display:flex; gap:3px; }
#avp .odo-d{
  font-family:"AVArchivo","AVRobotoCond",sans-serif; font-weight:700; font-size:28px; line-height:1;
  font-variant-numeric:tabular-nums;
  color:var(--paper);
  background:var(--ink);
  border:1px solid var(--hair); border-radius:6px;
  padding:6px 4px; min-width:24px; text-align:center;
}
#avp .odo-unit{ font-size:14px; font-weight:700; color:var(--amber2); }
#avp .odo-sub{ margin:8px 0 0; font-size:12px; color:var(--mute); }

/* ============ sign-in row (unauth/demo only) ============ */
#avp .verse-signin{
  display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
  background:var(--panel); border:1px solid var(--hair); border-radius:14px;
  padding:14px 16px; margin-bottom:20px;
}
#avp .verse-signin p{ margin:0; font-size:14px; color:var(--dim); }

/* --- verse buttons (amber fill = primary action only) --- */
#avp [data-area="verse"] .vbtn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  background:var(--amber); color:#1A1206;
  font-family:"AVArchivo","AVRobotoCond",sans-serif; font-weight:700; font-size:14px;
  border:0; border-radius:10px; padding:10px 18px;
  cursor:pointer; text-decoration:none;
  transition:filter .15s ease, transform .15s ease;
}
#avp [data-area="verse"] .vbtn:hover{ filter:brightness(1.08); }
#avp [data-area="verse"] .vbtn:active{ transform:scale(.98); }
#avp [data-area="verse"] .vbtn:focus-visible{ outline:2px solid var(--amber2); outline-offset:2px; }
#avp [data-area="verse"] .vbtn--ghost{ background:transparent; color:var(--amber2); border:1px solid var(--hair); }
#avp [data-area="verse"] .vbtn--ghost:hover{ border-color:var(--amber2); filter:none; }

/* ============ section primitives ============ */
#avp .verse-sec{ margin-bottom:28px; }
#avp .verse-h{
  font-family:"AVArchivo","AVRobotoCond",sans-serif; font-size:18px; font-weight:700;
  color:var(--paper); margin:0 0 4px;
}
#avp .verse-hsub{ margin:0 0 12px; font-size:12px; color:var(--mute); }
#avp .verse-h-row{ display:flex; align-items:center; gap:10px; margin-bottom:12px; }
#avp .verse-h-row .verse-h{ margin:0; }

/* ============ (2) WORLDS GRID ============ */
#avp .worlds-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
#avp .world-node{
  position:relative;
  display:flex; flex-direction:column; align-items:flex-start; gap:6px;
  min-height:112px;
  background:var(--panel);
  border:1px solid var(--hair); border-radius:14px;
  padding:14px 12px;
  text-align:left; text-decoration:none;
  color:var(--dim);
  font-family:"AVMulish","AVInter",sans-serif;
  cursor:pointer;
  transition:border-color .15s ease, transform .15s ease;
}
#avp .world-node:hover{ border-color:var(--mute); transform:translateY(-1px); }
#avp .world-node:active{ transform:translateY(0); }
#avp .world-node:focus-visible{ outline:2px solid var(--amber2); outline-offset:2px; }
#avp .wn-name{ font-family:"AVArchivo","AVRobotoCond",sans-serif; font-size:15px; font-weight:700; color:var(--paper); padding-right:28px; }
#avp .wn-sub{ font-size:12px; color:var(--mute); line-height:1.35; }
#avp .wn-chip{
  display:inline-flex; align-items:center; gap:5px;
  font-size:12px; font-weight:700;
  border-radius:999px; padding:2px 8px;
  margin-top:auto;
}

/* state: completed — petrol surface + gold stamp corner */
#avp .world-node[data-state="completed"]{ background:var(--petrol); }
#avp .wn-stamp{
  position:absolute; top:10px; right:10px;
  width:26px; height:26px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:var(--amber2); border:1px solid var(--amber2);
  transform:rotate(8deg);
}
#avp .wn-stamp svg{ width:14px; height:14px; }
#avp .wn-chip--done{ color:var(--amber2); border:1px solid var(--hair); }

/* state: active — pulsing live chip */
#avp .world-node[data-state="active"]{ border-color:var(--moss-t); }
#avp .wn-chip--live{ color:var(--moss-t); border:1px solid var(--moss-t); }
#avp .wn-live-dot{
  width:8px; height:8px; border-radius:50%; background:var(--moss-t);
  animation:avpVersePulse 1.6s ease-in-out infinite;
}
@keyframes avpVersePulse{
  0%,100%{ box-shadow:0 0 0 0 rgba(143,191,134,.45); }
  50%    { box-shadow:0 0 0 6px rgba(143,191,134,0); }
}

/* state: approaching — countdown chip */
#avp .world-node[data-state="approaching"]{ border-color:var(--amber2); }
#avp .wn-chip--soon{ color:var(--amber2); border:1px solid var(--amber2); }

/* state: booked */
#avp .wn-chip--booked{ color:var(--dim); border:1px solid var(--hair); }

/* state: announced — amber outline + Νέος κόσμος chip */
#avp .world-node[data-state="announced"]{ border-color:var(--amber); }
#avp .wn-chip--new{ color:var(--amber2); border:1px solid var(--amber); }

/* state: locked — dimmed surface, AA-safe --mute text + lock glyph (no opacity on text) */
#avp .world-node[data-state="locked"]{
  background:var(--ink);
  border-style:dashed; border-color:var(--hair);
}
#avp .world-node[data-state="locked"] .wn-name{ color:var(--mute); }
#avp .world-node[data-state="locked"] .wn-sub{ font-style:italic; }
#avp .wn-lock{ position:absolute; top:10px; right:10px; color:var(--mute); }
#avp .wn-lock svg{ width:16px; height:16px; }

/* worlds skeleton (initial paint, replaced by renderWorlds) */
#avp .wn-skel{
  min-height:112px; border-radius:14px;
  background:linear-gradient(100deg, var(--panel) 40%, var(--panel2) 50%, var(--panel) 60%);
  background-size:200% 100%;
  animation:avpVerseSkel 1.2s linear infinite;
}
@keyframes avpVerseSkel{ from{ background-position:200% 0; } to{ background-position:-200% 0; } }

/* ============ (7) TEASERS ============ */
#avp .verse-teasers{ display:flex; flex-direction:column; gap:8px; }
#avp .tease-row{
  display:flex; align-items:center; gap:12px;
  background:var(--panel); border:1px solid var(--hair); border-radius:12px;
  padding:12px 14px;
  text-decoration:none; color:var(--dim);
  transition:border-color .15s ease;
}
#avp .tease-row:hover{ border-color:var(--amber2); }
#avp .tease-row:focus-visible{ outline:2px solid var(--amber2); outline-offset:2px; }
#avp .tease-main{ display:flex; flex-direction:column; gap:2px; flex:1; min-width:0; }
#avp .tease-main b{
  font-family:"AVArchivo","AVRobotoCond",sans-serif; font-size:14px; color:var(--paper);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
#avp .tease-main i{ font-style:normal; font-size:12px; color:var(--mute); }
#avp .tease-low{ font-size:12px; font-weight:700; color:var(--ember-t); white-space:nowrap; }
#avp .tease-row svg{ width:18px; height:18px; color:var(--mute); flex:none; }

/* ============ (3) ALTERPASSPORT ============ */
#avp .passport{
  background:var(--petrol);
  border:1px solid var(--hair); border-radius:16px;
  padding:18px 16px;
}
#avp .pass-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
#avp .pass-stamp{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px;
  aspect-ratio:1/1;
  border:2px solid var(--amber2); border-radius:50%;
  color:var(--amber2);
}
#avp .pass-stamp b{ font-family:"AVArchivo","AVRobotoCond",sans-serif; font-size:14px; letter-spacing:.08em; }
#avp .pass-stamp i{ font-style:normal; font-size:12px; }
#avp .pass-stamp--next{ border-style:dashed; border-color:var(--hair); color:var(--mute); }
#avp .pass-stamp--next i{ text-align:center; line-height:1.15; padding:0 6px; }
#avp .pass-empty{ display:flex; flex-direction:column; align-items:flex-start; gap:12px; }
#avp .pass-empty p{ margin:0; font-size:14px; color:var(--dim); }

/* ============ (4) MILESTONES ============ */
#avp .milestones{
  background:var(--panel); border:1px solid var(--hair); border-radius:16px;
  padding:18px 16px 14px;
}
#avp .ms-track{
  position:relative; height:4px; border-radius:2px;
  background:var(--panel2);
  margin-top:20px;
}
#avp .ms-fill{
  position:absolute; left:0; top:0; bottom:0; border-radius:2px;
  background:var(--amber2); /* accent gold, not the action amber */
}
#avp .ms-stops{ position:relative; height:64px; margin-top:-10px; }
#avp .ms-stop{
  position:absolute; top:0; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:4px;
  text-align:center; width:74px;
}
#avp .ms-dot{
  width:12px; height:12px; border-radius:50%;
  background:var(--panel2); border:2px solid var(--hair);
}
#avp .ms-stop.is-hit .ms-dot{ background:var(--amber2); border-color:var(--amber2); }
#avp .ms-stop.is-next .ms-dot{
  background:var(--panel); border-color:var(--amber2);
  box-shadow:0 0 0 3px rgba(232,191,110,.15);
}
#avp .ms-stop b{ font-family:"AVArchivo","AVRobotoCond",sans-serif; font-size:12px; color:var(--paper); }
#avp .ms-stop.is-hit b{ color:var(--amber2); }
#avp .ms-stop i{ font-style:normal; font-size:12px; color:var(--mute); line-height:1.2; }
#avp .ms-cap{ margin:6px 0 0; font-size:12px; color:var(--mute); }

/* ============ (5) mission + word-of-day shells ============ */
#avp .verse-duo{ display:grid; grid-template-columns:1fr; gap:12px; }
#avp .verse-mini{
  background:var(--panel); border:1px solid var(--hair); border-radius:16px;
  padding:16px;
}
#avp .verse-h3{
  font-family:"AVArchivo","AVRobotoCond",sans-serif; font-size:14px; font-weight:700;
  letter-spacing:.04em; color:var(--amber2);
  margin:0 0 10px;
}
#avp .verse-mini-body{ font-size:14px; color:var(--dim); }

/* ============ locked-world lore SHEET content ============ */
#avp .verse-lore{
  display:flex; flex-direction:column; align-items:center; gap:12px;
  text-align:center; padding:8px 4px 4px;
}
#avp .verse-lore-ic{ color:var(--mute); }
#avp .verse-lore-name{ font-family:"AVArchivo","AVRobotoCond",sans-serif; font-size:18px; color:var(--paper); margin:0; }
#avp .verse-lore-p{ margin:0; font-size:14px; color:var(--dim); font-style:italic; max-width:34ch; }
#avp .verse-lore-sub{ margin:4px 0 0; font-size:12px; color:var(--mute); }

/* ============ desktop (the one seam) ============ */
@media (min-width:1025px){
  #avp .verse-wrap{ max-width:960px; padding:32px 24px 64px; }
  #avp .worlds-grid{ grid-template-columns:repeat(4,1fr); gap:12px; }
  #avp .pass-grid{ grid-template-columns:repeat(6,1fr); }
  #avp .verse-duo{ grid-template-columns:1fr 1fr; }
}

/* ============ reduced motion ============ */
@media (prefers-reduced-motion: reduce){
  #avp [data-area="verse"] .wn-live-dot,
  #avp [data-area="verse"] .wn-skel{ animation:none; }
  #avp [data-area="verse"] .world-node,
  #avp [data-area="verse"] .vbtn,
  #avp [data-area="verse"] .tease-row{ transition:none; }
}

/* ================== BATCH 2b · TAXIDI extras ================== */
/* ============================================================
   AGENT 4 — ΤΑΞΙΔΙ COMMAND CENTRE (view-trip)
   Scoped under #avp. Tokens only. One breakpoint seam.
   ============================================================ */

/* ---- section rhythm ---- */
#avp .view-trip{display:block;padding:16px 16px calc(24px + env(safe-area-inset-bottom));max-width:1080px;margin:0 auto}
#avp .view-trip section{margin:0 0 20px}
#avp .tx-h2{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-size:15px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--paper);margin:0 0 10px}
#avp .tx-h2 small{font-family:"AVMulish","AVInter",sans-serif;font-weight:400;text-transform:none;letter-spacing:0;color:var(--mute);font-size:12px;margin-left:8px}

/* ---- (1) welcome ---- */
#avp .t-wel{padding:6px 2px 14px}
#avp .t-wel .eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--amber2);margin:0 0 4px}
#avp .t-wel h1{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-size:26px;line-height:1.15;color:var(--paper);margin:0 0 4px}
#avp .t-wel .sub{font-size:14px;color:var(--dim);margin:0}

/* ---- cards / chips / buttons (tx primitives) ---- */
#avp .tx-card{background:var(--panel);border:1px solid var(--hair);border-radius:16px;padding:16px}
#avp .card--petrol{background:var(--petrol);border:1px solid var(--hair);border-radius:20px;padding:20px 18px;position:relative;overflow:hidden}
#avp .chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;line-height:1;padding:6px 10px;border-radius:999px;border:1px solid var(--hair);background:var(--panel2);color:var(--dim)}
#avp .chip--mood{border-color:var(--amber2);color:var(--amber2);background:transparent}
#avp .chip--ok{color:var(--moss-t);border-color:var(--moss-t);background:transparent}
#avp .chip--wait{color:var(--mute)}
#avp .tx-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:"AVMulish","AVInter",sans-serif;font-size:14px;font-weight:700;border-radius:12px;padding:12px 18px;border:1px solid var(--hair);background:var(--panel2);color:var(--paper);cursor:pointer;text-decoration:none;transition:background .15s,border-color .15s,transform .1s}
#avp .tx-btn:hover{border-color:var(--amber2)}
#avp .tx-btn:active{transform:translateY(1px)}
#avp .tx-btn:focus-visible{outline:2px solid var(--amber2);outline-offset:2px}
#avp .tx-btn--amber{background:var(--amber);border-color:var(--amber);color:#1A1206}
#avp .tx-btn--amber:hover{filter:brightness(1.06)}
#avp .tx-btn--ghost{background:transparent}
#avp .tx-ico{width:44px;height:44px;padding:0;border-radius:12px;flex:0 0 auto}
#avp .tx-ico svg{width:24px;height:24px}

/* ---- (2) hero next-trip card ---- */
#avp .hero-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
#avp .hero-name{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-size:32px;line-height:1.05;color:var(--paper);margin:0 0 6px}
#avp .hero-date{font-size:14px;color:var(--dim);margin:0 0 12px}
#avp .hero-meta{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
#avp .cd{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:0 0 16px}
#avp .cd u{display:flex;flex-direction:column;align-items:center;text-decoration:none;background:rgba(12,17,18,.45);border:1px solid var(--hair);border-radius:14px;padding:12px 4px}
#avp .cd b{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-size:28px;line-height:1;color:var(--paper);font-variant-numeric:tabular-nums}
#avp .cd i{font-style:normal;font-size:12px;color:var(--mute);margin-top:4px}
#avp .cd.is-done{display:none}
#avp .hero-during{display:none;font-family:"AVArchivo","AVRobotoCond",sans-serif;font-size:20px;color:var(--amber2);margin:0 0 16px}
#avp .hero-during.is-on{display:block}
#avp .hero-actions{display:flex;align-items:center;gap:10px}
#avp .hero-actions .tx-btn--amber{flex:1 1 auto}
#avp .seats-line{margin:14px 0 0;font-size:12px;color:var(--mute)}
#avp .seats-line .bar{display:block;height:6px;border-radius:3px;background:var(--panel2);border:1px solid var(--hair);margin-top:6px;overflow:hidden}
#avp .seats-line .bar b{display:block;height:100%;background:var(--ember-t);border-radius:3px}
#avp .seats-line.is-low{color:var(--ember-t)}

/* ---- (3) readiness ---- */
#avp #avp-ready .tx-card{display:flex;gap:14px;align-items:flex-start}
#avp .ready-ic{width:44px;height:44px;flex:0 0 auto;border-radius:12px;background:var(--panel2);border:1px solid var(--hair);display:flex;align-items:center;justify-content:center;color:var(--amber2)}
#avp .ready-ic svg{width:24px;height:24px}
#avp .ready-t{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-size:16px;color:var(--paper);margin:0 0 4px}
#avp .ready-b{font-size:13px;color:var(--dim);margin:0 0 10px}

/* ---- (4) verse teaser ---- */
#avp #avp-verse-teaser{background:var(--petrol);border:1px solid var(--hair);border-radius:16px;padding:16px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
@media(max-width:389px){#avp #avp-verse-teaser .btn{flex:1 1 100%}}
#avp #avp-verse-teaser .odo{flex:0 0 auto;text-align:center}
#avp .odo b{display:block;font-family:"AVArchivo","AVRobotoCond",sans-serif;font-size:26px;color:var(--amber2);font-variant-numeric:tabular-nums}
#avp .odo i{font-style:normal;font-size:12px;color:var(--mute)}
#avp .verse-txt{flex:1 1 auto;font-size:13px;color:var(--dim)}
#avp .verse-txt strong{display:block;font-family:"AVArchivo","AVRobotoCond",sans-serif;font-size:15px;color:var(--paper);font-weight:700;margin-bottom:2px}

/* ---- (5) program ---- */
#avp .day-card{background:var(--panel);border:1px solid var(--hair);border-radius:14px;padding:14px;margin:0 0 10px}
#avp .day-card .d-head{display:flex;align-items:center;gap:8px;margin:0 0 6px}
#avp .day-card .d-no{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--amber2)}
#avp .day-card .d-title{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-size:15px;color:var(--paper);margin:0}
#avp .day-card .d-body{font-size:13px;color:var(--dim);margin:0}
#avp .day-card.is-today{border-color:var(--amber2)}
#avp #avp-prog-list .day-card:nth-child(n+3){display:none}
#avp #avp-prog-list.is-open .day-card:nth-child(n+3){display:block}
#avp #avp-prog-more{width:100%;margin-top:2px}
#avp .prog-fallback{border-style:dashed;text-align:center;color:var(--mute);font-size:13px}
#avp .prog-fallback strong{display:block;color:var(--dim);font-size:14px;margin-bottom:4px}

/* ---- (6) weather ---- */
#avp #avp-weather .tx-card{padding:14px 16px}
#avp .wx-now{display:flex;align-items:center;gap:12px;margin:0 0 12px;color:var(--paper)}
#avp .wx-now svg{width:24px;height:24px;color:var(--amber2)}
#avp .wx-now b{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-size:24px;font-variant-numeric:tabular-nums}
#avp .wx-now span{font-size:13px;color:var(--dim)}
#avp .wx-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
#avp .wx-d{display:flex;flex-direction:column;align-items:center;gap:4px;background:var(--panel2);border:1px solid var(--hair);border-radius:12px;padding:10px 2px;font-size:12px;color:var(--mute)}
#avp .wx-d svg{width:24px;height:24px;color:var(--dim)}
#avp .wx-d b{color:var(--paper);font-variant-numeric:tabular-nums}
#avp #avp-weather.is-off{display:none}

/* ---- (7) payments summary ---- */
#avp .pay-row{display:flex;justify-content:space-between;font-size:13px;color:var(--dim);margin:0 0 6px}
#avp .pay-row b{color:var(--paper);font-variant-numeric:tabular-nums}
#avp .pay-row .owe{color:var(--ember-t)}
#avp .pay-row .ok{color:var(--moss-t)}
#avp .pay-track{height:8px;border-radius:4px;background:var(--panel2);border:1px solid var(--hair);overflow:hidden;margin:8px 0 14px}
#avp .pay-fill{display:block;height:100%;background:var(--moss-t);border-radius:4px;transition:width .4s ease}

/* ---- (9) crew + chat stages ---- */
#avp .crew-line{display:flex;align-items:center;gap:10px;margin:0 0 12px;color:var(--dim);font-size:13px}
#avp .crew-line svg{width:24px;height:24px;color:var(--amber2);flex:0 0 auto}
#avp .stage{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-top:1px solid var(--hair);font-size:13px;color:var(--dim)}
#avp .stage:first-of-type{border-top:0}
#avp .stage .st-n{color:var(--paper);font-weight:700}
#avp .stage .st-s{font-size:12px;color:var(--mute)}

/* ---- (11) upcoming list ---- */
#avp .up-item{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--panel);border:1px solid var(--hair);border-radius:14px;padding:14px;margin:0 0 8px}
#avp .up-item .u-n{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-size:15px;color:var(--paper);margin:0 0 2px}
#avp .up-item .u-d{font-size:12px;color:var(--mute);margin:0}
#avp .up-item .u-cd{font-size:12px;color:var(--amber2);white-space:nowrap;font-variant-numeric:tabular-nums}

/* ---- skeleton (used while weather loads) ---- */
#avp .tx-skel{background:var(--panel2);border-radius:8px;color:transparent;animation:avpPulse 1.2s ease-in-out infinite}
@keyframes avpPulse{0%,100%{opacity:.55}50%{opacity:1}}

/* ---- desktop seam ---- */
@media(min-width:1025px){
  #avp .view-trip{padding:24px 24px calc(32px + env(safe-area-inset-bottom))}
  #avp .t-wel h1{font-size:32px}
  #avp .hero-name{font-size:44px}
  #avp .cd b{font-size:36px}
  #avp .cd u{padding:16px 4px}
  #avp .tx-grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
  #avp .tx-grid2 section{margin:0}
}
@media(max-width:1024px){
  #avp .hero-actions{flex-wrap:wrap}
}
@media(prefers-reduced-motion:reduce){
  #avp .tx-skel{animation:none}
  #avp .pay-fill{transition:none}
  #avp .tx-btn{transition:none}
}

/* ================== BATCH 4 · MEM + ME ================== */
/* ================================================================
   AGENT 7 — ΑΝΑΜΝΗΣΕΙΣ (view-mem) + ΕΓΩ (view-me)
   Scope: #avp only · tokens only · single seam @1025px
   ================================================================ */

/* ---- 7.0 View scaffolding (drop if agent 1 already pads .view) ---- */
#avp .view-mem,
#avp .view-me { padding: 16px 16px calc(96px + env(safe-area-inset-bottom)); }
#avp .v7-head { margin: 4px 0 16px; }
#avp .v7-title { font-family: "AVArchivo", "AVRobotoCond", sans-serif; font-size: 24px; font-weight: 700; color: var(--paper); margin: 0; }
#avp .v7-sub { font-size: 13px; color: var(--mute); margin: 4px 0 0; }
#avp .view-mem :focus-visible,
#avp .view-me :focus-visible { outline: 2px solid var(--amber2); outline-offset: 2px; border-radius: 8px; }

/* ---- 7.1 Buttons (ghost + amber primary) ---- */
#avp .btn7 { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px; padding: 0 18px; border-radius: 12px; border: 1px solid var(--hair); background: var(--panel2); color: var(--paper); font: 600 14px "Mulish", sans-serif; cursor: pointer; text-decoration: none; transition: background .15s, border-color .15s; }
#avp .btn7:hover { border-color: var(--amber2); }
#avp .btn7:active { background: var(--hair); }
#avp .btn7--amber { background: var(--amber); border-color: var(--amber); color: #1A1206; }
#avp .btn7--amber:hover { background: var(--amber2); border-color: var(--amber2); }

/* ---- 7.2 ΑΝΑΜΝΗΣΕΙΣ — stats row ---- */
#avp .mem-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 0 0 20px; }
#avp .stat7 { background: var(--panel); border: 1px solid var(--hair); border-radius: 14px; padding: 14px 8px; text-align: center; }
#avp .stat7-n { font-family: "AVArchivo", "AVRobotoCond", sans-serif; font-size: 26px; font-weight: 700; color: var(--paper); line-height: 1.1; }
#avp .stat7-l { font-size: 12px; color: var(--mute); margin-top: 4px; }

/* ---- 7.3 ΑΝΑΜΝΗΣΕΙΣ — timeline rail + year markers ---- */
#avp .mem-list { position: relative; padding-left: 22px; }
#avp .mem-list::before { content: ""; position: absolute; left: 6px; top: 8px; bottom: 8px; width: 2px; background: var(--hair); border-radius: 1px; }
#avp .mem-yr { position: relative; margin: 20px 0 10px; font-family: "AVArchivo", "AVRobotoCond", sans-serif; font-size: 13px; font-weight: 700; letter-spacing: .1em; color: var(--amber2); }
#avp .mem-yr::before { content: ""; position: absolute; left: -21px; top: 50%; margin-top: -6px; width: 8px; height: 8px; border-radius: 50%; background: var(--amber); border: 2px solid var(--ink); }

/* ---- 7.4 ΑΝΑΜΝΗΣΕΙΣ — recap card ---- */
#avp .mem-card { background: var(--panel); border: 1px solid var(--hair); border-radius: 16px; padding: 16px; margin: 0 0 12px; }
#avp .mem-card h3 { font-family: "AVArchivo", "AVRobotoCond", sans-serif; font-size: 17px; font-weight: 700; color: var(--paper); margin: 0; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
#avp .mem-meta { font-size: 12px; color: var(--mute); margin: 4px 0 0; }
#avp .mem-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
#avp .chip7 { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; color: var(--dim); background: var(--panel2); border: 1px solid var(--hair); border-radius: 999px; padding: 3px 10px; }
#avp .mem-photos { display: flex; align-items: center; gap: 10px; margin-top: 12px; padding: 12px; background: var(--petrol); border: 1px dashed var(--hair); border-radius: 12px; font-size: 12px; color: var(--mute); line-height: 1.45; }
#avp .mem-photos svg { width: 24px; height: 24px; flex: none; }
#avp .mem-act { margin-top: 12px; }

/* ---- 7.5 Sheet content (Ξαναζήσε το / payments fallback) ---- */
#avp .mem-sheet { display: block; }
#avp .mem-srow { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--hair); font-size: 14px; }
#avp .mem-srow span { color: var(--mute); font-size: 13px; }
#avp .mem-srow b { color: var(--paper); font-weight: 700; text-align: right; }
#avp .mem-sheet .me-note { margin: 12px 0; }
#avp .mem-next { width: 100%; margin-top: 4px; }

/* ---- 7.6 ΕΓΩ — profile header ---- */
#avp .me-wrap { display: grid; gap: 12px; grid-template-columns: minmax(0,1fr); }
#avp .me-head { display: flex; align-items: center; gap: 14px; padding: 4px 2px 8px; }
#avp .me-ava { width: 56px; height: 56px; border-radius: 50%; background: var(--petrol); border: 1px solid var(--hair); color: var(--amber2); font: 700 20px "Archivo", sans-serif; display: flex; align-items: center; justify-content: center; flex: none; }
#avp .me-ava--sm { width: 44px; height: 44px; font-size: 16px; }
#avp .me-name { font-family: "AVArchivo", "AVRobotoCond", sans-serif; font-size: 20px; font-weight: 700; color: var(--paper); margin: 0; }
#avp .me-sub { font-size: 13px; color: var(--mute); margin: 2px 0 0; }

/* ---- 7.7 ΕΓΩ — cards ---- */
#avp .me-card { background: var(--panel); border: 1px solid var(--hair); border-radius: 16px; padding: 16px; }
#avp .me-card--petrol { background: var(--petrol); }
#avp .me-card h3 { display: flex; align-items: center; gap: 8px; font-family: "AVArchivo", "AVRobotoCond", sans-serif; font-size: 15px; font-weight: 600; color: var(--paper); margin: 0 0 10px; }
#avp .me-card h3 svg { width: 18px; height: 18px; color: var(--amber2); flex: none; }
#avp .me-note { font-size: 12px; color: var(--mute); line-height: 1.55; margin: 0; }
#avp .pub-row { display: flex; align-items: center; gap: 12px; margin: 4px 0 12px; }
#avp .pub-name { font-family: "AVArchivo", "AVRobotoCond", sans-serif; font-size: 16px; font-weight: 700; color: var(--paper); margin-bottom: 4px; }

/* ---- 7.8 ΕΓΩ — payments rows ---- */
#avp .payrow { display: flex; width: 100%; min-width: 0; white-space: normal; align-items: center; justify-content: space-between; gap: 10px; min-height: 56px; padding: 12px 2px; background: none; border: 0; border-top: 1px solid var(--hair); color: inherit; font: inherit; text-align: left; cursor: pointer; }
#avp .payrow:first-child { border-top: 0; }
#avp .payrow-txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
#avp .payrow-name { font-size: 14px; font-weight: 600; color: var(--paper); transition: color .15s; }
#avp .payrow:hover .payrow-name { color: var(--amber2); }
#avp .payrow:active { background: var(--panel2); }
#avp .payrow-sub { font-size: 12px; color: var(--mute); }
#avp .pill7 { font-size: 12px; border-radius: 999px; padding: 4px 10px; white-space: nowrap; flex: none; }
#avp .pill7--owed { color: var(--amber2); border: 1px solid var(--amber2); font-weight: 700; }
#avp .pill7--ok { color: var(--moss-t); border: 1px solid var(--hair); }

/* ---- 7.9 ΕΓΩ — chat stages ---- */
#avp .chatrow { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 0; }
#avp .chatrow + .chatrow { border-top: 1px solid var(--hair); }
#avp .chatrow-txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
#avp .chatrow-t { font-size: 14px; font-weight: 600; color: var(--paper); }
#avp .st7 { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; border: 1px solid var(--hair); border-radius: 999px; padding: 3px 10px; white-space: nowrap; flex: none; }
#avp .st7 svg { width: 13px; height: 13px; }
#avp .st7--closed { color: var(--mute); } /* mute + lock glyph, never opacity */
#avp .st7--soon { color: var(--amber2); border-color: var(--amber2); }
#avp .st7--open { color: var(--moss-t); border-color: var(--moss-t); }
#avp .chat-list + .me-note { margin-top: 10px; }

/* ---- 7.10 ΕΓΩ — support + settings rows ---- */
#avp .setrow { display: flex; width: 100%; align-items: center; gap: 12px; min-height: 52px; padding: 6px 2px; background: none; border: 0; color: var(--dim); font: 400 14px "Mulish", sans-serif; text-align: left; text-decoration: none; cursor: pointer; transition: color .15s; }
#avp .setrow + .setrow { border-top: 1px solid var(--hair); }
#avp .setrow svg { width: 20px; height: 20px; color: var(--mute); flex: none; }
#avp .setrow .grow { flex: 1; min-width: 0; }
#avp .setrow .val { font-size: 13px; color: var(--mute); }
#avp .setrow:hover { color: var(--paper); }
#avp .setrow:hover svg { color: var(--amber2); }
#avp .setrow:active { background: var(--panel2); }
#avp .setrow--out { color: var(--ember-t); }
#avp .setrow--out svg, #avp .setrow--out:hover svg { color: var(--ember-t); }
#avp .setrow--out:hover { color: var(--ember-t); }

/* ---- 7.11 Motion ---- */
@media (prefers-reduced-motion: reduce) {
  #avp .view-mem *, #avp .view-me * { transition: none !important; }
}

/* ---- 7.12 Desktop (the ONE seam) ---- */
@media (min-width: 1025px) {
  #avp .view-mem, #avp .view-me { max-width: 680px; margin: 0 auto; padding-top: 32px; }
  #avp .mem-stats { gap: 12px; }
  #avp .stat7 { padding: 18px 10px; }
  #avp .stat7-n { font-size: 30px; }
  #avp .me-wrap { gap: 16px; }
  #avp .mem-list { padding-left: 28px; }
  #avp .mem-list::before { left: 8px; }
  #avp .mem-yr::before { left: -25px; }
}

/* ==== HOTFIX v0.16.8 (screenshot Τάση): views stacking + worlds overflow + odo row wrap ==== */
/* A) Ένα view τη φορά — τελεσίδικα (κάποιο agent CSS έδινε display στα .view χωρίς .on) */
#avp .view{display:none!important}
#avp .view.on{display:block!important}
/* B) Worlds: mobile = horizontal carousel με snap (όχι ξεχείλωμα)· desktop μένει grid */
@media(max-width:1024px){
 #avp #avp-worlds{display:grid!important;grid-auto-flow:column;grid-auto-columns:78%;grid-template-columns:none!important;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;gap:12px;padding:2px 2px 10px;scrollbar-width:none}
 #avp #avp-worlds::-webkit-scrollbar{display:none}
 #avp #avp-worlds>*{scroll-snap-align:start;min-width:0}
}
/* D) Road Log row: μην κόβεται το sub σε στενές οθόνες */
#avp .verse-head .odo-row{flex-wrap:wrap}
#avp .verse-head .odo-sub{white-space:normal}

/* ==== RC v0.17.0: audit fixes ==== */
/* v0.19: το @media(max-width:359px) dock block έφυγε — ήταν το ΜΟΝΟ ρητό
   text-overflow:ellipsis στο dock και παραβίαζε ευθέως την απαίτηση «καμία
   αποσιώπηση 320-430px». Το νέο dock χωράει τα labels με clamp() αντί να τα κόβει. */
#avp .sheet-x{width:44px;height:44px}
#avp .ready-cta{min-height:44px}
#avp .avp-lg-tabs button{min-height:44px}

/* v0.18.2 dock block: ΑΦΑΙΡΕΘΗΚΕ στο v0.19 — το αντικαθιστά το ACTIVE CAPSULE dock
   στο τέλος του αρχείου. Το --dim ήταν σωστό και επιβιώνει εκεί· το
   `:not(.on) .ti svg{stroke-width:1.75}` όμως ήταν ΛΑΘΟΣ: τα ενεργά εικονίδια
   κληρονομούσαν stroke-width="1.6" από το markup, και το CSS νικάει τα presentation
   attributes — άρα τα ΑΝΕΝΕΡΓΑ γίνονταν πιο έντονα από τα ενεργά. Η ίδια η διόρθωση
   αναγνωσιμότητας αντέστρεψε την ιεραρχία που πήγαινε να φτιάξει. */
/* desktop tnav: τα ανενεργά destinations παίρνουν χρώμα σώματος, όχι λεζάντας */
@media(min-width:1025px){ #avp .tn-links button{color:var(--dim)} }

/* ████████████████████████████████████████████████████████████████████
   v0.19.0 — ΑΠΟ ΙΣΤΟΣΕΛΙΔΑ ΣΕ ΕΦΑΡΜΟΓΗ
   Ένα block, τελευταίο στο αρχείο. Αντικαθιστά ΟΛΑ τα προηγούμενα .tabs
   blocks — ήταν έξι, όλα διαγράφηκαν παραπάνω.
   ████████████████████████████████████████████████████████████████████ */

/* ΕΝΑ token οδηγεί ΚΑΙ το ύψος του dock ΚΑΙ το clearance της σελίδας: δεν
   μπορούν να ξεσυγχρονιστούν, ό,τι κι αν αλλάξει αργότερα.
   --avp-nav-label: ΡΗΤΟ system stack, ΟΧΙ Archivo. Η Archivo δεν έχει ελληνικούς
   χαρακτήρες (Google Fonts: μόνο latin/latin-ext/vietnamese unicode-ranges), οπότε
   τα ΤΑΞΙΔΙ/ΑΝΑΜΝΗΣΕΙΣ/ΕΓΩ έπεφταν ήδη σιωπηλά σε τυχαίο OS fallback ενώ το
   ALTERVERSE έπαιρνε Archivo — nav με δύο διαφορετικές γραμματοσειρές. */
#avp{
  --avp-nav-h:64px;
  --avp-nav-gap:12px;
  --avp-nav-label:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}

@media (max-width:1024px){

  /* ── ΤΟ HERO ΑΝΗΚΕΙ ΜΟΝΟ ΣΤΟ ΤΑΞΙΔΙ ──────────────────────────────────
     Το aside.mission είναι αδελφός του main.content μέσα στο .shell: στο desktop
     είναι η αριστερή sticky στήλη του cockpit — απολύτως σωστό. Στο mobile όμως
     το grid ξεδιπλώνεται και το hero στοιβάζεται ΠΑΝΩ από κάθε destination.
     Κρύβεται μέσω data-dest (η JS το γράφει στη ρίζα) αντί να μετακινηθεί ο
     κόμβος: κάθε μετακίνηση έσπαγε το desktop grid. Mobile-only εξ ορισμού.

     ΤΟ [data-dest] ΕΙΝΑΙ ΣΚΟΠΙΜΟ, ΟΧΙ ΠΛΕΟΝΑΣΜΑ: απαιτεί το attribute να ΥΠΑΡΧΕΙ.
     Χωρίς αυτό, ένα σκέτο :not([data-dest=trip]) ταιριάζει και όταν η JS δεν έχει
     τρέξει ακόμη (ή έχει σκάσει) — και εξαφανίζει το hero στην ΠΡΩΤΗ οθόνη.
     Το πλήρωσα ήδη μία φορά: η αποτυχία πρέπει να ΔΕΙΧΝΕΙ το hero, όχι να το κρύβει. */
  #avp[data-dest]:not([data-dest="trip"]) .mission{display:none}

  /* Το scrim ΗΤΑΝ ΗΔΗ ΣΠΑΣΜΕΝΟ: position:absolute;inset:0 χωρίς positioned
     ancestor κούμπωνε στο initial containing block (το viewport) αντί για το
     .mission — και έμοιαζε σωστό μόνο κατά σύμπτωση, επειδή το hero τύχαινε να
     χωράει σχεδόν ακριβώς μέσα στα 844px. Το position:relative μπαίνει ΜΟΝΟ εδώ:
     στο desktop το .mission είναι sticky, και relative στη βάση θα το νικούσε
     (τα media queries δεν προσθέτουν specificity) γκρεμίζοντας το cockpit. */
  #avp .mission{position:relative}

  /* ── HERO: 873px → ~460px (54% του viewport) ─────────────────────────
     Δεν υπάρχει κανόνας ύψους να πειραχτεί — τα 873px ήταν καθαρό άθροισμα
     περιεχομένου (δύο ολόκληρες hero ενότητες στοιβαγμένες). Άρα η μόνη
     ειλικρινής λύση είναι να φύγει περιεχόμενο, όχι να μπει max-height που
     θα έκοβε σιωπηλά. */
  /* v0.46.0: το «ταξιδιάρα ψυχή» είναι πλέον κοντό — μένει ορατό και στο κινητό (κανόνας στο τέλος του αρχείου) */
  #avp .greet{display:none}                /* δεύτερος, πεζός χαιρετισμός — διπλό «καλωσήρθες» */
  #avp .mood{display:none}                 /* «DREAM MODE» — διακόσμηση, όχι πληροφορία */
  #avp .share{display:none}                /* ζει ήδη ως task μέσα στην Αποστολή ημέρας */
  #avp .mtrust{display:none}               /* «★5.0 · 298 Google reviews» — πειθώ πωλήσεων· έχει ΗΔΗ αγοράσει */
  #avp .hero-in{padding-top:14px;padding-bottom:20px}
  #avp .eb-greet{font-size:11px;letter-spacing:.14em;margin-bottom:2px}
  #avp .dash-head{font-size:21px;line-height:1.2;letter-spacing:0;margin:0 0 14px;text-transform:none}
  #avp .trip-name{font-size:34px;line-height:1;margin:4px 0 0}
  #avp .trip-sub{font-family:"AVMulish","AVInter",sans-serif;font-size:14px;color:var(--dim);margin:5px 0 0;line-height:1.3;text-transform:none;letter-spacing:0}
  #avp .trip-dates{margin:6px 0 0;font-size:13.5px}

  /* ── COUNTDOWN: από generic timer widget σε ΓΕΓΟΝΟΣ ──────────────────
     Τέσσερα ισοδύναμα κουτιά δεν δημιουργούν προσμονή — ο εγκέφαλος διαβάζει
     συμβολοσειρά, όχι απόσταση. Ένα νούμερο διαβάζεται πριν το κείμενο.
     Τα δευτερόλεπτα φεύγουν: σε ορίζοντα 250 ημερών δεν μεταφέρουν καμία
     πληροφορία, μόνο θόρυβο. Ο κόμβος μένει — το tick() γράφει χωρίς guard. */
  #avp .cd{display:grid;grid-template-columns:auto auto;grid-template-areas:"d h" "d m";
    column-gap:14px;row-gap:0;justify-content:start;align-items:center;margin:16px 0 0;border:0;padding:0}
  #avp .cd .u{border:0;background:none;padding:0;text-align:left}
  #avp .cd .u--d{grid-area:d;display:flex;flex-direction:column;align-items:flex-start}
  #avp .cd .u--d .n{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:800;font-size:64px;line-height:.86;
    letter-spacing:-.03em;color:var(--paper);font-variant-numeric:tabular-nums}
  #avp .cd .u--d .l{font-size:11px;letter-spacing:.12em;color:var(--dim);margin-top:4px}
  #avp .cd .u--h{grid-area:h;align-self:end}
  #avp .cd .u--m{grid-area:m;align-self:start}
  #avp .cd .u--h,#avp .cd .u--m{display:flex;align-items:baseline;gap:5px;opacity:.78}
  #avp .cd .u--h .n,#avp .cd .u--m .n{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:700;font-size:15px;
    color:var(--dim);font-variant-numeric:tabular-nums}
  #avp .cd .u--h .l,#avp .cd .u--m .l{font-size:10px;letter-spacing:.1em;color:var(--mute);margin:0}
  #avp .cd .u--s{display:none}

  /* ── CTA: ΕΝΑ κυρίαρχο. Το δεύτερο γίνεται ήσυχος σύνδεσμος ─────────
     Δύο ισότιμα στοιβαγμένα κουμπιά δεν είναι ιεραρχία — είναι ερώτηση. */
  #avp .dash-ctas{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin:18px 0 14px}
  #avp .dash-ctas .c1{width:100%;justify-content:center;padding:15px 20px;font-size:13.5px;border-radius:12px}
  #avp .dash-ctas .c2{background:none;border:0;padding:0;color:var(--amber2);font-size:12.5px;
    letter-spacing:.06em;min-height:44px;text-decoration:underline;text-underline-offset:4px;
    text-decoration-color:rgba(232,191,110,.35)}
  #avp .dash-ctas .c2:hover{border-color:transparent;color:var(--amber)}

  /* ── ΣΕΙΡΑ ΚΑΤΑΣΤΑΣΗΣ: ΜΙΑ σειρά αντί για 3-4 σειρές από pills ────── */
  #avp .ambient{display:flex;flex-wrap:nowrap;gap:6px;margin:0;min-height:24px;
    overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  #avp .ambient::-webkit-scrollbar{display:none}
  #avp .ambient span{white-space:nowrap;flex:0 0 auto;font-size:11.5px;padding:5px 9px}

  /* ── DEMO: από μπάρα-πρόταση σε chip. Εξίσου αληθές, χωρίς να σπρώχνει ── */
  #avp .demo{display:inline-flex;align-items:center;gap:6px;width:auto;margin:8px 16px 0;
    padding:4px 10px;border-radius:999px;font-size:11px;letter-spacing:.04em;line-height:1.4}
  #avp .demo .dot{width:5px;height:5px;border-radius:50%;background:currentColor;flex:none;opacity:.75}

  /* ── DOCK — ACTIVE CAPSULE ───────────────────────────────────────────
     Γιατί κάψουλα και όχι το χρυσό island του v0.18: το island μετρήθηκε στο
     1.26:1 έναντι της μπάρας. Η περιφερειακή όραση οδηγείται σχεδόν αποκλειστικά
     από φωτεινότητα — άρα το ενεργό state ήταν πρακτικά αόρατο με την άκρη του
     ματιού. Η κάψουλα cream δίνει 11.19:1, ~9× ισχυρότερο. Cream και όχι gold
     με λόγο: gold = ενέργεια (CTA), cream = θέση.
     ΤΟ ΥΨΟΣ: height = οπτικό + safe-area, ΚΑΙ padding-bottom δεσμεύει το
     safe-area. Το αφελές height:64px + padding-bottom:safe-area καταρρέει με
     border-box σε 54px οπτικά σε notched iPhone — έξω από τη ζώνη 58-68. */
  #avp{padding-bottom:calc(var(--avp-nav-h) + env(safe-area-inset-bottom,0px) + var(--avp-nav-gap))}
  #avp .tabs{
    position:fixed;left:0;right:0;bottom:0;z-index:var(--z-nav);
    display:flex;align-items:stretch;gap:2px;margin:0;
    height:calc(var(--avp-nav-h) + env(safe-area-inset-bottom,0px));
    padding:5px 4px;padding-bottom:calc(5px + env(safe-area-inset-bottom,0px));
    background:var(--petrol);border:0;
    border-top:1px solid rgba(245,241,232,.10);
    box-shadow:inset 0 1px 0 rgba(245,241,232,.06),0 -4px 18px rgba(0,0,0,.28);
  }
  #avp .tabs button{
    position:relative;flex:1 1 0;min-width:0;
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
    min-height:44px;padding:4px 3px;
    background:transparent;border:0;border-radius:14px;
    color:var(--dim);cursor:pointer;-webkit-tap-highlight-color:transparent;
    transition:background-color .18s cubic-bezier(.32,.72,0,1),color .18s;
  }
  #avp .tabs .ti{display:flex;align-items:center;justify-content:center;width:24px;height:24px}
  #avp .tabs .ti svg{width:22px;height:22px;display:block}
  /* clamp vw-based: σωστό ΜΟΝΟ επειδή το dock πιάνει όλο το πλάτος του viewport.
     Το «ΑΝΑΜΝΗΣΕΙΣ» είναι το πλατύτερο label (64.6px), όχι το «ALTERVERSE» (54.5px)
     — κάθε μελλοντικό tuning να γίνεται πάνω σε αυτό. */
  #avp .tabs .avp-tl{
    font-family:var(--avp-nav-label);font-weight:600;
    font-size:clamp(9.5px,2.9vw,10.5px);letter-spacing:.01em;line-height:1;
    white-space:nowrap;overflow:visible;text-overflow:clip;color:var(--dim);
  }
  #avp .tabs button.on{background:var(--paper);color:var(--ink)}
  #avp .tabs button.on .avp-tl{color:var(--ink);font-weight:700}
  #avp .tabs button.pressing,#avp .tabs button:active{background:rgba(245,241,232,.10)}
  #avp .tabs button.on.pressing,#avp .tabs button.on:active{background:var(--dim)}
  #avp .tabs button:focus-visible{outline:2px solid var(--amber2);outline-offset:-3px}
  #avp .tabs button.on:focus-visible{outline-color:var(--ink)} /* amber2 πάνω σε cream = 1.9:1 */

  /* landscape/κοντές οθόνες: αλλάζει ΜΟΝΟ το token — το clearance ακολουθεί μόνο του */
  @media (max-height:450px){
    #avp{--avp-nav-h:58px;--avp-nav-gap:8px}
    #avp .tabs .ti,#avp .tabs .ti svg{width:20px;height:20px}
    #avp .cd .u--d .n{font-size:44px}
    #avp .hero-in{padding-top:10px;padding-bottom:14px}
  }
}

/* desktop: το .tnav αναλαμβάνει την πλοήγηση — το dock δεν έχει θέση εκεί */
@media (min-width:1025px){ #avp .tabs{display:none} }

/* ── Android/iOS: το 100vh ΕΙΝΑΙ bug ─────────────────────────────────
   Το vh αγνοεί το browser chrome, οπότε το 100vh ξεχειλίζει όσο η μπάρα
   διεύθυνσης είναι ορατή, και το layout αναπηδά όταν αυτή μαζεύεται.
   Το svh (small viewport) είναι το ύψος ΜΕ το chrome ορατό και δεν αλλάζει ποτέ.
   Το dvh θα ήταν λάθος εργαλείο εδώ: παρακολουθεί το δυναμικό viewport, άρα θα
   ΠΡΟΚΑΛΟΥΣΕ την αναπήδηση αντί να τη γιατρέψει. */
@supports (height:100svh){
  #avp{min-height:100svh}
  @media (max-width:1024px){ #avp .avp-login{min-height:100svh} }
}

/* Καθολικός κανόνας μειωμένης κίνησης — αντικαθιστά τους σκόρπιους ανά component */
@media (prefers-reduced-motion:reduce){
  #avp *,#avp *::before,#avp *::after{
    animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;scroll-behavior:auto!important;
  }
}

/* ── ΚΟΝΤΕΣ ΟΘΟΝΕΣ (≤700px ύψος: iPhone SE, παλιά Android) ───────────────
   Το hero είναι content-driven: στα 320×568 το ίδιο περιεχόμενο πιάνει 76% του
   viewport αντί για 51% στα 390×844 — ίδια pixels, μικρότερος παρονομαστής.
   Σφίγγουμε αναλογικά ΧΩΡΙΣ να φύγει πληροφορία. Το όνομα ΜΕΝΕΙ: είναι το μόνο
   σημείο όπου εμφανίζεται (το .tnav είναι desktop-only, το avatar δίνει αρχικά). */
@media (max-width:1024px) and (max-height:700px){
  #avp .hero-in{padding-top:8px;padding-bottom:12px}
  #avp .eb-greet{font-size:10px;letter-spacing:.12em}
  #avp .dash-head{font-size:17px;margin:0 0 8px}
  #avp .trip-name{font-size:27px}
  #avp .trip-sub{font-size:12.5px;margin-top:3px}
  #avp .trip-dates{margin-top:4px;font-size:12.5px}
  #avp .cd{margin-top:10px}
  #avp .cd .u--d .n{font-size:46px}
  #avp .cd .u--d .l{font-size:10px;margin-top:2px}
  #avp .dash-ctas{margin:12px 0 10px;gap:6px}
  #avp .dash-ctas .c1{padding:12px 18px;font-size:12.5px}
  #avp .dash-ctas .c2{min-height:38px;font-size:11.5px}
  #avp .ambient span{font-size:11px;padding:4px 8px}
}

/* ████████████████████████████████████████████████████████████████████
   v0.19.6 — ΕΥΡΗΜΑΤΑ ΑΝΕΞΑΡΤΗΤΟΥ ΟΠΤΙΚΟΥ ΚΡΙΤΗ (σκορ 6.1/10)
   ████████████████████████████████████████████████████████████████████ */

/* ── «δείγμα» chip: ΕΝΑΣ ορισμός ────────────────────────────────────────
   Δηλωνόταν ΠΕΝΤΕ φορές (γρ. 498/801/1006/1230/1389) από διαφορετικές
   παρτίδες — ασταθής νικητής ανά ιδιότητα.
   Το ΠΡΑΓΜΑΤΙΚΟ όμως bug ήταν αλλού: ως παιδί flex container το inline-flex
   ΜΠΛΟΚΟΠΟΙΕΙΤΑΙ σε flex, και με align-items:stretch (προεπιλογή) το chip
   τεντωνόταν σε ΟΛΟ το πλάτος (μετρημένο: 358px μέσα στο .verse-teasers,
   55px μέσα στο .verse-h-row). Ίδιο chip, δύο σχήματα, ανάλογα με τον γονιό.
   Ένα chip δεν τεντώνεται ΠΟΤΕ — ό,τι κι αν είναι ο γονιός. */
#avp .chip--demo{
  color:var(--mute);
  background:transparent;
  border:1px dashed var(--hair);
  border-radius:999px;
  letter-spacing:.02em;
  font-weight:600;
}
#avp .chip--demo:empty::before{content:"δείγμα"}
#avp[data-en] .chip--demo:empty::before{content:"sample"}
#avp .chip{flex:0 0 auto;align-self:flex-start;width:auto;max-width:max-content}

/* ── HERO: SCRIM ────────────────────────────────────────────────────────
   Ο κριτής: «ο δακτύλιος του van περνάει μέσα από το ΚΑΛΩΣ ΗΡΘΕΣ ΠΙΣΩ», «το
   00 ΩΡΕΣ χάνεται στα σύννεφα», «hard divider κάτω από τα chips — φαίνεται
   σαν δύο designs κολλημένα».
   ΟΧΙ global opacity, ΟΧΙ text-shadow: ασύμμετρο gradient που σκουραίνει την
   ΑΡΙΣΤΕΡΗ στήλη (όπου ζει το κείμενο) και αφήνει τη δεξιά — όπου ζουν το van
   και ο αστροναύτης — να αναπνέει. Το κάτω άκρο σβήνει στο χρώμα της εφαρμογής
   ώστε να μην υπάρχει ραφή. */
@media (max-width:1024px){
  #avp .mission:after{
    background:
      linear-gradient(180deg, rgba(12,17,18,.62) 0%, rgba(12,17,18,.30) 22%, rgba(12,17,18,.34) 60%, rgba(12,17,18,.92) 88%, var(--ink) 100%),
      linear-gradient(90deg, rgba(12,17,18,.80) 0%, rgba(12,17,18,.55) 42%, rgba(12,17,18,.12) 72%, rgba(12,17,18,0) 100%);
  }
  /* το hero σβήνει μέσα στην εφαρμογή αντί να κόβεται με γραμμή */
  #avp .hero{border-bottom:0}
  #avp .mission{border-bottom:0}
}

/* ── ΤΟ ΔΕΥΤΕΡΕΥΟΝ CTA ΔΕΝ ΕΙΝΑΙ HYPERLINK ─────────────────────────────
   Ο κριτής: «underline = hyperlink = web. Καμία native εφαρμογή δεν έχει
   υπογραμμισμένο link κάτω από το primary CTA.» Σωστό. Γίνεται ήσυχο
   κουμπί-κειμένου με chevron — app affordance, όχι σύνδεσμος. */
@media (max-width:1024px){
  #avp .dash-ctas .c2{
    text-decoration:none;
    display:inline-flex;align-items:center;gap:6px;
    color:var(--dim);font-weight:600;
  }
  #avp .dash-ctas .c2::after{
    content:"";width:6px;height:6px;flex:none;
    border-right:1.8px solid var(--amber2);border-top:1.8px solid var(--amber2);
    transform:rotate(45deg);margin-left:2px;
  }
  #avp .dash-ctas .c2:hover{color:var(--paper)}
}

/* ── ΤΟ ΧΡΥΣΟ ΚΑΝΕΙ ΠΕΝΤΕ ΔΟΥΛΕΙΕΣ ────────────────────────────────────
   Ο κριτής: «primary button, υπογραμμισμένο link, περίγραμμα κάρτας, badge,
   εικονίδια, νούμερα odometer. Όταν όλα είναι τονισμένα, τίποτα δεν είναι.»
   Κανόνας: χρυσό = ΕΝΕΡΓΕΙΑ (primary CTA) + ουσιώδης κατάσταση. Τα διακοσμητικά
   badges πέφτουν σε ουδέτερο. */
#avp .wn-badge,
#avp .world-node .wn-badge{border-color:var(--hair);color:var(--dim)}
/* το κοντέρ: ψηφία σε μαύρα κουτάκια έγερναν προς gaming HUD — τα κουτάκια
   μαλακώνουν, ο αριθμός μένει το γεγονός */
#avp .odo-d{background:rgba(12,17,18,.55);border:1px solid var(--hair);color:var(--paper)}
#avp .odo-unit{color:var(--mute)}

/* ── CAROUSEL: ΚΟΜΜΕΝΟ ΣΤΗ ΜΕΣΗ ΛΕΞΗΣ ─────────────────────────────────
   Ο κριτής: «Νορβηγ… / Νέος κόσ… κόβονται στο δεξί όριο χωρίς gutter και χωρίς
   fade. Δεν διαβάζεται ως σκόπιμο peek — διαβάζεται ως overflow bug.»
   Γίνεται ρητό, κυλιόμενο carousel με snap και τελικό gutter: το μισό κάρτα
   που φαίνεται λέει πλέον «υπάρχει κι άλλο», αντί για «κάτι έσπασε». */
@media (max-width:1024px){
  #avp .worlds-grid{
    display:flex;gap:10px;
    overflow-x:auto;scroll-snap-type:x mandatory;
    scrollbar-width:none;-webkit-overflow-scrolling:touch;
    padding-right:16px;margin-right:-16px;
  }
  #avp .worlds-grid::-webkit-scrollbar{display:none}
  #avp .worlds-grid > *{flex:0 0 78%;scroll-snap-align:start;min-width:0}
}

/* ── HERO: Η ΣΥΓΚΡΟΥΣΗ ΚΕΙΜΕΝΟΥ/ΕΙΚΟΝΑΣ — ΤΙ ΔΟΥΛΕΨΕ ΚΑΙ ΤΙ ΟΧΙ ─────────
   ΜΕΤΡΗΜΕΝΟ: κουτί 390×502 (aspect .778), εικόνα 848×1264 (aspect .671 — πιο
   ΣΤΕΝΗ από το κουτί). Με background-size:cover κλιμακώνεται κατά πλάτος, άρα
   overflowX = 0. Συνέπεια: το background-position X είναι ΚΥΡΙΟΛΕΚΤΙΚΑ no-op.

   ΔΟΚΙΜΑΣΤΗΚΕ ΚΑΙ ΑΠΟΡΡΙΦΘΗΚΕ: background-size:150% + position:78% για να
   δημιουργηθεί περιθώριο μετακίνησης. Μεγάλωσε το βαν ΚΑΙ το έφερε ΑΡΙΣΤΕΡΑ
   (το 78% δείχνει το ΔΕΞΙ μέρος της εικόνας, άρα φέρνει το θέμα αριστερά) —
   κάθισε πάνω στο «ΙΣΛΑΝΔΙΑ». Χειρότερο από την αφετηρία.

   ΤΙ ΙΣΧΥΕΙ: cover + ασύμμετρο scrim. Ο νυχτερινός ουρανός στα αριστερά σκουραίνει,
   το βαν και ο αστροναύτης στα δεξιά αναπνέουν. Η ΠΡΑΓΜΑΤΙΚΗ λύση για το τελευταίο
   άγγιγμα του δακτυλίου είναι ΑΣΣΕΤ, όχι CSS: κάδρο με το θέμα δεξιά. Καταγράφεται
   ως τέτοιο αντί να συγκαλυφθεί με μεγέθυνση που θυσιάζει την εικόνα. */

/* ── v0.19.10 · ΤΕΛΕΥΤΑΙΟ ΑΓΓΙΓΜΑ (2ος κριτής, 8.5 «οριακά») ──────────────
   Δύο στοχευμένες διορθώσεις που βγάζουν το σκορ από το όριο. */

/* (α) «δείγμα» chip: γκρι-σε-σκούρο διακεκομμένο = το πιο δυσανάγνωστο στοιχείο.
   Ανεβαίνει σε amber2 (το χρώμα «ήπιας κατάστασης») με ελαφρύ γέμισμα — παραμένει
   διακριτικό δείκτης demo, αλλά διαβάζεται καθαρά. */
#avp .chip--demo{
  color:var(--amber2);
  border-color:rgba(232,191,110,.45);
  background:rgba(232,191,110,.08);
}

/* (β) countdown: το «ΩΡΕΣ/ΛΕΠΤΑ» ήταν baseline-aligned με τα νούμερα, που τα
   άφηνε να «κρέμονται». Κεντράρισμα κάθετα με το ψηφίο του καθένα. */
@media(max-width:1024px){
  #avp .cd .u--h,#avp .cd .u--m{align-items:center}
  #avp .cd .u--h .l,#avp .cd .u--m .l{position:relative;top:.5px}
}

/* (γ) «δείγμα» inline σε τίτλο: σταθερή θέση — ο τίτλος τυλίγεται, το chip όχι.
   Ο κριτής: «άλλοτε σε δική του γραμμή, άλλοτε inline — ασυνέπεια τοποθέτησης». */
#avp .mem-card h3,#avp #avp-me-chat h3{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
#avp .mem-card h3 .chip--demo,#avp #avp-me-chat h3 .chip--demo{flex:0 0 auto}

/* ████████████████████████████████████████████████████████████████████
   v0.20.0 — AUTH ΡΟΗ ΔΥΟ ΒΗΜΑΤΩΝ · AUTH-AWARE HEADER · ΠΡΟΦΙΛ · ΓΛΩΣΣΑ
   ████████████████████████████████████████████████████████████████████ */

/* ── Login: βήματα ── */
#avp .avp-lg-sub2{color:var(--dim);font-size:14.5px;line-height:1.55;margin:8px 0 18px}
#avp .lgs h2{margin-bottom:2px}
/* στο βήμα «κωδικός» και στο «έληξε», τα social/invite του βήματος email κρύβονται */
#avp .avp-lg-card[data-step="code"] .avp-lg-or,
#avp .avp-lg-card[data-step="code"] .avp-lg-soc,
#avp .avp-lg-card[data-step="code"] .avp-lg-invite,
#avp .avp-lg-card[data-step="expired"] .avp-lg-or,
#avp .avp-lg-card[data-step="expired"] .avp-lg-soc,
#avp .avp-lg-card[data-step="expired"] .avp-lg-invite{display:none}

/* ── OTP: 6 χωριστά ψηφία ── */
#avp .avp-otp{display:flex;gap:8px;justify-content:flex-start;margin:6px 0 16px}
#avp .avp-otp-d{
  width:46px;height:56px;text-align:center;
  font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:800;font-size:24px;
  color:var(--paper);background:var(--panel2);
  border:1px solid var(--hair);border-radius:12px;
  caret-color:var(--amber);
}
#avp .avp-otp-d:focus{outline:none;border-color:var(--amber);box-shadow:0 0 0 3px rgba(221,162,62,.18)}
@media(max-width:380px){ #avp .avp-otp{gap:6px} #avp .avp-otp-d{width:40px;height:50px;font-size:20px} }
#avp .avp-otp.shake{animation:avp-shake .3s}
@keyframes avp-shake{0%,100%{transform:none}25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}

#avp .avp-lg-row2{display:flex;gap:14px;align-items:center;margin-top:4px}
#avp .avp-lg-ghost{
  background:none;border:0;padding:10px 2px;min-height:44px;cursor:pointer;
  color:var(--amber2);font-size:13px;letter-spacing:.03em;
}
#avp .avp-lg-ghost:disabled{color:var(--mute);cursor:default}
#avp .avp-lg-ghost:not(:disabled):hover{color:var(--amber)}

/* ── Branded auth αναμονή/μετάβαση — ποτέ λευκή/γυμνή οθόνη ── */
#avp .avp-authwait{
  position:fixed;inset:0;z-index:var(--z-toast);
  display:flex;align-items:center;justify-content:center;
  background:var(--ink);
}
#avp .avp-authwait[hidden]{display:none}
#avp .avp-authwait .aw-in{text-align:center}
#avp .avp-authwait .aw-mark{
  font-size:34px;color:var(--amber2);margin-bottom:10px;
  animation:avp-awpulse 1.4s ease-in-out infinite;
}
@keyframes avp-awpulse{0%,100%{opacity:.55;transform:scale(1)}50%{opacity:1;transform:scale(1.12)}}
#avp .avp-authwait p{color:var(--dim);font-size:15px;letter-spacing:.04em}

/* ── User menu (auth-aware header) ── */
#avp-usermenu{
  position:fixed;top:64px;right:12px;z-index:var(--z-sheet);
  min-width:210px;padding:6px;
  background:var(--panel2);border:1px solid var(--hair);border-radius:14px;
  box-shadow:0 14px 34px rgba(0,0,0,.5);
  opacity:0;transform:translateY(-6px);pointer-events:none;
  transition:opacity .16s,transform .16s;
}
#avp-usermenu.on{opacity:1;transform:none;pointer-events:auto}
#avp-usermenu button{
  display:block;width:100%;text-align:left;
  background:none;border:0;border-radius:9px;cursor:pointer;
  padding:11px 12px;min-height:44px;
  color:var(--dim);font-size:14px;
}
#avp-usermenu button:hover{background:rgba(245,241,232,.06);color:var(--paper)}
#avp-usermenu .um-rule{height:1px;background:var(--hair);margin:5px 8px}
#avp-usermenu .um-out{color:var(--ember-t)}
#avp .avatar--authed{border:2px solid var(--amber);cursor:pointer}
#avp .avatar{cursor:pointer}

/* ── ΠΡΟΦΙΛ: Τα στοιχεία μου ── */
#avp #avp-me-profile h3{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
#avp .psec{border-top:1px solid var(--hair);padding:14px 0 10px;margin-top:10px}
#avp .psec:first-of-type{border-top:0}
#avp .psec-h{display:flex;align-items:center;gap:10px;margin-bottom:8px}
#avp .psec-h h4{
  font-family:"AVArchivo","AVRobotoCond",sans-serif;font-size:12.5px;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;color:var(--amber2);margin:0;
}
#avp .pedit{
  margin-left:auto;background:none;border:1px solid var(--hair);border-radius:999px;
  color:var(--dim);font-size:12px;padding:6px 13px;min-height:34px;cursor:pointer;
}
#avp .pedit:hover:not(:disabled){border-color:var(--amber2);color:var(--amber2)}
#avp .pedit:disabled{opacity:.55;cursor:not-allowed}
#avp .prow{display:flex;justify-content:space-between;gap:14px;padding:7px 0;font-size:14px}
#avp .prow .pl{color:var(--mute);flex:0 0 auto}
#avp .prow .pv{color:var(--paper);text-align:right;min-width:0;overflow-wrap:anywhere}
#avp .pmask{font-variant-numeric:tabular-nums;letter-spacing:.08em}
#avp .pchip{margin-left:2px}
#avp .prow--edit{display:block;padding:8px 0}
#avp .prow--edit .pl{display:block;margin-bottom:5px;font-size:12.5px}
#avp .prow--edit input,#avp .prow--edit select,#avp .prow--edit textarea{
  width:100%;background:var(--panel2);border:1px solid var(--hair);border-radius:10px;
  color:var(--paper);font-size:15px;padding:11px 12px;min-height:44px;
}
#avp .prow--edit textarea{resize:vertical;min-height:60px}
#avp .prow--edit input:focus,#avp .prow--edit select:focus,#avp .prow--edit textarea:focus{
  outline:none;border-color:var(--amber);box-shadow:0 0 0 3px rgba(221,162,62,.14);
}
#avp .phint{display:block;color:var(--mute);font-size:11.5px;margin-top:3px}
#avp .phint--lock{margin:-2px 0 6px;text-align:right}
#avp .pact{display:flex;align-items:center;gap:12px;margin-top:12px;flex-wrap:wrap}
#avp .pcancel{background:none;border:0;color:var(--mute);cursor:pointer;min-height:44px;padding:8px 6px;font-size:13.5px}
#avp .pcancel:hover{color:var(--dim)}
#avp .pmsg{font-size:13px;color:var(--dim)}
#avp .pmsg.err{color:var(--ember-t)}

/* ████████████████████████████████████████████████████████████████████
   v0.21 — LOGIN REDESIGN (centered, σαν OS) · υπερισχύει του split-hero
   ████████████████████████████████████████████████████████████████████ */

/* Centered στήλη αντί για grid 2 στηλών. Το --avp-lg-bg (hero εικόνα) μπαίνει
   ως διακριτικό, βαθιά σκουρεμένο background — ατμόσφαιρα, όχι αφίσα. */
#avp.avp-need-login .avp-login{
  display:flex !important;grid-template-columns:none !important;
  align-items:flex-start;justify-content:center;
  min-height:100svh;padding:clamp(28px,7vh,72px) 20px;
  position:relative;overflow:hidden;background:var(--ink);
}
#avp.avp-need-login .avp-login::before{
  content:'';position:absolute;inset:0;
  background:var(--avp-lg-bg) center top/cover no-repeat;
  opacity:.22;filter:saturate(.85);
}
#avp.avp-need-login .avp-login::after{
  content:'';position:absolute;inset:0;
  background:radial-gradient(120% 80% at 50% 0%, rgba(12,17,18,.35), rgba(12,17,18,.92) 62%, var(--ink) 100%);
}
#avp .avp-lg-center{
  position:relative;z-index:2;
  width:100%;max-width:396px;
  display:flex;flex-direction:column;align-items:center;gap:22px;
}
#avp .avp-lg-wm{display:flex;justify-content:center;padding-top:4px}
#avp .avp-lg-wm .avw{height:30px}

/* Η κάρτα: γεμάτη, κεντραρισμένη, με απαλό border/elevation */
#avp.avp-need-login .avp-lg-card{
  width:100%;max-width:396px;margin:0;
  background:rgba(22,29,32,.72);
  -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
  border:1px solid var(--hair);border-radius:20px;
  padding:30px clamp(22px,5vw,32px) 26px;
  box-shadow:0 18px 44px rgba(0,0,0,.42);
}
#avp .avp-lg-card h2{text-align:center}
#avp .avp-lg-sub2{text-align:center}
#avp .avp-otp{justify-content:center}
#avp .avp-lg-row2{justify-content:center}

/* POWERED BY ALTERVAN */
#avp .avp-lg-powered{
  font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:700;
  font-size:12px;letter-spacing:.28em;color:var(--mute);
  text-transform:uppercase;text-align:center;
}
#avp .avp-lg-powered b{color:var(--amber2);font-weight:800}

#avp .avp-lg-priv{text-align:center;margin:0}

/* mobile: ίδια centered στήλη, λίγο πιο σφιχτό */
@media (max-width:1024px){
  #avp.avp-need-login .avp-login{padding:clamp(24px,5vh,44px) 16px}
  #avp .avp-lg-wm .avw{height:26px}
  #avp.avp-need-login .avp-lg-card{padding:26px 20px 22px}
}

/* v0.21 — dock labels: κεφαλαία μέσω CSS. Τώρα που ROOT lang='el', το uppercase
   στα ελληνικά ΑΦΑΙΡΕΙ τον τόνο σωστά («Ταξίδι»→«ΤΑΞΙΔΙ»)· τα αγγλικά («Trip»→
   «TRIP») επίσης. Έτσι ένα title-case key εξυπηρετεί ΚΑΙ tnav (πεζά) ΚΑΙ dock. */
#avp .tabs .avp-tl{text-transform:uppercase}

/* ==================== v0.22 · PRE-LAUNCH POLISH ==================== */
/* PREM-11 + PREM-03: στο desktop το tnav κουβαλά brand+avatar — το in-hero top bar
   ήταν ΔΙΠΛΟ branding και καθόταν πάνω στην πρώτη γραμμή του ονόματος. Φεύγει. */
@media(min-width:1025px){
  #avp .mission .top.avwrap{display:none}
  /* PREM-02: το 4-στηλο worlds grid ξεχείλωνε τη στήλη των 636px — auto-fill +
     min-width:0 ώστε οι κάρτες να συρρικνώνονται αντί να κόβονται στο viewport. */
  #avp .worlds-grid{grid-template-columns:repeat(auto-fill,minmax(146px,1fr))}
  #avp .worlds-grid>*{min-width:0}
  #avp .wn-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}
/* LANG-4: ρητός επιλογέας γλώσσας (Ελληνικά | English) — όχι τυφλό ⇄ */
#avp .avp-lang-seg{display:inline-flex;gap:4px;background:rgba(12,17,18,.55);border:1px solid var(--hair);border-radius:999px;padding:3px;flex:none}
#avp .avp-lang-opt{all:unset;cursor:pointer;font-family:"AVArchivo","AVRobotoCond",sans-serif;font-size:12px;font-weight:700;letter-spacing:.03em;color:var(--mute);padding:5px 12px;border-radius:999px;transition:color .15s}
#avp .avp-lang-opt:hover{color:var(--paper)}
#avp .avp-lang-opt.on{background:var(--amber);color:#1A1206}
#avp .avp-lang-opt:focus-visible{outline:2px solid var(--amber2);outline-offset:2px}
#avp .avp-lang-row{align-items:center}
/* PREM-04/NAV-05: το consent δεν κάθεται ποτέ πάνω σε CTA — στενό, κάτω αριστερά */
.cookieadmin_law_container{max-width:400px!important;left:14px!important;right:auto!important}
/* PREM-07: το login μήνυμα ακολουθεί το ενεργό βήμα */
#avp .avp-lg-msg{margin:12px 0 0}
#avp .avp-lg-msg:empty{display:none}
/* #11 countdown: σταθερά ψηφία παντού + ήρεμο breathing στα δευτερόλεπτα όταν T<7d */
#avp .cd .n{font-variant-numeric:tabular-nums}
@media (prefers-reduced-motion: no-preference){
  #avp.ph-hot .cd .u--s .n{animation:avp-cd-breathe 1s ease-in-out infinite alternate}
  @keyframes avp-cd-breathe{from{opacity:.85}to{opacity:1}}
}

/* ── v0.22.1 ───────────────────────────────────────────────────────── */
/* PREM-02 (ρίζα): τα κελιά χωρούσαν ακριβώς (4×150) αλλά ΕΣΩΤΕΡΙΚΟ nowrap
   περιεχόμενο (chips) ξεχείλωνε τα cells → scrollWidth 846/636. Κόβεται στο
   κελί — τα καρτελάκια δεν ορίζουν το πλάτος του κόσμου. */
#avp .world-node{overflow:hidden}
#avp .wn-chip{max-width:100%;overflow:hidden;text-overflow:ellipsis}
/* PREM-04: το consent ντύνεται στο brand — σκούρο, συμπαγές, όχι λευκή αφίσα */
.cookieadmin_law_container{background:#121B1D!important;color:#E8E6DF!important;border:1px solid #223035!important;border-radius:14px!important;box-shadow:0 14px 44px rgba(0,0,0,.55)!important;padding:14px 16px!important;font-size:12.5px!important;line-height:1.5!important}
.cookieadmin_law_container h1,.cookieadmin_law_container h2,.cookieadmin_law_container h3,.cookieadmin_law_container strong{color:#F5F1E8!important;font-size:13.5px!important}
.cookieadmin_law_container p{margin:6px 0 10px!important;color:#B9C1BA!important}
.cookieadmin_law_container button{border-radius:10px!important;padding:9px 13px!important;font-size:12.5px!important;font-weight:700!important;border:1px solid #2B3A40!important;background:#182428!important;color:#E8E6DF!important}
.cookieadmin_law_container button[class*="ccpt"],.cookieadmin_law_container button[id*="accept"],.cookieadmin_law_container button[class*="accept"]{background:#DDA23E!important;color:#1A1206!important;border:none!important}
/* login mode: χωρίς dock — το consent κάθεται στο κάτω άκρο, μακριά από την κάρτα */
body.avp-login-mode .cookieadmin_law_container{bottom:10px!important}

/* ── v0.22.2 ───────────────────────────────────────────────────────── */
/* V3 (verifier): το εσωτερικό του consent έμενε ΛΕΥΚΟ με άσπρο κείμενο —
   το σκούρο πρέπει να φτάνει σε ΚΑΘΕ εσωτερικό κουτί, όχι μόνο στο πλαίσιο. */
.cookieadmin_law_container div,.cookieadmin_law_container section,.cookieadmin_law_container span,.cookieadmin_law_container label{background-color:transparent!important;color:#CFD4CC!important}
.cookieadmin_law_container a{color:#E8B96A!important}
/* πιο συμπαγές στο κινητό — να μην κάθεται πάνω στο countdown */
@media(max-width:640px){
  .cookieadmin_law_container{max-width:calc(100vw - 24px)!important;left:12px!important;padding:12px 14px!important;font-size:12px!important}
  .cookieadmin_law_container p{margin:4px 0 8px!important}
  .cookieadmin_law_container button{padding:8px 10px!important;font-size:12px!important}
}
/* worlds: τα taglines δεν κόβονται στη μέση γράμματος — αναδιπλώνουν καθαρά */
#avp .world-node .wn-tag,#avp .world-node .wn-sub,#avp .world-node p{white-space:normal;overflow:hidden;text-overflow:ellipsis}

/* ── v0.23 ─────────────────────────────────────────────────────────── */
/* Τελευταία Νέα: με τον Trip Leader κρυμμένο, το nl-grid άφηνε μισή σελίδα
   κενή και τα άρθρα στοιβαγμένα. Full width + κάρτες ΔΙΠΛΑ-ΔΙΠΛΑ (αίτημα Τάση). */
@media(min-width:761px){
  #avp .nl-grid{grid-template-columns:1fr}
  #avp .nl-grid>div:first-child{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;align-items:start}
  #avp .nl-grid>div:first-child>.qa-h{grid-column:1/-1;margin-bottom:0!important}
}
/* pending payrow: ίδια γλώσσα με τα κανονικά */
#avp .payrow .pill7--owed{white-space:nowrap}

/* ==== v0.30 (v2 Phase 2 · 2B/2C/2D): Today engine + Road timeline + celebrations ==== */
#avp .today-h{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:800;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--amber2);margin:0 0 10px}
#avp .today-row{display:flex;flex-direction:column;gap:8px}
#avp .today-it{display:flex;align-items:center;gap:11px;background:var(--panel);border:1px solid var(--hair);border-radius:12px;padding:12px 14px;cursor:pointer;text-align:left;width:100%;color:var(--dim);font:inherit;transition:border-color .18s,transform .12s}
#avp .today-it:active{transform:scale(.985)}
#avp .today-it:hover{border-color:rgba(221,162,62,.45)}
#avp .today-it .ic{font-size:19px;flex:none}
#avp .today-it .tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
#avp .today-it .t{display:block;font-weight:700;color:var(--paper);font-size:13.5px;line-height:1.35}
#avp .today-it .s{display:block;font-size:12px;color:var(--mute);line-height:1.4}
#avp .today-it .go{flex:none;color:var(--amber2);font-weight:800}
#avp .today-it.is-hot{border-color:rgba(221,162,62,.55);background:linear-gradient(135deg,rgba(221,162,62,.10),var(--panel))}
#avp .road-tl{display:flex;gap:10px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:6px 2px 10px;scroll-snap-type:x proximity}
#avp .road-st{flex:0 0 148px;scroll-snap-align:start;background:var(--panel);border:1px solid var(--hair);border-radius:13px;padding:12px;position:relative}
#avp .road-st .when{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:800;font-size:10px;letter-spacing:.1em;color:var(--amber2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#avp .road-st .em{font-size:22px;margin:7px 0 4px}
#avp .road-st .t{font-weight:700;color:var(--paper);font-size:12.5px;line-height:1.3}
#avp .road-st .s{font-size:11px;color:var(--mute);margin-top:3px;line-height:1.4}
#avp .road-st.is-locked{opacity:.55}
#avp .road-st.is-locked .em{filter:grayscale(.7)}
#avp .road-st.is-now{border-color:var(--amber);box-shadow:0 0 0 1px var(--amber) inset,0 6px 22px -10px rgba(221,162,62,.5)}
#avp .road-st.is-done .when{color:var(--moss-t)}
#avp .road-st.is-tap{cursor:pointer}
#avp .road-st.is-tap:hover{border-color:rgba(221,162,62,.5)}
@keyframes avp-cele{0%{transform:scale(1)}35%{transform:scale(1.035)}100%{transform:scale(1)}}
#avp .cele{animation:avp-cele .5s ease}
#avp .pk-done{display:flex;align-items:center;gap:10px;background:linear-gradient(135deg,rgba(111,166,99,.16),var(--panel));border:1px solid rgba(111,166,99,.5);border-radius:12px;padding:12px 14px;margin-top:10px;color:var(--paper);font-weight:700;font-size:13.5px}
#avp .mile-toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(96px + env(safe-area-inset-bottom,0px));z-index:300;background:#161D20;border:1px solid rgba(221,162,62,.55);border-radius:999px;padding:10px 18px;color:var(--paper);font-weight:700;font-size:13.5px;box-shadow:0 12px 34px -10px rgba(0,0,0,.7);animation:avp-cele .5s ease}

/* v0.32.1: skip-link — ορατό μόνο σε focus (το theme CSS που το έκρυβε έγινε dequeue στο shell diet) */
.skip-link,.screen-reader-text,a.skip-link.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip-link:focus,.screen-reader-text:focus{position:fixed!important;top:10px;left:10px;width:auto;height:auto;clip:auto;z-index:500;background:#0C1112;color:#F5F1E8;border:1px solid #DDA23E;border-radius:8px;padding:10px 16px;font:600 13px system-ui;white-space:normal}

/* v0.41.0 — MOB-01/PQA-01: το CookieAdmin αφαιρείται από το portal server-side·
   αυτό εδώ είναι το δίχτυ για ό,τι εγχυθεί client-side (π.χ. από cache). Το
   άστυλο overlay του κατάπινε ΚΑΘΕ κλικ — γι αυτό «κανένα κουμπί δεν δουλεύει».
   (Τα skin rules πιο πάνω μένουν για το δημόσιο site, που φορτώνει το ίδιο CSS; όχι —
   αυτό το αρχείο ζει μόνο στο /my/, άρα απλώς αχρηστεύονται.) */
[class*="cookieadmin"],[id*="cookieadmin"]{display:none!important;pointer-events:none!important;visibility:hidden!important}

/* v0.46.0 · Identity v2: «ταξιδιάρα ψυχή» = μικρή γραμμή πάνω από το μεγάλο όνομα (κλητική) */
#avp .dash-head .dh-rest{display:block;font-size:.5em;line-height:1.3;letter-spacing:.04em;opacity:.9}

/* v0.35.0 · Trip Chat (AVP_CHAT — αδρανές μέχρι να ανάψει, SYNC §80-§82). Minimal στυλ σε γνωστά
   tokens, ώστε να μη φαίνεται σπασμένο την πρώτη φορά που ανάψει· ξεπερνιέται σε πέρασμα UI. */
#avp .avp-chat-soon{font-size:14px;color:var(--dim)}
#avp .chat-list{display:flex;flex-direction:column;gap:10px;max-height:60vh;overflow-y:auto;padding:2px 2px 4px;-webkit-overflow-scrolling:touch}
#avp .chat-msg{max-width:88%;padding:8px 12px;border-radius:14px;background:var(--panel2);border:1px solid var(--hair);align-self:flex-start}
#avp .chat-msg.mine{align-self:flex-end;background:rgba(221,162,62,.14);border-color:var(--amber2)}
#avp .chat-meta{display:flex;justify-content:space-between;gap:10px;font-size:11px;letter-spacing:.04em;color:var(--mute);margin-bottom:3px}
#avp .chat-meta b{color:var(--paper);font-weight:700}
#avp .chat-body{font-size:14px;line-height:1.4;color:var(--paper);word-wrap:break-word;overflow-wrap:anywhere}
#avp .chat-act{margin-top:4px;text-align:right}
#avp .linkbtn{background:none;border:0;padding:8px 2px;min-height:44px;font-size:12px;color:var(--mute);text-decoration:underline;cursor:pointer}
#avp .linkbtn:hover{color:var(--paper)}
#avp .chat-form{display:flex;gap:8px;align-items:flex-end;margin-top:12px;position:sticky;bottom:0;background:var(--panel);padding-top:8px}
#avp .chat-form textarea{flex:1 1 auto;resize:none;min-height:44px;max-height:120px;border-radius:14px;border:1px solid var(--hair);background:var(--panel2);color:var(--paper);font-family:"AVMulish","AVInter",sans-serif;font-size:14px;padding:11px 14px}
#avp .chat-form textarea:focus-visible{outline:2px solid var(--amber2);outline-offset:1px}
#avp .chat-form .btn{flex:0 0 auto;min-height:44px}
#avp .chat-quote{font-size:12px;color:var(--mute);border-left:2px solid var(--hair);padding:2px 0 2px 8px;margin-bottom:5px;overflow-wrap:anywhere}
#avp .chat-quote b{color:var(--dim)}
#avp .chat-replying{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--mute);background:var(--panel2);border:1px solid var(--hair);border-radius:10px;padding:6px 10px;margin-top:8px}
#avp .chat-replying .linkbtn{padding:0;min-height:auto;margin-left:auto}

/* v0.36.0 · Traveler Profile (SYNC §85/§86) — κάρτες συνταξιδιωτών, avatar upload, toggles ορατότητας */
#avp .mate-cards{display:flex;flex-direction:column;gap:10px;margin:12px 0}
#avp .mate-card{display:flex;gap:12px;align-items:flex-start;background:var(--panel);border:1px solid var(--hair);border-radius:14px;padding:12px 14px}
#avp .mate-ava{flex:0 0 auto;width:42px;height:42px;border-radius:50%;background:var(--panel2);border:2px solid var(--hair);display:flex;align-items:center;justify-content:center;font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:700;color:var(--amber2);font-size:14px}
#avp .mate-info{min-width:0;flex:1 1 auto}
#avp .mate-info b{display:block;color:var(--paper);font-size:14px;margin-bottom:2px}
#avp .mate-bio{margin:2px 0 6px;font-size:13px;color:var(--dim);line-height:1.5;overflow-wrap:anywhere}
#avp .mate-chips{display:flex;flex-wrap:wrap;gap:6px}
#avp .ava-row{display:flex;align-items:center;gap:14px;margin-bottom:10px}
#avp .ava-prev{flex:0 0 auto;width:56px;height:56px;border-radius:50%;background:var(--panel2);border:2px solid var(--hair);display:flex;align-items:center;justify-content:center;font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:700;color:var(--amber2);font-size:17px}
#avp .ava-row .btn{flex:1 1 auto}
#avp .ptoggle{display:flex;align-items:center;gap:12px;padding:10px 0;font-size:14px;color:var(--paper);border-top:1px solid var(--hair);cursor:pointer}
#avp .ptoggle:first-of-type{border-top:0}
#avp .ptoggle input[type="checkbox"]{width:20px;height:20px;flex:0 0 auto;accent-color:var(--amber);cursor:pointer}
#avp .ptoggle input:disabled{cursor:not-allowed;opacity:.5}
#avp .ptoggle span{flex:1 1 auto}

/* ═════════ v0.38.0 — Trip Chat: messenger UI ═════════
   Ξαναγράφτηκε μετά από κρίση ιδιοκτήτη («σαν 1998 chat»). Αρχές:
   · φυσαλίδες, όχι μπλοκ με γραμμή     · avatar+όνομα ΜΙΑ φορά ανά ομάδα
   · ώρα ΜΕΣΑ στη φυσαλίδα, διακριτική  · ενέργειες μόνο κατ' απαίτηση (⋯)
   · διαχωριστικά ημέρας                · χρώμα ανά άτομο μέσω --h (το δίνει το JS)
   ΟΧΙ scoped σε #avp: το dock ζει στο <body> (v0.37.1) — τα χρώματα είναι σταθερές. */
.chat-bubble,.chat-dock,.ch-menu{font-family:"AVMulish","AVInter",system-ui,sans-serif;color:#F5F1E8;
  -webkit-font-smoothing:antialiased}

/* ── Το κουμπί ── */
.chat-bubble{position:fixed;right:22px;bottom:22px;z-index:1200;width:58px;height:58px;border-radius:50%;
  border:0;background:linear-gradient(180deg,#E8BF6E,#DDA23E);color:#0C1112;font-size:25px;line-height:1;
  cursor:pointer;box-shadow:0 10px 30px rgba(0,0,0,.5),0 0 0 1px rgba(255,255,255,.08) inset;
  display:flex;align-items:center;justify-content:center;transition:transform .15s ease,box-shadow .15s ease}
.chat-bubble:hover{transform:translateY(-2px);box-shadow:0 14px 36px rgba(0,0,0,.55)}
.chat-bubble:active{transform:translateY(0)}
.chat-bubble:focus-visible{outline:2px solid #E8BF6E;outline-offset:3px}
.chat-badge{position:absolute;top:-3px;right:-3px;min-width:21px;height:21px;padding:0 6px;border-radius:11px;
  background:#E0573A;color:#fff;font:800 11.5px/21px system-ui,sans-serif;text-align:center;
  box-shadow:0 0 0 2.5px #0C1112}

/* ── Το πάνελ ── */
.chat-dock{position:fixed;right:22px;bottom:92px;z-index:1201;width:392px;max-width:calc(100vw - 32px);
  height:min(72vh,600px);display:flex;flex-direction:column;overflow:hidden;background:#161D20;
  border:1px solid #2A363B;border-radius:18px;box-shadow:0 24px 64px rgba(0,0,0,.6)}
.chat-dock[hidden]{display:none}
.chat-dock-h{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:13px 16px;flex:none;
  border-bottom:1px solid #2A363B;background:#1E282C}
.chat-dock-h b{font-size:14.5px;letter-spacing:.01em}
.chat-dock-x{background:none;border:0;color:#A6B0AA;font-size:24px;line-height:1;cursor:pointer;padding:0 2px}
.chat-dock-x:hover{color:#F5F1E8}

/* ── Η ροή ── */
.chat-dock .chat-list{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:14px 14px 6px;
  display:flex;flex-direction:column;gap:2px;scrollbar-width:thin;scrollbar-color:#2A363B transparent}
.chat-dock .chat-list::-webkit-scrollbar{width:8px}
.chat-dock .chat-list::-webkit-scrollbar-thumb{background:#2A363B;border-radius:4px}

.ch-day{display:flex;align-items:center;justify-content:center;margin:12px 0 8px}
.ch-day span{background:#1E282C;border:1px solid #2A363B;color:#A6B0AA;font-size:11px;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;padding:3px 11px;border-radius:999px}

.ch-grp{display:flex;gap:8px;align-items:flex-end;margin-top:10px}
.ch-grp.me{flex-direction:row-reverse}
.ch-ava{width:30px;height:30px;flex:none;border-radius:50%;display:grid;place-items:center;
  background:hsl(var(--h,40) 42% 32%);color:#fff;font:800 11px/1 system-ui,sans-serif;
  box-shadow:0 0 0 1px rgba(255,255,255,.08)}
.ch-col{display:flex;flex-direction:column;gap:3px;min-width:0;max-width:80%}
.ch-grp.me .ch-col{align-items:flex-end}
.ch-who{font-size:11.5px;font-weight:700;color:hsl(var(--h,40) 55% 68%);padding:0 4px;letter-spacing:.01em}

/* ── Η φυσαλίδα ── */
.ch-b{position:relative;background:#1E282C;border-radius:16px 16px 16px 5px;padding:8px 11px 7px;
  font-size:14px;line-height:1.45;word-break:break-word;max-width:100%}
.ch-grp.me .ch-b{background:linear-gradient(180deg,rgba(221,162,62,.20),rgba(221,162,62,.13));
  border-radius:16px 16px 5px 16px}
.ch-b.atme{box-shadow:inset 0 0 0 1.5px rgba(221,162,62,.55)}
.ch-b.big .ch-t{font-size:34px;line-height:1.2}
.ch-b.gone{background:transparent;border:1px dashed #2A363B;color:#A6B0AA;font-style:italic;font-size:12.5px;padding:6px 11px}
.ch-b.flash{animation:chflash .9s ease}
@keyframes chflash{0%,100%{box-shadow:none}30%{box-shadow:0 0 0 2px #DDA23E}}
.ch-b time{float:right;margin:6px 0 0 10px;font-size:10.5px;color:#A6B0AA;white-space:nowrap}
.ch-grp.me .ch-b time{color:rgba(245,241,232,.55)}
.ch-t{display:inline}

/* παράθεση απάντησης ΜΕΣΑ στη φυσαλίδα */
.ch-q{display:block;border-left:3px solid hsl(var(--h,40) 55% 55%);background:rgba(0,0,0,.22);
  border-radius:6px;padding:5px 9px;margin:0 0 6px;font-size:12.5px;color:#D6D1C4;cursor:pointer}
.ch-q b{display:block;font-size:11.5px;color:hsl(var(--h,40) 55% 68%);margin-bottom:1px}

/* ⋯ μόνο σε hover/focus — καμία μόνιμη μπάρα κουμπιών */
.ch-more{position:absolute;top:2px;right:4px;opacity:0;background:none;border:0;color:#A6B0AA;
  font-size:16px;line-height:1;cursor:pointer;padding:2px 4px;border-radius:6px;transition:opacity .12s}
.ch-b:hover .ch-more,.ch-more:focus-visible{opacity:1}
.ch-more:hover{background:rgba(255,255,255,.08);color:#F5F1E8}
@media (hover:none){ .ch-more{display:none} }   /* στο κινητό: παρατεταμένο πάτημα */

/* ── Μενού ενεργειών ── */
.ch-menu{position:fixed;z-index:1300;background:#1E282C;border:1px solid #2A363B;border-radius:12px;
  box-shadow:0 16px 40px rgba(0,0,0,.6);padding:5px;min-width:168px;display:flex;flex-direction:column}
.ch-menu button{background:none;border:0;color:#F5F1E8;text-align:left;font:inherit;font-size:13.5px;
  padding:9px 11px;border-radius:8px;cursor:pointer}
.ch-menu button:hover{background:rgba(255,255,255,.08)}

/* ── Κενή κατάσταση ── */
.ch-empty{margin:auto;text-align:center;color:#A6B0AA;padding:24px 18px}
.ch-empty-i{font-size:40px;margin-bottom:8px}
.ch-empty p{margin:2px 0;font-size:13px}
.ch-empty b{color:#F5F1E8;font-size:14.5px}

/* ── Λωρίδα απάντησης ── */
.chat-replying{flex:none;display:flex;align-items:center;gap:8px;padding:8px 12px;border-top:1px solid #2A363B;background:#12191C}
.chat-replying[hidden]{display:none}
.ch-rq{flex:1;min-width:0;border-left:3px solid #DDA23E;padding-left:9px;font-size:12.5px;color:#D6D1C4}
.ch-rq b{display:block;font-size:11px;color:#DDA23E}
.ch-rq span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-replying button{background:none;border:0;color:#A6B0AA;font-size:20px;cursor:pointer;padding:0 4px}

/* ── Σύνθεση ── */
.chat-form{flex:none;display:flex;gap:8px;align-items:flex-end;padding:10px 12px 12px;border-top:1px solid #2A363B;background:#12191C}
.chat-form textarea{flex:1;resize:none;max-height:104px;background:#1E282C;border:1px solid #2A363B;
  border-radius:20px;color:#F5F1E8;padding:10px 14px;font:inherit;font-size:14px;line-height:1.4}
.chat-form textarea:focus{outline:none;border-color:#DDA23E}
.chat-form textarea::placeholder{color:#7C8781}
.chat-ico{background:none;border:0;font-size:21px;cursor:pointer;padding:6px;border-radius:50%;line-height:1}
.chat-ico:hover{background:rgba(255,255,255,.08)}
.chat-send{width:40px;height:40px;flex:none;border-radius:50%;background:#DDA23E;color:#0C1112;border:0;
  font-size:0;cursor:pointer;display:grid;place-items:center}
.chat-send::before{content:"➤";font-size:16px;line-height:1;transform:translateX(1px)}
.chat-send:hover{background:#E8BF6E}

/* ── Mentions ── */
.chat-mention{background:rgba(91,151,201,.28);border-radius:5px;padding:0 4px;font-weight:700;color:#BBD8F0}
.chat-mention.me{background:rgba(221,162,62,.45);color:#F5F1E8}
.chat-mentions{flex:none;max-height:184px;overflow-y:auto;border-top:1px solid #2A363B;background:#12191C}
.chat-mentions[hidden]{display:none}
.chat-mrow{display:flex;align-items:center;gap:10px;width:100%;background:none;border:0;color:#F5F1E8;
  padding:9px 13px;cursor:pointer;font:inherit;font-size:13.5px;text-align:left}
.chat-mrow:hover{background:rgba(255,255,255,.08)}
.chat-mava{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;flex:none;
  background:hsl(var(--h,40) 42% 32%);color:#fff;font:800 10.5px/1 system-ui,sans-serif}

/* ── Emoji ── */
.chat-emoji{flex:none;display:flex;flex-wrap:wrap;gap:2px;padding:9px 11px;border-top:1px solid #2A363B;background:#12191C}
.chat-emoji[hidden]{display:none}
.chat-emoji-b{background:none;border:0;font-size:21px;cursor:pointer;padding:4px 6px;border-radius:8px;line-height:1}
.chat-emoji-b:hover{background:rgba(255,255,255,.1)}

@media (max-width:767px){
  .chat-bubble{right:16px;bottom:16px;width:54px;height:54px;font-size:23px}
  .chat-dock{right:0;left:0;bottom:0;width:auto;max-width:none;height:86vh;border-radius:18px 18px 0 0;border-bottom:0}
  .ch-col{max-width:86%}
}
@media (prefers-reduced-motion:reduce){
  .chat-bubble,.ch-more{transition:none}
  .ch-b.flash{animation:none}
}

/* ═════════ v0.39.0 — αντιδράσεις + «διαβάστηκε» ═════════
   ΟΧΙ scoped σε #avp: το dock προσαρτάται στο <body> (v0.37.1 — 887 κανόνες ήταν
   scoped και το bubble ήταν αόρατο). Οι τιμές χρωμάτων γραμμένες ολόκληρες. */
.ch-rx{display:flex;flex-wrap:wrap;gap:4px;margin:-2px 0 2px;padding:0 2px}
.ch-grp.me .ch-rx{justify-content:flex-end}
.ch-rxb{display:inline-flex;align-items:center;gap:3px;border:1px solid rgba(245,241,232,.16);
  background:rgba(245,241,232,.06);color:#f5f1e8;border-radius:999px;padding:1px 7px;
  font-size:12px;line-height:1.5;cursor:pointer;font-family:inherit;transition:background .12s,border-color .12s}
.ch-rxb:hover{background:rgba(245,241,232,.12)}
.ch-rxb.mine{background:rgba(221,162,62,.18);border-color:rgba(221,162,62,.55)}
.ch-rxb b{font-weight:700;font-size:11px;opacity:.85}
.ch-rxbar{display:flex;gap:2px;padding:5px 6px;border-bottom:1px solid rgba(245,241,232,.12)}
.ch-rxbar button{background:transparent;border:none;cursor:pointer;font-size:19px;line-height:1;
  padding:4px 5px;border-radius:8px;transition:background .12s}
.ch-rxbar button:hover{background:rgba(245,241,232,.12)}
.ch-rcpt{font-size:10.5px;letter-spacing:.02em;color:rgba(245,241,232,.42);margin:1px 3px 2px;text-align:right}
.ch-rcpt.seen{color:rgba(91,151,201,.95)}
@media (max-width:767px){ .ch-rxbar button{font-size:22px;padding:6px 7px} .ch-rxb{font-size:13px;padding:2px 8px} }
@media (prefers-reduced-motion:reduce){ .ch-rxb,.ch-rxbar button{transition:none} }


/* ═══ v0.39 — ΚΑΘΑΡΗ ΕΚΔΟΣΗ (ιδιοκτήτης 28/09: «καθαρό, μόνο με σωστά δεδομένα τώρα· μετά τα προσθέτουμε αλλά σωστά»).
   Ό,τι κρύβεται εδώ ΜΕΝΕΙ στον κώδικα· φεύγει η κλάση avp-lean από το #avp και ξαναφαίνεται. */
#avp.avp-lean #avp-sec-pack,          /* Η βαλίτσα σου */
#avp.avp-lean #avp-sec-road,          /* Ο δρόμος προς την αναχώρηση */
#avp.avp-lean #avp-sec-qa,            /* Γρήγορη πρόσβαση */
#avp.avp-lean #avp-sec-tiermini,      /* κάρτα tier/προνόμια (πόντοι: β' φάση) */
#avp.avp-lean #avp-sec-verseteaser,   /* teaser με χιλιόμετρα (πόντοι: β' φάση) */
#avp.avp-lean #avp-dm-card,           /* Αποστολή ημέρας */
#avp.avp-lean #avp-mem-stats,
#avp.avp-lean #avp-mem-list{display:none!important}
#avp .avp-soon{display:none}
#avp.avp-lean .avp-soon{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;margin:24px auto 0;max-width:420px;padding:32px 22px;border:1px dashed var(--hair);border-radius:16px;color:var(--dim)}
#avp .avp-soon__ic{font-size:30px}
#avp .avp-soon b{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-size:16px;color:var(--paper);letter-spacing:.02em}
#avp .avp-soon p{margin:0;font-size:13.5px;line-height:1.55}

/* ── Δεύτερο sticky μενού (ενότητες Ταξιδιού) ── */
#avp .avp-subnav{position:sticky;top:0;z-index:calc(var(--z-nav) - 1);display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:10px 16px;margin:0 -16px;background:rgba(12,17,18,.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--hair)}
#avp .avp-subnav::-webkit-scrollbar{display:none}
#avp .avp-subnav a{flex:0 0 auto;font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:700;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--dim);text-decoration:none;padding:8px 12px;border-radius:999px;border:1px solid var(--hair);background:var(--panel);white-space:nowrap;-webkit-tap-highlight-color:transparent}
#avp .avp-subnav a.on{background:var(--paper);color:var(--ink);border-color:var(--paper)}
#avp .avp-subnav a:focus-visible{outline:2px solid var(--amber2);outline-offset:2px}
#avp .view-trip section.blk{scroll-margin-top:58px}
@media (min-width:1025px){#avp .avp-subnav{top:64px;margin:0}}

/* ── Πρόγραμμα: ανοίγει ανά μέρα, όπως στο site (details/summary) ── */
#avp details.day-card{padding:0;overflow:hidden}
#avp details.day-card>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:1fr 22px;align-items:center;gap:10px;padding:14px}
#avp details.day-card>summary::-webkit-details-marker{display:none}
#avp details.day-card>summary .d-head{margin:0 0 3px}
#avp details.day-card>summary .d-title{margin:0}
#avp details.day-card>summary .d-x{width:22px;height:22px;color:var(--amber2);transition:transform .2s}
#avp details.day-card[open]>summary .d-x{transform:rotate(45deg)}
#avp details.day-card .d-body{padding:0 14px 14px}
#avp details.day-card.is-today{border-color:var(--amber2)}
#avp #avp-prog-list.is-open,#avp #avp-prog-list{max-height:none}
#avp #avp-prog-more{display:none}

/* ── Διαμονές ── */
#avp .stays{display:grid;gap:8px}
#avp .stay{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;align-items:baseline;background:var(--panel);border:1px solid var(--hair);border-radius:12px;padding:12px 14px}
#avp .stay .s-d{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--amber2);white-space:nowrap;font-variant-numeric:tabular-nums}
#avp .stay .s-c{font-size:13px;color:var(--dim)}
#avp .stay .s-h{grid-column:2;font-size:14.5px;color:var(--paper);font-weight:600}
#avp .stay .s-n{font-size:12px;color:var(--mute);margin-left:6px;font-weight:400}
#avp .stays-empty{font-size:13.5px;color:var(--dim);background:var(--panel);border:1px dashed var(--hair);border-radius:12px;padding:14px}
#avp .stay .s-h--na{color:var(--mute);font-weight:400;font-size:13px}
#avp.avp-lean #avp-rf-perm{display:none!important} /* v0.39.2 — «Για story ή group: ο μόνιμος σύνδεσμος» βγήκε (ιδιοκτήτης 28/09)· μένει ο προσωπικός κωδικός */
#avp.avp-lean #avp-sec-fire{display:none!important}
#avp.avp-lean #avp-ambient{display:none!important} /* v0.43 — chips καιρού/δύσης/σελήνης στο hero (ιδιοκτήτης 28/09: «κρύψε και τα chips καιρού») */ /* v0.39.3 — «Η φωτιά της αποστολής» (βραδινή ερώτηση, +15 km): πόντοι = β' φάση (ιδιοκτήτης 28/09) */


/* ═══ v0.40 — LOGIN ΩΣ ΣΕΛΙΔΑ-ΕΞΗΓΗΣΗ (ιδιοκτήτης 28/09): φόντο ολόκληρης οθόνης (αστροναύτης πάνω από φιόρδ), φόρμα OTP ψηλά,
   από κάτω τι είναι / τι έχει μέσα / tiers / φέρε φίλο. Το φόντο μένει καρφωμένο όσο κυλάς (fixed), το κείμενο κυλά από πάνω του. */
#avp.avp-need-login .avp-login::before{position:fixed;opacity:.62;filter:none;background-position:center 30%}
#avp.avp-need-login .avp-login::after{position:fixed;background:linear-gradient(180deg,rgba(12,17,18,.10) 0%,rgba(12,17,18,.42) 34%,rgba(12,17,18,.86) 70%,var(--ink) 100%)}
#avp.avp-need-login .avp-login{overflow:visible;padding-top:clamp(22px,6vh,56px)}
#avp .avp-lg-center{max-width:440px;gap:18px}
#avp .avp-lgx{width:100%;display:grid;gap:12px;color:var(--dim);font-size:14.5px;line-height:1.6}
#avp .avp-lgx-tag{margin:2px 0 0;text-align:center;font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:700;font-size:clamp(19px,5.2vw,23px);line-height:1.2;color:var(--paper);text-wrap:balance}
#avp .avp-lgx-what{margin:0;text-align:center;font-size:14.5px;color:var(--dim)}
#avp .avp-lgx-h{margin:14px 0 0;font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:700;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--amber2)}
#avp .avp-lgx-p{margin:0}
#avp .avp-lgx-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
#avp .avp-lgx-list li{display:grid;grid-template-columns:26px 1fr;gap:10px;align-items:start;background:rgba(22,29,32,.66);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--hair);border-radius:12px;padding:11px 13px}
#avp .avp-lgx-list .i{font-size:18px;line-height:1.2}
#avp .avp-lgx-tiers{display:grid;gap:8px}
#avp .avp-lgx-tiers .t{display:grid;grid-template-columns:30px 1fr auto;grid-template-areas:"em name n" "em pk pk";column-gap:10px;row-gap:2px;align-items:center;background:rgba(22,29,32,.66);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--hair);border-radius:12px;padding:10px 13px}
#avp .avp-lgx-tiers .em{grid-area:em;font-size:20px}
#avp .avp-lgx-tiers b{grid-area:name;font-family:"AVArchivo","AVRobotoCond",sans-serif;font-size:14px;color:var(--paper);letter-spacing:.02em}
#avp .avp-lgx-tiers .n{grid-area:n;font-size:12px;color:var(--amber2);font-variant-numeric:tabular-nums;white-space:nowrap}
#avp .avp-lgx-tiers .pk{grid-area:pk;font-size:13px;color:var(--dim)}
#avp .avp-lgx-cta{justify-self:center;margin-top:6px;font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:700;font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--amber2);text-decoration:none;border:1px solid var(--hair);border-radius:999px;padding:9px 16px;background:rgba(22,29,32,.66)}
#avp .avp-lgx-cta:focus-visible{outline:2px solid var(--amber2);outline-offset:2px}
@media (prefers-reduced-motion:no-preference){#avp.avp-need-login .avp-login{scroll-behavior:smooth}}
@media (max-width:1024px){#avp.avp-need-login .avp-login::before{background-position:center 20%}}

/* ═══ v0.41 — LOGIN ΜΕΣΑ ΣΤΟ SITE + DESKTOP 2 ΣΤΗΛΕΣ (ιδιοκτήτης 28/09: «για υπολογιστή γαμάτη και για κινητό εξίσου»). ═══ */
/* Το fixed μενού του site κάθεται πάνω από το φόντο: αφήνουμε χώρο ώστε το wordmark να μη χώνεται από κάτω· στο κινητό και για το tabbar. */
html.avp-guest #avp.avp-need-login .avp-login{padding-top:calc(84px + env(safe-area-inset-top,0px));padding-bottom:calc(40px + env(safe-area-inset-bottom,0px))}
@media (max-width:900px){html.avp-guest #avp.avp-need-login .avp-login{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}}
#avp.avp-need-login .avp-login::before,#avp.avp-need-login .avp-login::after{z-index:0}
@media (min-width:1025px){
  html.avp-guest #avp.avp-need-login .avp-login{padding:112px 40px 72px}
  #avp .avp-lg-center{max-width:1060px;display:grid;grid-template-columns:minmax(0,1fr) 400px;column-gap:64px;row-gap:26px;align-items:start;justify-items:stretch}
  #avp .avp-lg-wm{grid-column:1/-1;justify-content:flex-start;padding-top:0}
  #avp .avp-lg-wm .avw{height:34px}
  #avp .avp-lgx{grid-column:1;grid-row:2;gap:14px;font-size:15.5px}
  #avp.avp-need-login .avp-lg-card{grid-column:2;grid-row:2;max-width:400px;position:sticky;top:104px}
  #avp .avp-lg-powered,#avp .avp-lg-priv{grid-column:1/-1;text-align:left}
  #avp .avp-lgx-tag{text-align:left;font-size:clamp(30px,3vw,40px);max-width:16ch;margin-top:0}
  #avp .avp-lgx-what{text-align:left;max-width:58ch;font-size:16px}
  #avp .avp-lgx-h{margin-top:22px}
  #avp .avp-lgx-list{grid-template-columns:1fr 1fr}
  #avp .avp-lgx-list li{padding:14px 16px}
  #avp .avp-lgx-tiers{grid-template-columns:1fr 1fr}
  #avp .avp-lgx-cta{display:none}
  #avp.avp-need-login .avp-login::before{background-position:center 40%}
}
/* v0.41.1 — κινητό: το μενού του site είναι ~90px ψηλό και σκούρο, το wordmark χωνόταν από κάτω· ο σύνδεσμος «Δεν έχεις ταξίδι» χωρίς κεφαλαία για να μη σπάει σε «ΣΟΥ →» */
@media (max-width:900px){html.avp-guest #avp.avp-need-login .avp-login{padding-top:calc(118px + env(safe-area-inset-top,0px))}}
#avp .avp-lg-invite{text-transform:none;letter-spacing:0;font-size:13.5px;font-weight:600;line-height:1.35;text-align:left}

/* ═══ v0.42 — LOGIN ΕΠΙΣΚΕΠΤΗ: HERO + ΕΞΗΓΗΣΗ ΑΡΙΣΤΕΡΑ + ΑΝΟΙΧΤΟΧΡΩΜΗ ΚΑΡΤΑ ΔΕΞΙΑ (ιδιοκτήτης 28/09, §158/§162). Υπερισχύει των v0.21/v0.40/v0.41. ═══ */
/* Το φόντο ολόκληρης σελίδας (v0.40 ::before/::after, fixed) ΦΕΥΓΕΙ: η εικόνα ζει μόνο στο hero. */
#avp.avp-need-login .avp-login::before,#avp.avp-need-login .avp-login::after{display:none;content:none}
#avp.avp-need-login .avp-login{flex-direction:column;align-items:stretch;justify-content:flex-start;padding-left:0;padding-right:0;background:#10161A}
/* Το fixed #av-header του site μετρήθηκε 87px σε 390/768/1440 (28/09): το hero αρχίζει ακριβώς από κάτω του, χωρίς κενό. */
html.avp-guest #avp.avp-need-login .avp-login{padding-top:calc(87px + env(safe-area-inset-top,0px))}
/* ── Hero: 16:9 έως 780px στα 1440, ~540px στο κινητό (η εικόνα είναι 16:9, στο κινητό κόβεται με τον αστροναύτη στο κάδρο) ── */
#avp .avp-lgh{position:relative;width:100%;height:min(540px,138vw);overflow:hidden;background:#161D20}
@media (min-width:700px){#avp .avp-lgh{height:clamp(440px,54vw,780px)}}
#avp .avp-lgh-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:42% 40%;display:block}
@media (min-width:700px){#avp .avp-lgh-img{object-position:50% 40%}}
#avp .avp-lgh-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,22,26,.32) 0%,rgba(16,22,26,.05) 35%,rgba(16,22,26,.58) 70%,#10161A 100%)}
#avp .avp-lgh-in{position:absolute;left:0;right:0;bottom:0;padding:0 clamp(16px,3.9vw,56px) clamp(28px,4.4vw,64px);display:flex;flex-direction:column;gap:clamp(10px,1.2vw,18px)}
#avp .avp-lgh-eb{margin:0;display:flex;align-items:center;gap:10px;font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:600;font-size:clamp(12px,.9vw,13px);letter-spacing:.22em;text-transform:uppercase;color:var(--amber2)}
#avp .avp-lgh-eb .ln{display:block;width:clamp(30px,3vw,44px);height:2px;background:var(--amber)}
#avp .avp-lgh-h1{margin:0;font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:800;font-size:clamp(60px,11.7vw,168px);line-height:.9;letter-spacing:.04em;text-transform:uppercase;color:var(--paper);text-shadow:0 8px 40px rgba(0,0,0,.45)}
#avp .avp-lgh-sub{margin:0;font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:500;font-size:clamp(20px,2.1vw,30px);line-height:1.18;color:var(--paper);max-width:760px;text-wrap:balance}
/* ── Κάτω από το hero: μία στήλη στο κινητό (φόρμα πρώτα), grid 7+4 από 1025px ── */
#avp .avp-lg-center{max-width:1328px;width:100%;padding:24px 16px 0;gap:36px;align-items:stretch}
#avp .avp-lg-side{display:flex;flex-direction:column;gap:14px;width:100%}
#avp.avp-need-login .avp-lg-card{position:static;max-width:none;width:100%;background:var(--paper);color:#161D20;border:0;border-radius:16px;padding:26px 22px 22px;box-shadow:0 24px 60px rgba(0,0,0,.45);-webkit-backdrop-filter:none;backdrop-filter:none}
#avp.avp-need-login .avp-lg-card h2{text-align:left;text-transform:none;letter-spacing:.02em;font-size:clamp(26px,2.1vw,30px);line-height:1.1;color:#161D20}
#avp.avp-need-login .avp-lg-card .avp-lg-sub2{text-align:left;color:#4A5257;font-size:15px;margin:6px 0 18px}
#avp.avp-need-login .avp-lg-card .avp-lg-lbl{color:#4A5257;font-weight:700;letter-spacing:.14em}
#avp.avp-need-login .avp-lg-card .avp-lg-in input{color:#161D20;background:#FFFFFF;border:1px solid #C9C2B4;border-radius:10px;padding:15px 44px 15px 16px;font-size:16px}
#avp.avp-need-login .avp-lg-card .avp-lg-in input::placeholder{color:#6F7A80}
#avp.avp-need-login .avp-lg-card .avp-lg-in input:focus{border-color:var(--amber);box-shadow:0 0 0 3px rgba(221,162,62,.28)}
#avp.avp-need-login .avp-lg-card .avp-lg-in .ic{color:#6F7A80}
#avp.avp-need-login .avp-lg-card .avp-lg-primary{border-radius:999px;font-size:15px;letter-spacing:.14em;padding:16px}
#avp .avp-lg-hint{margin:14px 0 0;font-size:13px;line-height:1.45;color:#4A5257}
#avp.avp-need-login .avp-lg-card .avp-otp{justify-content:flex-start}
#avp.avp-need-login .avp-lg-card .avp-otp-d{color:#161D20;background:#FFFFFF;border-color:#C9C2B4}
#avp.avp-need-login .avp-lg-card .avp-otp-d:focus{border-color:var(--amber);box-shadow:0 0 0 3px rgba(221,162,62,.28)}
#avp.avp-need-login .avp-lg-card .avp-lg-row2{justify-content:flex-start}
#avp.avp-need-login .avp-lg-card .avp-lg-ghost{color:#7A5210;font-weight:600}
#avp.avp-need-login .avp-lg-card .avp-lg-ghost:disabled{color:#6F7A80}
#avp.avp-need-login .avp-lg-card .avp-lg-ghost:not(:disabled):hover{color:#161D20}
#avp.avp-need-login .avp-lg-card .avp-lg-msg{text-align:left}
#avp.avp-need-login .avp-lg-card .avp-lg-msg.ok{color:#2F6B2A}
#avp.avp-need-login .avp-lg-card .avp-lg-msg.err{color:#A8362A}
#avp.avp-need-login .avp-lg-card #avp-lg-masked{color:#161D20}
/* «Δεν έχεις ακόμα ταξίδι;» = δικό του πλαίσιο κάτω από την κάρτα, όχι κουμπί μέσα της */
#avp.avp-need-login .avp-lg-invite{margin:0;justify-content:flex-start;padding:16px 18px;border:1px solid var(--hair);border-radius:14px;color:var(--paper);font-family:"AVMulish","AVInter",sans-serif;font-size:15px;font-weight:400;text-transform:none;letter-spacing:0;line-height:1.4}
#avp.avp-need-login .avp-lg-invite b{color:var(--amber2);font-weight:700}
#avp.avp-need-login .avp-lg-invite:hover{border-color:var(--amber2)}
/* ── Εξήγηση (σκούρο) ── */
#avp .avp-lgx{gap:0;color:var(--paper);font-size:15.5px}
#avp .avp-lgx-tag{display:none}
#avp .avp-lgx-what{margin:0;text-align:left;font-size:clamp(17px,1.5vw,21px);line-height:1.5;color:var(--paper);max-width:62ch}
#avp .avp-lgx-h{margin:clamp(30px,3.5vw,52px) 0 14px;font-size:clamp(13px,1.05vw,15px);letter-spacing:.18em;color:var(--amber2)}
#avp .avp-lgx-h+.avp-lgx-p{margin:-8px 0 16px;color:var(--mute);font-size:16px}
#avp .avp-lgx-list{gap:10px}
#avp .avp-lgx-list li{grid-template-columns:22px 1fr;gap:12px;padding:14px;background:var(--panel);border:1px solid var(--hair);border-radius:12px;-webkit-backdrop-filter:none;backdrop-filter:none;font-size:15px;line-height:1.45;color:var(--paper)}
#avp .avp-lgx-list .i{display:flex;color:var(--amber);margin-top:1px}
#avp .avp-lgx-list li.soon{border-style:dashed;color:var(--mute)}
#avp .avp-lgx-list li.soon .i{color:var(--mute)}
#avp .avp-lgx-tiers{grid-template-columns:1fr 1fr;gap:10px}
#avp .avp-lgx-tiers .t{display:flex;flex-direction:column;gap:8px;align-items:flex-start;padding:16px 14px;background:var(--panel);border:1px solid var(--hair);border-radius:12px;-webkit-backdrop-filter:none;backdrop-filter:none}
#avp .avp-lgx-tiers .t.top{background:#1E1A12;border-color:var(--amber)}
#avp .avp-lgx-tiers .num{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:800;font-size:30px;line-height:1;color:var(--amber2);font-variant-numeric:tabular-nums}
#avp .avp-lgx-tiers b{font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:700;font-size:18px;letter-spacing:.02em;color:var(--paper)}
#avp .avp-lgx-tiers .n{font-size:13px;color:var(--amber2);white-space:normal}
#avp .avp-lgx-tiers .pk{font-size:13.5px;line-height:1.4;color:var(--mute)}
#avp .avp-lgx-ref{margin-top:clamp(30px,3.5vw,52px);padding:20px 18px;border:1px solid var(--amber);border-radius:14px;background:var(--panel);display:flex;flex-direction:column;gap:10px}
#avp .avp-lgx-refh{margin:0;font-family:"AVArchivo","AVRobotoCond",sans-serif;font-weight:700;font-size:clamp(24px,1.8vw,26px);letter-spacing:.02em;color:var(--paper)}
#avp .avp-lgx-ref .avp-lgx-p{margin:0;font-size:15px;line-height:1.5;color:var(--paper)}
#avp .avp-lgx-cta{margin-top:22px}
#avp .avp-lg-powered,#avp .avp-lg-priv{text-align:center}
@media (min-width:700px){
  #avp .avp-lg-center{padding:36px clamp(24px,3.9vw,56px) 0}
  #avp .avp-lgx-list{grid-template-columns:1fr 1fr;gap:14px}
  #avp .avp-lgx-list li{padding:18px;font-size:16px;gap:14px}
  #avp .avp-lgx-tiers{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
  #avp .avp-lgx-tiers .t{padding:20px 18px;gap:10px}
  #avp .avp-lgx-tiers .num{font-size:34px}
  #avp .avp-lgx-tiers b{font-size:20px}
  #avp .avp-lgx-ref{padding:26px 28px}
  #avp.avp-need-login .avp-lg-card{padding:32px 28px 26px}
}
@media (min-width:1025px){
  html.avp-guest #avp.avp-need-login .avp-login{padding:calc(87px + env(safe-area-inset-top,0px)) 0 72px}
  #avp .avp-lg-center{max-width:1328px;padding:72px clamp(24px,3.9vw,56px) 0;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);column-gap:clamp(48px,7.5vw,116px);row-gap:40px;align-items:start}
  #avp .avp-lgx{grid-column:1;grid-row:1}
  #avp .avp-lg-side{grid-column:2;grid-row:1;position:sticky;top:104px}
  #avp .avp-lg-powered,#avp .avp-lg-priv{grid-column:1/-1;text-align:left}
  #avp .avp-lgx-cta{display:none}
}

/* ═══ v0.42.1 — ΚΕΝΤΡΟ (ιδιοκτήτης 28/09, οθόνη 2000px: «κάπως όχι οκ, βάλτα όλα κέντρο»): container κεντραρισμένος (ήταν flex child χωρίς margin auto,
   κολλούσε αριστερά σε πλατιές οθόνες), hero κείμενο στο κέντρο, ALTERVERSE ελάχιστο 46px (στα 390 ξεχείλιζε: 442 > 358px). ═══ */
#avp .avp-lg-center{margin:0 auto;max-width:1200px}
#avp .avp-lgh-in{align-items:center;text-align:center}
#avp .avp-lgh-eb{justify-content:center}
#avp .avp-lgh-eb .ln{display:none}
#avp .avp-lgh-sub{max-width:34ch}
#avp .avp-lgh-h1{font-size:clamp(46px,11.7vw,168px)}
#avp.avp-need-login .avp-lg-invite b{white-space:nowrap}
@media (min-width:1025px){
  #avp .avp-lg-center{max-width:1200px;grid-template-columns:minmax(0,7fr) minmax(0,4fr);column-gap:clamp(48px,6.5vw,96px)}
}
