:root{
  --black:#000;--bg:#000;--panel:#07090d;--panel-2:#0b0e14;--panel-3:#10131b;
  --line:#232735;--line-soft:#171a23;--text:#f6f7fb;--muted:#9298a7;--muted2:#697182;
  --violet:#8b5cf6;--violet2:#635bff;--violet3:#b16cff;--blue:#3b82f6;--green:#42d392;
  --red:#ff5f6d;--yellow:#f8bc3b;--cyan:#48c9b0;--radius:14px;
  --body:15px;--small:13px;--tiny:12px;--title:30px;--section:20px;
}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;background:#000;color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans KR",sans-serif;font-size:var(--body);-webkit-font-smoothing:antialiased}body.booting>*{visibility:hidden}body:not(.booting)>*{visibility:visible}button,input,textarea,select{font:inherit;color:inherit}.is-hidden{display:none!important}button{cursor:pointer}.muted{color:var(--muted)}.tiny{font-size:var(--tiny)}.mono{font-variant-numeric:tabular-nums}
/* LOGIN */
.login-page{position:fixed;inset:0;display:grid;place-items:center;overflow:hidden;background:#000;z-index:100}.login-bg{position:absolute;inset:-1px;background:url('/assets/login-space-4k.png?v=100') center center/cover no-repeat;filter:saturate(.94) contrast(1.02) brightness(.82);transform:scale(1.003)}.login-bg:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 48%,transparent 0 23%,rgba(0,0,0,.08) 48%,rgba(0,0,0,.26) 100%)}
.login-card{position:relative;z-index:2;width:clamp(350px,18vw,680px);padding:clamp(26px,1.35vw,48px);min-height:clamp(455px,47vh,900px);display:flex;flex-direction:column;justify-content:center;border:1px solid rgba(206,201,235,.28);border-radius:15px;background:linear-gradient(150deg,rgba(3,6,13,.97),rgba(5,8,16,.97));box-shadow:0 28px 90px rgba(0,0,0,.58),inset 0 1px 0 rgba(255,255,255,.035)}
.stellar-mark{text-align:center;font-size:26px;line-height:1;color:#f2efff;text-shadow:0 0 20px #b777ff;margin-bottom:8px}.login-card h1{font-size:clamp(17px,.88vw,30px);font-weight:600;letter-spacing:.38em;text-align:center;margin:0 0 7px;padding-left:.38em}.login-subtitle{text-align:center;margin:0 0 clamp(22px,1.1vw,38px);color:#989dab;font-size:clamp(12px,.65vw,20px)}.form-field{margin:13px 0}.form-field label{display:block;margin-bottom:7px;font-size:clamp(13px,.68vw,20px);font-weight:600;color:#d7dae2}.form-field input{width:100%;height:clamp(42px,2.1vw,72px);border:1px solid #2b3040;background:#050810;border-radius:7px;padding:0 12px;outline:none;color:white;font-size:clamp(14px,.72vw,22px)}.form-field input::placeholder{color:#4e5666}.form-field input:focus{border-color:#865df2;box-shadow:0 0 0 3px #7446dc1c}.btn{border:0;border-radius:8px;height:clamp(42px,2.1vw,72px);padding:0 14px;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-weight:650;font-size:clamp(13px,.7vw,21px)}.btn-wide{width:100%}.btn-outline{background:#070a12;border:1px solid #7650d2;color:#f2edff}.btn-outline:hover{background:#0e0d1a}.btn-primary{background:linear-gradient(90deg,#8f49ed,#5566fa);box-shadow:0 8px 24px #6948eb25;color:#fff}.btn-primary:hover{filter:brightness(1.08)}.otp-inputs{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.otp-inputs input{width:100%;height:clamp(44px,2.2vw,74px);padding:0;text-align:center;font-size:clamp(18px,.9vw,30px)}.remember-row{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:15px;font-size:12px;color:#c2c5cf;cursor:pointer}.remember-row>input{position:absolute;opacity:0;pointer-events:none}.switch{width:30px;height:17px;border-radius:99px;background:#222735;border:1px solid #33394a;position:relative;transition:.2s}.switch:after{content:"";position:absolute;width:11px;height:11px;left:2px;top:2px;border-radius:50%;background:#9ca3b0;transition:.2s}.remember-row>input:checked+.switch{background:#7045dd;border-color:#855cf0}.remember-row>input:checked+.switch:after{left:15px;background:white}.link-btn{display:block;margin:12px auto 0;border:0;background:none;color:#9f7cff;text-decoration:underline;text-underline-offset:3px;font-size:12px}.login-message{min-height:18px;text-align:center;margin-top:8px;color:#c5b7ff;font-size:12px}
/* APP */
.app-shell{min-height:100vh;background:#000;display:grid;grid-template-columns:230px minmax(0,1fr)}.sidebar{height:100vh;position:sticky;top:0;display:flex;flex-direction:column;padding:22px 14px 16px;background:#020203;border-right:1px solid #16171b;z-index:20}.brand-home{display:flex;align-items:center;gap:12px;border:0;background:transparent;color:#fff;padding:5px 11px 22px;text-align:left}.brand-star{font-size:22px;text-shadow:0 0 18px #8b5cf6}.brand-text{font-size:12px;letter-spacing:.28em;font-weight:700}.account-mini{display:flex;align-items:center;gap:10px;margin:1px 4px 14px;padding:10px;border:1px solid #14171e;border-radius:11px;background:#050609}.avatar{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:#182235;border:1px solid #2e3b54;font-size:13px}.account-mini strong{font-size:13px;display:block}.account-mini small{font-size:11px;color:#727987}.main-nav{display:grid;gap:4px}.nav-item{width:100%;height:43px;border:1px solid transparent;background:transparent;border-radius:8px;color:#aab0bb;display:flex;align-items:center;gap:12px;padding:0 12px;text-align:left;font-size:14px}.nav-icon{width:21px;text-align:center;font-size:17px;color:#b7bbc6}.nav-item:hover{background:#090a0f;color:#fff}.nav-item.active{color:#fff;border-color:#6133c852;background:linear-gradient(90deg,#50239c5c,#1a112b80);box-shadow:inset 3px 0 0 #8c52ff}.nav-item.active .nav-icon{color:#b88cff}.sidebar-spacer{flex:1}.nav-item.ghost{height:38px;color:#858c98}.workspace{min-width:0;background:#000;padding:30px 34px 42px;overflow:hidden}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}.eyebrow{font-size:13px;color:#9d7cff;margin-bottom:6px}.page-head h1{margin:0;font-size:var(--title);line-height:1.1;letter-spacing:-.03em}.page-head p{margin:8px 0 0;color:#a1a6b1;font-size:14px;line-height:1.65}.page-actions{display:flex;gap:8px;align-items:center}.panel{border:1px solid #20232b;background:linear-gradient(145deg,#08090d,#050609);border-radius:var(--radius);box-shadow:0 14px 55px #0006}.panel.pad{padding:18px}.panel-title{font-size:15px;font-weight:700;margin:0 0 13px}.divider{height:1px;background:#151820;margin:16px 0}.subtle{color:#8b919e;font-size:13px}.action-btn{height:40px;padding:0 14px;border:1px solid #2a2e3a;background:#080a0f;border-radius:8px;color:#d7dbe5;display:inline-flex;gap:8px;align-items:center;justify-content:center;font-size:13px}.action-btn:hover{border-color:#4d5262;background:#0c0e14}.action-btn.primary{border:0;background:linear-gradient(90deg,#8a4bec,#5a64f6);color:white;font-weight:700}.action-btn.danger{border-color:#71323a;color:#ff8790}.action-btn.icon{width:40px;padding:0}.segmented{display:inline-flex;background:#07080c;border:1px solid #22252d;border-radius:8px;padding:3px}.segmented button{border:0;background:transparent;color:#8f95a0;border-radius:6px;padding:7px 11px;font-size:12px}.segmented button.active{background:#27203c;color:#fff}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metric-card{padding:17px 18px}.metric-label{color:#858c98;font-size:12px}.metric-value{font-size:25px;font-weight:720;margin-top:12px;line-height:1}.metric-sub{font-size:12px;color:#747b88;margin-top:9px}.dashboard-grid{display:grid;grid-template-columns:1.65fr 1fr;gap:12px;margin-top:12px}.list{display:grid}.list-row{min-height:43px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;border-top:1px solid #15171d;font-size:13px}.list-row:first-child{border-top:0}.list-row .right{color:#8c93a0}.empty{display:grid;place-items:center;min-height:130px;color:#69717f;text-align:center;font-size:13px}
/* INTRO/HOME */
.hero{padding:8px 0 28px}.hero-kicker{font-size:15px;color:#9d7cff;margin-bottom:10px}.hero h1{font-size:clamp(42px,4.6vw,72px);margin:0;letter-spacing:-.05em;background:linear-gradient(90deg,#836fff,#f3efff 55%,#a383ff);-webkit-background-clip:text;color:transparent}.hero p{max-width:850px;font-size:17px;line-height:1.8;color:#b0b4bf;margin:21px 0 0}.hub-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.hub-card{min-height:225px;padding:24px;position:relative;overflow:hidden;transition:.2s}.hub-card:hover{transform:translateY(-3px);border-color:#40385a}.hub-icon{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,#502c8c,#171022);border:1px solid #573c85;color:#c38cff;font-size:25px}.hub-card h3{font-size:21px;margin:24px 0 8px}.hub-card p{font-size:14px;color:#9097a3;line-height:1.65;margin:0 0 25px}.hub-go{position:absolute;right:18px;bottom:18px;width:38px;height:38px;border:1px solid #333845;background:#080a0e;color:#ddd;border-radius:8px}.hub-go:hover{border-color:#7d57db;color:#bfa0ff}
/* CALENDAR */
.calendar-top{display:flex;align-items:center;gap:10px;margin-bottom:12px}.calendar-top .month-name{font-size:22px;font-weight:650;min-width:175px;text-align:center}.legend{margin-left:auto;display:flex;gap:14px;align-items:center;flex-wrap:wrap;color:#a3a8b1;font-size:12px}.legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px}.calendar-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}.calendar-shell{overflow:hidden}.calendar{height:calc(100vh - 190px);min-height:660px;display:grid;grid-template-rows:42px repeat(6,minmax(0,1fr));border-radius:12px;overflow:hidden}.cal-week,.cal-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.cal-week>div{display:grid;place-items:center;border-right:1px solid #23252b;color:#e0e2e7;font-size:13px;font-weight:650;background:#06070a}.cal-day{position:relative;padding:9px 9px;border-top:1px solid #23252b;border-right:1px solid #23252b;overflow:hidden;background:#020203;transition:.12s}.cal-day:hover{background:#07080b}.cal-day.dim{color:#555b65;background:#010102}.cal-day .day-num{font-size:14px;font-weight:650}.cal-day.sun .day-num{color:#ff666d}.cal-day.sat .day-num{color:#73a0ff}.cal-events{display:grid;gap:5px;margin-top:7px}.cal-event{min-height:28px;border:1px solid #6948b0;background:#261b3e;padding:5px 7px;border-radius:6px;font-size:12px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.cal-event.work{border-color:#2678e6;background:#08213e;color:#68aeff}.cal-event.travel{border-color:#c58a00;background:#332500;color:#ffd263}.cal-event.anniversary{border-color:#db3e65;background:#40101e;color:#ff9db5}.cal-event.other{border-color:#258b65;background:#082e24;color:#75e4b9}.anniversary-cell{box-shadow:inset 0 0 0 1px #e34b6a75}.flower-corner{position:absolute;right:7px;top:6px;font-size:15px}.anniversary-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:12px}.anniv-card{position:relative;padding:13px 15px;border:1px solid #222631;background:#07080c;border-radius:10px;overflow:hidden}.anniv-card:before{content:"🌸";position:absolute;left:8px;top:6px;opacity:.55}.anniv-card strong{display:block;margin-left:25px;font-size:14px}.anniv-card span{display:block;margin:5px 0 0 25px;color:#9ba1ad;font-size:12px}.anniv-card b{position:absolute;right:12px;bottom:13px;color:#ff687b;font-size:15px}
/* DRAWER / FORMS */
.drawer-backdrop{position:fixed;inset:0;background:#0005;z-index:60}.right-drawer{position:fixed;right:0;top:0;bottom:0;width:min(430px,92vw);z-index:61;background:#07080b;border-left:1px solid #292c34;box-shadow:-30px 0 90px #000c;padding:22px;overflow:auto}.drawer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.drawer-head h2{font-size:20px;margin:0}.close-btn{width:36px;height:36px;border:0;background:transparent;color:#a4a9b2;font-size:21px}.form-grid{display:grid;gap:15px}.field label{display:block;font-size:13px;font-weight:650;color:#c7cad2;margin-bottom:7px}.field input,.field textarea,.field select,.fake-input{width:100%;border:1px solid #2a2d35;background:#040507;color:white;border-radius:8px;min-height:43px;padding:10px 11px;outline:none;font-size:14px}.field textarea{min-height:110px;resize:vertical;line-height:1.6}.field input:focus,.field textarea:focus,.field select:focus,.fake-input:focus{border-color:#7450d3;box-shadow:0 0 0 3px #7045d618}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.drawer-actions{display:grid;gap:9px;margin-top:22px}.drawer-actions .action-btn{width:100%}.category-dot{width:11px;height:11px;border-radius:50%;display:inline-block;margin-right:7px}.char-count{text-align:right;color:#6f7580;font-size:11px;margin-top:5px}
/* MODAL / WHEEL PICKER */
.modal{position:fixed;inset:0;z-index:80;background:#000b;display:grid;place-items:center;padding:20px}.modal-card{width:min(760px,96vw);max-height:92vh;overflow:auto;border:1px solid #2a2d36;background:#090a0e;border-radius:15px;box-shadow:0 30px 100px #000;padding:22px}.modal-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.modal-title h2{margin:0;font-size:20px}.wheel-picker{position:relative;display:grid;grid-template-columns:1.25fr .8fr .8fr .8fr .8fr;gap:5px;background:#040507;border:1px solid #242731;border-radius:12px;padding:10px}.wheel-picker.date-only{grid-template-columns:1.4fr .9fr .9fr}.wheel-col{height:248px;overflow-y:auto;scroll-snap-type:y mandatory;scrollbar-width:none;padding:104px 0;cursor:grab;user-select:none}.wheel-col:active{cursor:grabbing}.wheel-col::-webkit-scrollbar{display:none}.wheel-item{height:40px;display:grid;place-items:center;scroll-snap-align:center;color:#696f7d;font-size:14px;transition:.15s}.wheel-item.selected{font-size:18px;color:#fff;font-weight:700}.wheel-selection{position:absolute;left:10px;right:10px;top:113px;height:40px;border-top:1px solid #5a3e9a;border-bottom:1px solid #5a3e9a;background:#8a56ff0d;pointer-events:none}.wheel-labels{display:grid;grid-template-columns:1.25fr .8fr .8fr .8fr .8fr;gap:5px;margin:0 10px 7px;text-align:center;color:#737986;font-size:11px}.wheel-labels.date-only{grid-template-columns:1.4fr .9fr .9fr}
/* BUDGET */
.budget-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0}.money.in{color:#4de2a2}.money.out{color:#ff6873}.budget-calendar .cal-event{font-variant-numeric:tabular-nums}.budget-entry{display:flex;align-items:center;justify-content:space-between;gap:8px}.owner-tabs{display:flex;gap:7px}.owner-tabs button{min-width:90px}
/* BLOG */
.blog-toolbar-top{display:flex;gap:8px;align-items:center}.blog-list-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:13px}.blog-card{overflow:hidden;cursor:pointer;transition:.18s}.blog-card:hover{transform:translateY(-2px);border-color:#3d3650}.blog-cover{height:160px;background:#0c0e13 center/cover no-repeat;border-bottom:1px solid #1d2028}.blog-card-body{padding:16px}.blog-card h3{font-size:17px;margin:0 0 8px}.blog-card p{font-size:13px;color:#8e95a1;margin:0;line-height:1.55}.blog-meta{font-size:11px;color:#686f7d;margin-top:14px}.editor-page{max-width:1420px;margin:0 auto}.editor-top{position:sticky;top:0;z-index:15;background:#000;padding:8px 0 12px;display:flex;justify-content:space-between;gap:12px;align-items:center}.editor-title{width:100%;height:58px;border:1px solid #22252d;background:#030405;color:#fff;border-radius:8px;padding:0 16px;font-size:25px;font-weight:650;outline:none}.editor-meta{display:grid;grid-template-columns:180px 1fr;gap:10px;margin:10px 0}.rich-toolbar{position:sticky;top:79px;z-index:14;display:flex;align-items:center;gap:3px;flex-wrap:wrap;background:#15171c;border:1px solid #30333c;border-radius:8px 8px 0 0;padding:6px}.tool-select,.tool-btn{height:34px;border:0;background:transparent;color:#e6e8ed;border-radius:5px;padding:0 9px;font-size:13px}.tool-select{background:#101116;border:1px solid #262832}.tool-btn:hover{background:#282b33}.tool-sep{width:1px;height:23px;background:#343741;margin:0 4px}.editor-canvas{min-height:650px;border:1px solid #2c2f37;border-top:0;background:#07080a;padding:38px 65px 80px;outline:none;font-size:16px;line-height:1.85;color:#dfe2e8}.editor-canvas:empty:before{content:attr(data-placeholder);color:#555c68}.editor-canvas h2{font-size:27px;margin:34px 0 12px}.editor-canvas h3{font-size:21px}.editor-canvas blockquote{margin:24px 0;border-left:3px solid #8b5cf6;padding:5px 0 5px 18px;color:#b5bac5}.editor-canvas img,.editor-canvas video{max-width:100%;display:block;margin:22px auto;border-radius:9px;border:1px solid #262a33}.editor-canvas a{color:#aa8cff}.editor-footer{display:flex;justify-content:space-between;color:#777e89;font-size:12px;padding:12px 0}.draft-status.ok{color:#4ed59c}
/* TRAVEL */
.travel-layout{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:12px;height:calc(100vh - 125px);min-height:690px}.travel-main{position:relative;overflow:hidden;background:#010203}.map-tabs{position:absolute;z-index:8;left:17px;top:15px;display:flex;background:#07090dd9;border:1px solid #292d37;border-radius:9px;padding:4px}.map-tabs button{border:0;background:transparent;color:#8f96a2;padding:8px 12px;border-radius:6px;font-size:12px}.map-tabs button.active{background:#342158;color:#fff}.map-search{position:absolute;z-index:8;top:15px;left:50%;transform:translateX(-50%);width:min(460px,52%);display:flex;gap:6px}.map-search input{width:100%;height:40px;border:1px solid #2b2e37;background:#05070be8;color:#fff;border-radius:8px;padding:0 12px;outline:none}.map-search button{height:40px}.map-view{position:absolute;inset:0}.map-view.is-hidden{display:none}.globe-wrap{width:100%;height:100%;background:radial-gradient(circle at 50% 50%,#08111c,#000 60%)}#leafletMap{width:100%;height:100%}.google-map-frame{width:100%;height:100%;border:0;background:#050505}.travel-side{display:flex;flex-direction:column;min-height:0}.travel-side-head{display:flex;align-items:center;justify-content:space-between;padding:15px;border-bottom:1px solid #1c1f27}.place-list{overflow:auto;padding:5px 13px 13px}.place-item{display:grid;grid-template-columns:1fr auto;gap:8px;padding:13px 3px;border-bottom:1px solid #191b22;cursor:pointer}.place-item:hover strong{color:#b99cff}.place-item strong{font-size:14px}.place-item small{display:block;color:#7b828f;margin-top:5px;font-size:11px}.pin{color:#a16eff;font-size:18px}.travel-foot{margin-top:auto;padding:13px;border-top:1px solid #1a1d24}.travel-counts{display:grid;grid-template-columns:repeat(3,1fr);text-align:center}.travel-counts b{display:block;font-size:19px}.travel-counts span{font-size:10px;color:#717886}
/* MARKET */
.market-cards{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}.coin-card,.stock-card{padding:14px;cursor:pointer;min-width:0}.coin-card.selected,.stock-card.selected{border-color:#7456c8;box-shadow:inset 0 0 0 1px #8b62dd3b}.market-symbol{display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:700}.market-symbol small{font-size:10px;color:#7d8490;font-weight:500}.price{font-size:22px;font-weight:750;margin:13px 0 5px}.change.pos{color:#41d28f}.change.neg{color:#ff626d}.spark{height:32px;width:100%;margin-top:7px}.market-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:11px;margin-top:11px}.chart-panel{min-height:520px;overflow:hidden}.tv-container{width:100%;height:520px}.market-side{padding:16px}.market-table{margin-top:11px;overflow:auto}.market-table table{width:100%;border-collapse:collapse;font-size:13px}.market-table th,.market-table td{height:42px;padding:0 11px;border-top:1px solid #181b22;text-align:left;white-space:nowrap}.market-table th{color:#7f8793;font-size:11px;font-weight:600}.market-table tr:hover td{background:#07080b}.alert-row{display:grid;grid-template-columns:1fr auto;gap:7px;padding:9px 0;border-top:1px solid #191c23}.status-pill{display:inline-flex;align-items:center;gap:6px;border:1px solid #28303a;background:#0a0d12;border-radius:99px;padding:5px 9px;font-size:10px;color:#98a0ab}.status-dot{width:7px;height:7px;border-radius:50%;background:#44d594}.stock-overview{height:225px}.portfolio-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,.7fr);gap:11px;margin-top:11px}
/* UTILITIES */
.utility-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.utility{padding:18px}.utility h3{font-size:16px;margin:0 0 13px}.calc-display{width:100%;height:55px;border:1px solid #252934;background:#030405;border-radius:8px;padding:0 12px;text-align:right;font-size:22px}.calc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:8px}.calc-grid button{height:42px;border:1px solid #232732;background:#090b10;border-radius:7px}.quick-note{width:100%;min-height:225px;background:#040506;border:1px solid #242831;border-radius:8px;color:#ddd;padding:13px;resize:vertical;line-height:1.7}.converter-row{display:grid;grid-template-columns:1fr 110px 38px 1fr 110px;gap:6px;align-items:center}.converter-row input,.converter-row select{height:42px;border:1px solid #262a34;background:#040506;border-radius:7px;padding:0 9px}
/* SETTINGS */
.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 0;border-top:1px solid #181b21}.setting-row:first-of-type{border-top:0}.setting-row strong{font-size:14px}.setting-row small{display:block;color:#777f8c;margin-top:4px}.connection-ok{color:#48d99c}.connection-bad{color:#ff7e87}
/* TOAST */
.toast-host{position:fixed;right:22px;bottom:22px;z-index:120;display:grid;gap:8px}.toast{min-width:260px;max-width:380px;background:#0b0d12;border:1px solid #2d313b;border-radius:10px;padding:12px 14px;box-shadow:0 18px 55px #000c;color:#e1e4ea;font-size:13px;animation:toastIn .18s ease}.toast.success{border-color:#245b46}.toast.error{border-color:#673139}@keyframes toastIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:1280px){.hub-grid{grid-template-columns:repeat(2,1fr)}.market-cards{grid-template-columns:repeat(3,1fr)}.cards{grid-template-columns:repeat(2,1fr)}.travel-layout{grid-template-columns:minmax(0,1fr) 300px}.market-layout{grid-template-columns:1fr}.market-side{display:grid;grid-template-columns:1fr 1fr;gap:12px}.portfolio-grid{grid-template-columns:1fr}.editor-canvas{padding:32px 40px}}
@media(max-width:860px){.app-shell{grid-template-columns:76px minmax(0,1fr)}.sidebar{padding:17px 8px}.brand-text,.account-mini>div:not(.avatar),.nav-item span:last-child{display:none}.brand-home{justify-content:center;padding-left:0;padding-right:0}.account-mini{justify-content:center;padding:8px}.nav-item{justify-content:center;padding:0}.nav-icon{width:auto}.workspace{padding:22px 18px}.dashboard-grid,.travel-layout{grid-template-columns:1fr}.travel-layout{height:auto}.travel-main{height:650px}.travel-side{min-height:420px}.calendar{height:750px}.legend{display:none}.settings-grid,.utility-grid{grid-template-columns:1fr}.market-cards{grid-template-columns:repeat(2,1fr)}.market-side{display:block}.editor-meta{grid-template-columns:1fr}.rich-toolbar{top:72px}.editor-canvas{padding:28px 25px}.converter-row{grid-template-columns:1fr 95px;}.converter-row .swap{display:none}}
@media(max-width:560px){:root{--body:14px}.login-card{width:min(340px,92vw);padding:23px 20px}.app-shell{display:block}.sidebar{height:auto;position:sticky;top:0;z-index:30;display:flex;flex-direction:row;overflow-x:auto;padding:7px 8px;border-right:0;border-bottom:1px solid #17191e}.brand-home,.account-mini,.sidebar-spacer,.sidebar>.ghost{display:none}.main-nav{display:flex;gap:5px}.nav-item{min-width:62px;height:45px}.nav-item span:last-child{display:none}.workspace{padding:18px 12px}.page-head{align-items:flex-start;flex-direction:column}.page-head h1{font-size:25px}.hub-grid,.cards,.budget-stats{grid-template-columns:1fr}.market-cards{grid-template-columns:1fr 1fr}.calendar{min-width:760px;height:720px}.calendar-shell{overflow:auto}.anniversary-strip{grid-template-columns:1fr}.travel-main{height:590px}.map-search{width:70%;left:62%}.right-drawer{width:100%}.form-row{grid-template-columns:1fr}.modal-card{padding:15px}.wheel-picker{grid-template-columns:1.2fr .75fr .75fr .75fr .75fr}.editor-page{min-width:0}.editor-top{align-items:stretch;flex-direction:column}.rich-toolbar{position:relative;top:auto}.editor-canvas{padding:22px 16px;min-height:550px}.market-layout{display:block}.chart-panel{min-height:430px}.tv-container{height:430px}.utility-grid{grid-template-columns:1fr}}


/* =========================================================
   V1.1 — BYBIT STOCK WORKBENCH + TRAVEL SEARCH REFINEMENTS
   ========================================================= */

/* Travel search: larger, horizontal, readable button + dropdown */
.map-search-shell{position:absolute;z-index:12;top:15px;left:50%;transform:translateX(-50%);width:min(640px,62%)}
.map-search-shell .map-search{position:relative;inset:auto;transform:none;width:100%;display:grid;grid-template-columns:minmax(0,1fr) 92px;gap:8px}
.map-search-shell .map-search input{height:44px;font-size:14px;padding:0 14px;border-radius:9px;background:rgba(4,7,12,.94);box-shadow:0 8px 30px #0007}
.map-search-btn{height:44px!important;min-width:92px!important;padding:0 16px!important;white-space:nowrap!important;font-size:14px!important;font-weight:700!important;display:inline-flex;align-items:center;justify-content:center}
.map-search-btn:disabled{opacity:.72;cursor:wait}
.place-search-results{position:absolute;top:52px;left:0;right:0;background:rgba(5,7,12,.98);border:1px solid #292d39;border-radius:10px;box-shadow:0 24px 65px #000b;overflow:hidden;backdrop-filter:blur(18px)}
.search-provider{padding:9px 12px;border-bottom:1px solid #1b1f29;color:#777f8d;font-size:11px}
.place-search-result{width:100%;display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:8px;align-items:center;text-align:left;padding:11px 12px;border:0;border-top:1px solid #151821;background:transparent;color:#e8ebf2;cursor:pointer}
.place-search-result:first-of-type{border-top:0}.place-search-result:hover{background:#151020}
.place-search-result strong{display:block;font-size:13px}.place-search-result small{display:block;margin-top:3px;color:#777f8d;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.search-pin{color:#a875ff;font-size:17px}.search-action{color:#a98aff;font-size:11px}.map-loading,.map-error{height:100%;display:grid;place-items:center;color:#737b89;font-size:13px;text-align:center}
.map-error small{display:block;margin-top:8px;color:#525966}
.google-map-frame{filter:saturate(.88) contrast(1.04) brightness(.86)}

/* Bybit stock cards */
.stock-bybit-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:11px}
.stock-bybit-card{padding:15px 16px;cursor:pointer;transition:.16s;min-width:0}
.stock-bybit-card:hover{transform:translateY(-1px);border-color:#373144}.stock-bybit-card.selected{border-color:#7654c7;box-shadow:inset 0 0 0 1px #8b61e33c,0 10px 35px #5c31a514}
.stock-bybit-card .price small{font-size:10px;color:#6f7785}.stock-eng{font-size:11px;color:#6f7785;margin-top:5px}
.stock-card-meta{display:flex;gap:12px;margin-top:9px;color:#687180;font-size:10px}

/* Taller chart and side information */
.stock-main-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:11px;align-items:start}
.bybit-chart-panel{overflow:hidden;min-width:0}
.stock-chart-header{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 17px;border-bottom:1px solid #1c1f27;background:linear-gradient(180deg,#090b10,#050608)}
.stock-selected-title{display:flex;align-items:baseline;gap:10px}.stock-selected-title strong{font-size:18px}.stock-selected-title span{font-size:11px;color:#777f8c}
.stock-selected-price{display:flex;align-items:baseline;gap:11px;margin-top:7px}.stock-selected-price b{font-size:25px}.stock-selected-price span{font-size:13px;font-weight:700}.stock-selected-price .pos{color:#43d897}.stock-selected-price .neg{color:#ff6672}
.stock-intervals{display:flex;gap:4px;background:#05070b;border:1px solid #222631;border-radius:8px;padding:4px}.stock-intervals button{height:31px;min-width:42px;border:0;background:transparent;color:#7e8795;border-radius:5px;font-size:11px}.stock-intervals button.active{background:#3c246b;color:#fff}

/* Drawing toolbar */
.drawing-toolbar{display:flex;align-items:center;gap:4px;min-height:47px;padding:6px 10px;border-bottom:1px solid #1b1e25;background:#0a0c10;overflow-x:auto}
.draw-tool{height:32px;border:1px solid transparent;background:transparent;color:#929aa8;border-radius:6px;padding:0 9px;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;font-size:12px;cursor:pointer}
.draw-tool:hover{background:#171a21;color:#e6e9ef}.draw-tool.active{background:#3b2467;color:#fff;border-color:#6742aa}.draw-tool.danger-lite:hover{background:#3a151a;color:#ff9aa2}
.draw-sep{width:1px;height:22px;background:#2d313a;margin:0 4px}.drawing-help{margin-left:auto;color:#59616e;font-size:10px;white-space:nowrap}

/* 720px-class chart canvas; gives vertical room for actual technical analysis */
.bybit-chart-wrap{position:relative;width:100%;height:clamp(650px,67vh,790px);min-height:650px;background:#020304;overflow:hidden;touch-action:none}
#stockPriceCanvas,#stockDrawCanvas{position:absolute;inset:0;width:100%;height:100%}#stockPriceCanvas{z-index:1}#stockDrawCanvas{z-index:2;cursor:crosshair}
.chart-loading{position:absolute;inset:0;z-index:6;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:rgba(2,3,4,.86);color:#8e97a6;font-size:13px;backdrop-filter:blur(8px)}
.chart-loading small{color:#666f7d}.stock-chart-legend{position:absolute;z-index:5;right:88px;top:16px;padding:5px 8px;background:#090c12d9;border:1px solid #272c36;border-radius:5px;color:#c9cfd9;font-size:10px;pointer-events:none}
.stock-side-panel{padding:16px;min-height:500px;position:sticky;top:20px}.stock-stats{display:grid}.stock-stat-row{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:10px 0;border-top:1px solid #191c23;font-size:12px}.stock-stat-row:first-child{border-top:0}.stock-stat-row span{color:#7f8794}.stock-stat-row b{font-size:11px;text-align:right;color:#d5d9e1;word-break:break-all}
.stock-note{padding:12px 0;border-top:1px solid #191c23}.stock-note b{font-size:12px}.stock-note p{font-size:12px;line-height:1.6;color:#aab1bc;margin:7px 0}

@media(max-width:1280px){
  .stock-main-grid{grid-template-columns:1fr}.stock-side-panel{position:relative;top:auto}
  .map-search-shell{width:min(600px,64%)}
}
@media(max-width:860px){
  .stock-bybit-cards{grid-template-columns:repeat(2,1fr)}
  .stock-chart-header{align-items:flex-start;flex-direction:column}.stock-intervals{width:100%;overflow:auto}
  .drawing-help{display:none}.bybit-chart-wrap{height:650px;min-height:650px}
  .map-search-shell{width:70%;left:61%}
}
@media(max-width:560px){
  .stock-bybit-cards{grid-template-columns:1fr 1fr}.stock-bybit-card{padding:12px}
  .draw-tool span{display:none}.draw-tool{min-width:34px;justify-content:center;padding:0 7px}
  .bybit-chart-wrap{height:570px;min-height:570px}
  .map-search-shell{width:76%;left:59%}.map-search-shell .map-search{grid-template-columns:minmax(0,1fr) 76px}.map-search-btn{min-width:76px!important;padding:0 10px!important}
}
