/* GUSTAV OS V3 — Doodle RPG redesign. Preserves original V3 data model. */
:root{--navy:#122840;--ink:#142c34;--cream:#fff9eb;--paper:#fffdf7;--deep:#0f2439;--line:#e8dec8;--muted:#647b81}
html,body{background:#112b46;color:var(--ink)}
body{font-size:15px}
.app-shell{background:#112b46}
.sidebar{width:246px;background:#112841;border-right:2px solid #34516a;padding:29px 15px;gap:20px}
.brand{font-size:22px}
.brand small{font-size:9px;letter-spacing:1.15px}
.side-kicker{color:#85bedf;font-size:11px;letter-spacing:2px}
.navlink{font-size:15px;font-weight:800;min-height:47px;gap:14px;padding:13px 17px;border-radius:13px;color:#f0f5ee}
.navlink .ico{font-size:21px;width:22px;color:#9ad5e8}
.navlink.active{background:#f8eedd;color:#15304a;box-shadow:4px 4px 0 #081b2d;font-weight:900}
.navlink.active .ico{color:#15304a}
.sidebar .sticker{background:#213b54;border-color:#c99a59;box-shadow:4px 4px 0 #081b2d;border-radius:16px;font-size:19px}
.main{background:#112b46;min-width:0}
.topbar{background:#fff8e9;border-bottom:3px solid #112840;color:#385266;height:69px;box-shadow:0 3px 0 #7895a833}
.page{max-width:1400px;padding:25px 25px 60px;background:transparent;color:#142f34;position:relative}
.page:before{content:'✧         ✳                          ↗';position:absolute;top:12px;right:33px;font-size:30px;color:#a9d0da16;pointer-events:none;z-index:0}
.page>*{position:relative;z-index:1}
.h1{color:#ffebbb;font-size:clamp(30px,3.7vw,48px);font-weight:800;letter-spacing:-1.6px;text-shadow:2px 2px 0 #132033}
.eyebrow{color:#d9aa64;font-size:11px;letter-spacing:2px;font-weight:900}
.subtitle{color:#d2e1e9;font-size:15px;font-weight:500;margin:0 0 24px}
.card,.panel{background:#fffaf0;border:2px solid #263c42;border-radius:20px;padding:21px;box-shadow:5px 6px 0 #091c2e55;overflow:hidden}
.section-title{font-size:21px;letter-spacing:-.4px;font-weight:800;color:#1a363a;margin-bottom:16px}
.stat{border:2px solid #1d3b3e;box-shadow:3px 4px 0 #071c2c50;border-radius:17px;padding:20px 18px}
.stat small{font-size:12px;color:#3c6163;text-transform:uppercase;letter-spacing:.6px}
.stat strong{font-size:clamp(25px,2.4vw,36px);color:#142e31}
.stat.green{background:#dff1df}.stat.orange{background:#ffebc5}.stat.purple{background:#e6d9f5}.stat.blue{background:#dce9f6}
.btn{font-size:13px;border-radius:12px;padding:12px 15px;border:2px solid #21383e;font-weight:900;box-shadow:2px 3px 0 #12283d22}
.btn.sm{font-size:12px;padding:8px 11px}
.btn.green{background:#228869}.btn.orange{background:#c7843f}.btn.secondary{background:#fffef5;border-color:#aebdb5;color:#183c43}
.btn:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.045)}
.btn:active:not(:disabled){transform:translateY(1px);box-shadow:none}
.tag{font-size:10px;padding:7px 10px;border:1px solid #b9d1c4;color:#267960;font-weight:900;letter-spacing:.2px}
.tag.missed,.tag.rejected{background:#ffe1dd;color:#9d3442;border-color:#e7a9ae}
.tag.protected,.tag.rest{background:#e1eee6}
.tag.upcoming{background:#ecf1e6}
.tag.exempt{background:#dee9fb}
/* Original V2-inspired hero: real portrait, yellow graphic card, oversized type. */
.welcome-v3{height:306px;position:relative;overflow:hidden;border-radius:25px;background:#ffdfa7;border:3px solid #203941;box-shadow:6px 7px 0 #071a2e;margin-bottom:24px;display:flex;align-items:center;padding:30px 37px;isolation:isolate}
.welcome-v3:before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 70% 35%,#fff5ca 0,transparent 48%),repeating-linear-gradient(147deg,transparent 0 42px,#edbf7730 43px 44px);z-index:-1}
.welcome-copy{position:relative;z-index:3;width:66%;align-self:center}
.welcome-eyebrow{font-size:12px;font-weight:900;letter-spacing:2px;color:#705834}
.welcome-v3 h1{color:#112b27;font-family:'Space Grotesk',sans-serif;font-weight:800;font-size:clamp(44px,5vw,77px);line-height:.99;letter-spacing:-4.1px;margin:14px 0 11px}
.welcome-v3 h1 span{color:#bd6d38}
.hand-note{font-family:'Comic Sans MS','Trebuchet MS',cursive;font-style:italic;font-size:20px;font-weight:800;letter-spacing:.2px;color:#665337}
.welcome-sticker{display:inline-block;background:#fff9df;border:2px solid #2e4143;border-radius:99px;box-shadow:3px 4px 0 #1b394433;padding:9px 16px;margin-top:14px;color:#1b4d4b;font-size:11px;font-weight:900;letter-spacing:.7px;transform:rotate(-2deg)}
.welcome-portrait{position:absolute;right:-12px;bottom:-25px;height:124%;width:auto;max-width:none;object-fit:contain;object-position:bottom right;filter:drop-shadow(-10px 8px 0 #a36e4833);z-index:2}
.doodle-decor{position:absolute;font-size:66px;z-index:1;color:#b6753266;font-family:'Comic Sans MS',cursive}.doodle-a{top:10px;right:25%;transform:rotate(-23deg)}.doodle-b{bottom:10px;left:54%;transform:rotate(22deg)}
.notice-banner{border:2px dashed #e2b770;font-weight:800;font-size:13px;background:#fff0d0;box-shadow:3px 4px 0 #0b213a40}
.stat-ribbon{margin-bottom:23px!important}
.home-grid{grid-template-columns:minmax(0,1.45fr) minmax(340px,.92fr)!important;gap:21px}
.doodle-sheet{background:#fffaf0;position:relative}
.doodle-sheet>.row{margin-bottom:15px}
.doodle-sheet:after{content:'✎';position:absolute;top:7px;right:31%;font-size:26px;transform:rotate(25deg);color:#cf9a6a55;pointer-events:none}
.activity-timeline{display:flex;flex-direction:column;gap:11px}
.timeline-line{display:grid;grid-template-columns:92px minmax(0,1fr);gap:12px;align-items:center}
.timeline-time{font-size:13px;font-weight:900;color:#526f76;text-align:right;white-space:nowrap}
.activity.activity-doodle{display:flex;align-items:center;gap:14px;padding:17px 15px;border:2px solid #23423c;border-left:8px solid var(--accent);background:var(--bg);border-radius:17px;box-shadow:2px 3px 0 #102c3126;min-height:81px;position:relative}
.activity-doodle.tone-mint{--bg:#e2f3e7;--accent:#438f72}.activity-doodle.tone-sea{--bg:#dff0ed;--accent:#4c9c9f}.activity-doodle.tone-gold{--bg:#fff0b9;--accent:#ab831a}.activity-doodle.tone-peach{--bg:#ffeddf;--accent:#e99a65}.activity-doodle.tone-rose{--bg:#fbe0e9;--accent:#c2507d}.activity-doodle.tone-sage{--bg:#eaf0e7;--accent:#93a89c}.activity-doodle.tone-lavender{--bg:#eee3f7;--accent:#9e75bd}.activity-doodle.tone-sky{--bg:#e3edf9;--accent:#5e96c7}
.activity-doodle .activity-icon{font-size:28px;flex:0 0 32px;line-height:1}
.activity-doodle .activity-main{flex:1;min-width:100px}
.activity-doodle .activity-main strong{font-size:16px;color:#153336;font-weight:900;line-height:1.28;letter-spacing:-.2px}
.activity-doodle .activity-main small{font-size:12px;color:#506f70;font-weight:600;margin-top:5px}
.activity-doodle .activity-range{font-size:12px;font-weight:900;color:#435f64;white-space:nowrap}
.activity-doodle .act-right{display:flex;flex-direction:column;align-items:flex-end;gap:2px;min-width:104px}
.activity-doodle .act-actions{margin:0}
.activity-doodle .act-actions .btn{border-radius:11px;font-size:11px;padding:7px 9px}
.activity-doodle.is-now{outline:2px solid #c47d3f;outline-offset:1px}
.activity-doodle.excluded{opacity:.8;filter:saturate(.68)}
.now-sticker{font-size:10px;background:#fffcf4;border:2px solid #29433f;border-radius:40px;padding:4px 9px;font-weight:900;white-space:nowrap}
.guardian-star{color:#926426;font-size:15px}
.focus-snapshot-v3{background:#20473d;color:#fff8e8;border:3px solid #091e27;box-shadow:6px 6px 0 #081e30;border-radius:22px;padding:26px;position:relative;overflow:hidden}
.focus-snapshot-v3:before{content:'✳';position:absolute;right:9px;top:-43px;font-size:170px;color:#d8efcd14;transform:rotate(-11deg)}
.focus-snapshot-v3>.eyebrow{color:#c8e8d4}
.focus-snapshot-v3 h2{font:800 clamp(22px,2.8vw,35px) 'Space Grotesk',sans-serif;color:#fff6e3;line-height:1.16;margin:14px 0}
.focus-snapshot-v3 p{font-size:15px;color:#d0e9dd}
.focus-snapshot-v3 .hand-note{display:block;font-size:16px;color:#e4cc8a;margin-top:14px}
.btn.hero-action{background:#f5c876;color:#17312b;border-color:#112d35;box-shadow:4px 4px 0 #091c28;font-size:13px;margin-top:10px}
.hero-rpg-card{background:#f7eaca}.hero-rpg-card .section-title{font-size:20px;margin-top:6px}.hero-rpg-card .mini-pixel{min-height:104px;width:112px}.mini-pixel img{height:107px!important;max-width:100px}
.boss-snapshot{background:#ebe4f4}.insight-snapshot{background:#e9f1e7}
.love-note{background:#f8dce8;border:2px solid #bd5377;border-radius:15px;padding:18px;display:flex;align-items:center;gap:9px;font-size:17px;box-shadow:4px 4px 0 #091d2e}.love-note small{display:block;font-size:12px;color:#6f566a;margin-left:auto;font-weight:700}
/* Shared doodle polish across the rest of the V3 zones */
.page>.grid>.stack>.card:nth-child(odd){border-radius:21px 18px 23px 19px}.quest{border:2px solid #d5d6bd;background:#fff4db;font-size:14px;padding:16px;border-radius:14px}.quest h3{font-size:16px}.quest p{font-size:13px}.badge-tile{border:2px solid #203c3f;border-radius:15px;box-shadow:3px 3px #1532482c}.event-row{border:2px solid #e1cfaa;border-left:7px solid #b9883c}.event-row.full{border-left-color:#438f6b}.cal-day{border:2px solid #e5d9c6;background:#fff9eb;border-radius:12px}.cal-day.has-event{background:#ffe6b8}.field label{font-size:13px;color:#3a5658}.field input,.field select,.field textarea{border:2px solid #d5d5c4;font-size:15px;border-radius:12px}.note{font-size:13px}.panel p,.card p{line-height:1.58}.tag{max-width:100%}
/* Full immersive original Focus Mode restoration with its own dashboard page */
.focus-arena{position:relative;overflow:hidden;background:#183e39;color:#fff8e8;border-radius:26px;border:3px solid #f4d18b;padding:28px 34px 22px;box-shadow:8px 9px 0 #06192b;isolation:isolate}
.focus-arena:before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 38% 44%,#376c555a 0,transparent 52%),radial-gradient(circle at 94% 2%,#af885522,transparent 40%);z-index:-1}
.focus-floating{position:absolute;color:#f6d17e44;font-size:70px;pointer-events:none}.focus-spark-one{right:20px;top:10px;transform:rotate(23deg)}.focus-spark-two{left:20px;bottom:20px;transform:rotate(-18deg)}
.focus-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.focus-eyebrow{color:#c2ecd2;font-size:12px;font-weight:900;letter-spacing:2px}.focus-mission-sticker{padding:8px 13px;border:2px solid #f0d496;color:#f6ddac;border-radius:99px;font-size:11px;font-weight:900;background:#18352c}
.focus-arena h2{font-size:clamp(30px,4.3vw,51px);letter-spacing:-1.8px;line-height:1.1;margin:20px 0 7px;font-family:'Space Grotesk',sans-serif}.focus-intro{color:#bfe0d1;font-size:15px}
.focus-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(310px,.9fr);gap:40px;align-items:center;padding:10px 6px 23px}
.focus-timer-side{display:flex;flex-direction:column;align-items:center;gap:13px}
.focus-ring{--ring-progress:0%;width:min(365px,100%);aspect-ratio:1;border-radius:50%;background:conic-gradient(#f2c476 var(--ring-progress),#486c61 var(--ring-progress));padding:16px;box-shadow:inset 0 0 0 4px #102d29,6px 8px 0 #0d2428;display:grid;place-items:center;transition:background .15s}
.focus-ring-inner{background:#fff7e6;border:5px solid #102e2a;border-radius:50%;height:100%;width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:10px;color:#102e2d}
.ring-eyebrow{color:#638276;font-size:11px;letter-spacing:2px;font-weight:900}
#focus-countdown{font:800 clamp(30px,4vw,51px) 'Space Grotesk',sans-serif;letter-spacing:-1.8px;color:#142c2e;margin:13px 0 8px;font-variant-numeric:tabular-nums}
#focus-live-status{font-size:10px;line-height:1.5;color:#4c796c;font-weight:900;letter-spacing:1px}
.focus-ring-caption{color:#d8ebd6;font-size:13px;font-weight:700;text-align:center}
.focus-control-side{background:#fff9e9;border:3px solid #122b2a;color:#153635;border-radius:19px;padding:26px;box-shadow:6px 7px 0 #0d2823}
.focus-label{font-size:11px;letter-spacing:1.8px;font-weight:900;color:#8b7c58}.focus-control-side h3{font-size:clamp(23px,2.9vw,32px);letter-spacing:-1px;line-height:1.1;margin:9px 0}.focus-control-side>p{font-weight:700;color:#6d7972}
.focus-select-wrap{display:flex;flex-direction:column;gap:7px;margin:17px 0}.focus-select-wrap label{font-size:12px;font-weight:900}.focus-select-wrap select{max-width:100%;width:100%;padding:13px 10px;font-size:14px;font-weight:700;background:#fff;border:2px solid #a1b4a4;border-radius:12px;color:#183b34}
.focus-control-side .btn{width:100%;font-size:14px;border-radius:13px;padding:15px}
.focus-control-side .focus-primary{background:#256f55;color:#fffaf0;border:2px solid #112e2a;box-shadow:3px 4px 0 #0d332a3d}.focus-control-side .focus-secondary{background:#f4e5c7;color:#184037;margin-top:12px;border:2px solid #b5a589}
.focus-hint{font-size:12px;color:#7b786b;line-height:1.55}
.focus-divider{height:2px;border-top:2px dashed #d0c5ad;margin:19px 0}
.focus-sound{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:800;cursor:pointer;line-height:1.4}.focus-sound input{width:17px;height:17px}
.focus-arena .focus-test{padding:9px!important;font-size:11px!important;margin-top:9px!important}
.focus-bottom{border-top:2px dashed #5a8674;padding-top:19px;display:flex;justify-content:space-between;gap:15px;color:#dbebd9;font-size:12px;font-weight:700;letter-spacing:.4px}
.focus-guide{margin-top:22px;background:#fff1cd}.focus-guide p{font-size:14px;margin:7px 0}
.foot{background:#112b46;border-top:1px solid #4c6474;color:#9fb6c4}.foot span{color:#8ea5b4}
@media(max-width:1170px){.home-grid{grid-template-columns:1fr!important}.welcome-portrait{height:121%}.activity-doodle .activity-range{font-size:11px}}
@media(max-width:900px){.sidebar{width:210px}.page{padding:21px 15px 55px}.welcome-v3{height:290px}.welcome-v3 h1{font-size:clamp(40px,5.5vw,60px)}.activity-doodle{flex-wrap:wrap}.focus-layout{gap:20px}.focus-arena{padding:22px}}
@media(max-width:720px){
 .sidebar{width:250px;left:-280px}.main{background:#112b46}.topbar{height:62px;padding:0 13px}.page{padding:15px 12px 97px}.h1{font-size:30px}.subtitle{font-size:13px}.card,.panel{padding:16px}
 .welcome-v3{height:245px;padding:17px 18px;border-width:2px;border-radius:19px;margin-bottom:21px;box-shadow:4px 5px 0 #081e30}
 .welcome-copy{width:70%}.welcome-eyebrow{font-size:9px;letter-spacing:1.1px}.welcome-v3 h1{font-size:clamp(32px,8vw,50px);letter-spacing:-2.6px;line-height:1.03;margin:10px 0}
 .welcome-v3 .hand-note{font-size:13px;max-width:235px}.welcome-sticker{font-size:8px;padding:6px 9px;margin-top:9px}.welcome-portrait{height:94%;right:-75px;bottom:-5px}.doodle-a{display:none}.doodle-b{left:56%;bottom:5px;font-size:38px}
 .grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.stat{padding:15px 13px}.stat strong{font-size:26px}.stat small{font-size:10px}.home-grid{grid-template-columns:1fr!important}
 .timeline-line{grid-template-columns:57px minmax(0,1fr);gap:7px}.timeline-time{font-size:10px}.activity.activity-doodle{padding:11px 9px;gap:7px;border-left-width:6px;flex-wrap:wrap;min-height:78px}.activity-doodle .activity-icon{font-size:23px;flex:0 0 25px}.activity-doodle .activity-main{min-width:calc(100% - 40px);flex:1}.activity-doodle .activity-main strong{font-size:15px}.activity-doodle .activity-main small{font-size:11px}.activity-doodle .activity-range{margin-left:33px;font-size:11px}.activity-doodle .act-right{flex-direction:row;align-items:center;justify-content:flex-end;margin-left:auto;gap:5px}.activity-doodle .act-right .tag{font-size:9px}.activity-doodle .act-actions .btn{font-size:10px;padding:6px}
 .focus-arena{padding:18px 12px 17px}.focus-head{align-items:flex-start}.focus-eyebrow{font-size:10px}.focus-mission-sticker{font-size:9px;padding:7px}.focus-arena h2{font-size:31px;margin:14px 0 5px}.focus-intro{font-size:13px}.focus-layout{grid-template-columns:1fr;gap:20px;padding:6px 0 15px}.focus-ring{width:min(290px,86%)}.focus-control-side{padding:17px}.focus-bottom{display:block;font-size:10px}.focus-bottom>span{display:block;margin-top:8px}.focus-floating{font-size:38px}
 .mobile-nav{background:#152e46;border-top:2px solid #b88b59;box-shadow:0 -6px 19px #071c29}.mobile-nav .navlink{color:#d8eaf1;font-weight:800;font-size:9px}.mobile-nav .navlink .ico{font-size:19px}.mobile-nav .navlink.active{background:#f5e9d4;color:#142c43}.mobile-nav .navlink.active .ico{color:#142c43}
 .love-note{flex-wrap:wrap;font-size:15px}.love-note small{margin-left:20px}
}
@media(prefers-reduced-motion:reduce){.mini-pixel img{animation:none!important}}
