:root{font-family:Pretendard,'Noto Sans KR',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#28233f;background:#f8f7fc;--ink:#28233f;--muted:#716b83;--purple:#694cc3;--deep:#4a328f;--line:#eae5f3;--paper:#fff;--soft:#f2edfd;--coral:#b53756}*{box-sizing:border-box}body{margin:0;background:#f8f7fc}button,input,select{font:inherit}button{border:0;background:var(--purple);color:white;border-radius:13px;padding:11px 17px;cursor:pointer;font-weight:750;min-height:44px;transition:background .18s,transform .18s}button:hover{filter:brightness(.96)}button:active{transform:scale(.98)}button:disabled{opacity:.45;cursor:not-allowed}.secondary{background:#f0ebfa;color:#59409e}.danger{color:#ab3450}input,select{border:1px solid #ddd6ea;background:white;border-radius:12px;padding:12px;min-height:46px;max-width:100%;color:var(--ink)}input:focus,select:focus,button:focus-visible,a:focus-visible{outline:3px solid #bd9cff;outline-offset:2px}label{display:grid;gap:7px;font-weight:700;font-size:14px}a{color:#5840ab}p{line-height:1.55}h1,h2,h3{letter-spacing:-.035em}h3{line-height:1.35}.muted,.fine{color:var(--muted)}.fine{font-size:13px;line-height:1.6}.eyebrow{font-size:11px;letter-spacing:1.1px;color:#7864ad;font-weight:850}.brand{font-size:23px;font-weight:900;color:#5336a7;letter-spacing:-.06em}.actions{display:flex;gap:9px;flex-wrap:wrap}.stack{display:grid;gap:12px}.error{color:#b53756;min-height:1em;margin:0}
.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 12% 12%,#ede2ff,transparent 40%),radial-gradient(circle at 86% 85%,#fff0d7,transparent 36%),#f8f7fc}.auth-card{max-width:470px;width:100%;background:white;padding:42px;border-radius:30px;box-shadow:0 20px 70px #3e276724;display:grid;gap:17px;border:1px solid var(--line)}.auth-card:before{content:'✦';width:65px;height:65px;display:grid;place-items:center;background:#fff2c9;color:#ffae46;font-size:38px;border-radius:22px;transform:rotate(-8deg)}.auth-card h1{line-height:1.24;margin:0;font-size:33px}.auth-card .sub{margin:0 0 12px;color:var(--muted)}.auth-card small{color:var(--muted);line-height:1.5}
#app{min-height:100vh}#app:not([hidden]){display:flex}.sidebar{width:250px;flex-shrink:0;background:#fff;border-right:1px solid var(--line);min-height:100vh;display:flex;flex-direction:column;padding:28px 18px;position:sticky;top:0;height:100vh}.sidebar .brand{padding:4px 12px}.side-label{font-size:12px;color:#9188a4;padding:7px 13px 35px;font-weight:650}.sidebar nav{display:grid;gap:7px}.sidebar nav button{text-align:left;background:transparent;color:#685f7b;font-weight:750;padding:14px 17px;border-radius:14px}.sidebar nav button.active,.sidebar nav button:hover{background:#f0eafa;color:#5e42aa}.side-bottom{margin-top:auto;display:grid;gap:10px;color:#a29aae;font-size:12px;padding-left:12px}.side-action{background:none;color:#716b83;text-align:left;padding:0}main{width:min(1160px,100%);margin:0 auto;padding:33px 37px 110px;min-width:0}header{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px}header h1{margin:5px 0 0;font-size:31px}.header-right{display:flex;gap:10px;align-items:center}.header-right select{min-width:150px}.page>.section-head{margin-bottom:16px}.page>.section-head h2{margin:3px 0 6px;font-size:28px}.page>.section-head p{margin:0;max-width:650px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.section-head h3{margin:3px 0}.card{background:var(--paper);border:1px solid var(--line);border-radius:23px;padding:23px;box-shadow:0 7px 25px #3c28630a;min-width:0}.card h3{margin:0 0 15px;font-size:19px}.card p{line-height:1.55}.card.wide{margin-top:18px}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-top:17px}.cards.two{grid-template-columns:repeat(2,minmax(0,1fr))}.card-label{display:block;color:#766d89;font-size:13px;font-weight:800;margin-bottom:13px}.status-card{min-height:145px}.status-card strong{display:block;font-size:23px;letter-spacing:-.035em}.status-card p{font-size:13px;color:var(--muted);margin:8px 0 0}
.hero{position:relative;min-height:232px;background:#eae0ff;border-radius:28px;padding:31px 35px;display:flex;align-items:center;overflow:hidden;border:1px solid #dfd1ff}.hero:before{content:'';position:absolute;width:360px;height:360px;border-radius:50%;right:-95px;top:-75px;background:#d8c4ff}.hero:after{content:'✦';position:absolute;right:245px;top:22px;color:#fff;font-size:34px}.hero-copy{position:relative;z-index:2;max-width:68%}.hero h2{font-size:30px;margin:10px 0 8px}.hero p{margin:0;color:#605475;font-size:14px}.hero-mascot{position:absolute;z-index:1;width:218px;height:218px;object-fit:contain;right:30px;bottom:-7px;filter:drop-shadow(0 10px 17px #72549b28)}.hero-actions{display:flex;align-items:center;gap:12px;margin-top:22px;flex-wrap:wrap}.hero-link{background:#51379f;color:#fff;padding:10px 16px}.hero-link span{margin-left:10px}.hero-battery{font-size:12px;font-weight:700;color:#625678;background:#ffffffaf;border:1px solid #ffffffbd;border-radius:12px;padding:10px 13px}.hero-battery strong{color:#48328c;margin-left:5px}.quick-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-top:17px}.quick-actions button{min-height:74px;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:19px;display:flex;align-items:center;gap:11px;text-align:left;box-shadow:0 5px 15px #3c286309}.quick-actions button>span:last-child{margin-left:auto;color:#968ca7;font-size:23px}.quick-icon{width:39px;height:39px;flex:0 0 39px;border-radius:13px;display:grid;place-items:center;font-size:22px}.quick-icon.peach{background:#ffe9e1;color:#c56859}.quick-icon.mint{background:#ddf4ee;color:#328a75}.quick-icon.butter{background:#fff0bd;color:#b87d21}.emergency-card{border-color:#f5dce3}.emergency-card .eyebrow{color:#b53756}.emergency-mark{width:31px;height:31px;display:grid;place-items:center;border-radius:50%;background:#ffeaee;color:#b53756;font-weight:900}.sos-entry{width:100%;text-align:left;display:grid;gap:4px;padding:16px 18px;background:#fff0f2;color:#8c304a;border:1px solid #f4d3dc}.sos-entry small{font-size:13px;color:#925b6b}
.welcome-guide{display:flex;align-items:center;gap:16px;background:#f2edff;border:1px solid #e5dafa;padding:16px 20px;border-radius:20px;margin-bottom:18px;color:#4c3a7a}.welcome-guide>span{font-size:25px}.welcome-guide p{margin:4px 0 0;line-height:1.5;font-size:13px}.welcome-guide button{margin-left:auto;white-space:nowrap}.form-grid{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.form-grid input:first-child{flex:1;min-width:180px}.form-grid input:not(:first-child){width:130px}.list{display:grid}.list-row{padding:15px 0;border-top:1px solid #f0edf5;display:flex;justify-content:space-between;align-items:center;gap:15px}.list-row:first-child{border-top:0}.list-row small{color:var(--muted)}.pair-code{font-size:28px;font-weight:850;letter-spacing:4px;color:var(--purple);margin:15px 0}.pair-state{padding:13px 15px;border-radius:12px;background:#fff5e8;color:#725021;font-weight:700;line-height:1.55}.pair-state.connected{background:#e7f7ee;color:#14734a}.usage-track{height:7px;background:#f0ebf9;border-radius:20px;margin-top:7px}.usage-track span{display:block;height:100%;background:#9f7aeb;border-radius:20px}.alert{padding:14px 18px;background:#fff2e8;color:#9b401c;border-radius:12px;margin:15px 0}.success{background:#e5f6f0;color:#13664f}#notice:empty{display:none}#notice{padding:12px 16px;background:#eee8ff;color:#503398;border-radius:12px;margin-bottom:16px}#zone-alert{min-width:155px}#zone-picked{background:#f3f0fb;border-radius:10px;padding:9px 11px}
.calendar-card{padding:22px}.schedule-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,1fr);gap:18px;margin-top:18px;align-items:start}.calendar-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:16px}.calendar-toolbar h3{margin:0 auto;font-size:21px}.calendar-toolbar button{min-width:44px}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.calendar-weekdays{text-align:center;color:#777087;font-size:13px;font-weight:800;margin-bottom:8px}.calendar-grid{grid-auto-rows:minmax(105px,auto)}.calendar-day,.calendar-empty{min-width:0;background:#fcfbff;border:1px solid #f0ecf6;border-radius:12px;padding:5px}.calendar-day.today{border-color:#e4b85f;background:#fff8e7}.calendar-day.selected{outline:2px solid var(--purple)}.date-button{background:transparent;color:#463d60;padding:4px 7px;min-height:33px;border-radius:50%}.calendar-day.today .date-button{background:#ffd88a;color:#5d401b}.calendar-items{display:grid;gap:3px}.calendar-event{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;padding:4px 5px;min-height:25px;background:#eee6ff;color:#59409e;font-size:11px;border-radius:6px}.calendar-day small{font-size:10px;color:#777087}.schedule-form{position:sticky;top:16px}.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:9px}.weekday-choices{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.weekday-choices label{display:flex;align-items:center;gap:3px;padding:7px 9px;border-radius:9px;background:#f0ebfa;cursor:pointer}.weekday-choices input{min-height:0}.field-label{font-weight:700}.schedule-tag{font-size:12px;color:#7556bc;white-space:nowrap}.schedule-form input,.schedule-form select,#event-zone,#event-grace{width:100%}
.map-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}.map-heading h3{margin-bottom:5px}.map-heading p{margin:0}.map-surface{height:390px;border-radius:18px;margin:17px 0;background:#e8efe9;overflow:hidden}.map-empty{height:100%;display:grid;place-content:center;text-align:center;line-height:2;color:#567065;padding:22px}.link-button{display:inline-flex;align-items:center;text-decoration:none;border-radius:12px;padding:11px 15px;font-weight:700;min-height:44px}.sos-layout{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(0,1.5fr);gap:18px;margin-top:18px;align-items:start}.sos-record,.mission-row{width:100%;background:#fff;color:var(--ink);text-align:left;border-top:1px solid var(--line);border-radius:0;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 8px}.sos-record{display:grid;gap:3px}.sos-record small,.mission-row small{display:block;color:var(--muted);font-weight:500;margin-top:5px}.sos-record:hover,.sos-record.active,.mission-row:hover{background:#f4efff;color:#49358e}.sos-map{margin-top:20px;border-radius:15px;overflow:hidden;min-height:260px;background:#eee8fb}.sos-map iframe{width:100%;height:300px;border:0;display:block}#sos-detail{line-height:1.6}#sos-player{width:100%;margin-top:12px}#mission-repeat{min-width:140px}.proof-entry{border-top:1px solid var(--line);padding:16px 0}.proof-entry p{margin:9px 0;white-space:pre-wrap;overflow-wrap:anywhere}#mission-photo{display:block;max-width:min(100%,640px);max-height:560px;object-fit:contain;margin:18px auto;border-radius:14px}.location-row a{white-space:nowrap;font-size:13px}.location-row small{line-height:1.7}.mobile-nav,.more-sheet,.more-backdrop{display:none}
@media(max-width:1100px){.schedule-layout{grid-template-columns:1fr}.schedule-form{position:static}}@media(max-width:850px){.sidebar{display:none}main{padding:22px 16px calc(100px + env(safe-area-inset-bottom))}.mobile-nav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;bottom:0;left:0;right:0;z-index:12;background:#fff;border-top:1px solid var(--line);padding:7px 5px calc(7px + env(safe-area-inset-bottom));box-shadow:0 -9px 25px #30234c12}.mobile-nav button{min-height:54px;display:grid;align-content:center;justify-items:center;gap:2px;background:none;color:#81788f;font-size:11px;padding:5px 2px;border-radius:12px}.mobile-nav button span{font-size:22px;line-height:1}.mobile-nav button.active{color:var(--deep);background:#f1ecfb}.more-backdrop:not([hidden]){display:block;position:fixed;inset:0;background:#17102575;z-index:13}.more-sheet:not([hidden]){display:grid;position:fixed;left:0;right:0;bottom:0;z-index:14;background:#fff;border-radius:24px 24px 0 0;padding:17px 18px calc(25px + env(safe-area-inset-bottom));box-shadow:0 -12px 40px #2111322e}.sheet-head{display:flex;align-items:center;justify-content:space-between;padding:3px 4px 13px}.sheet-head b{font-size:20px}.sheet-head button{font-size:25px;padding:3px 12px}.more-sheet>[data-tab]{display:flex;align-items:center;gap:15px;background:#fff;color:var(--ink);border-top:1px solid var(--line);border-radius:0;text-align:left;font-size:16px;padding:15px 4px}.more-sheet>[data-tab]>span:last-child{margin-left:auto;color:#a297af}.sheet-icon{width:37px;height:37px;border-radius:11px;background:#f0ebfb;color:#6146ad;display:grid;place-items:center;font-size:21px}.sheet-icon.alert-icon{background:#ffe9ee;color:#b53756;font-weight:900}.cards,.cards.two{grid-template-columns:1fr}.status-card{min-height:0}.hero{min-height:215px;padding:22px}.hero h2{font-size:23px}.hero-mascot{right:4px;width:160px;height:170px}.hero-copy{max-width:68%}.hero:after{right:153px}.quick-actions{grid-template-columns:repeat(3,1fr);gap:8px}.quick-actions button{min-height:81px;display:grid;justify-items:start;gap:3px;padding:10px;font-size:12px}.quick-actions button>span:last-child{display:none}.quick-icon{width:32px;height:32px;flex-basis:32px;font-size:18px}header h1{font-size:25px}.header-right{gap:6px}.header-right select{min-width:100px;max-width:140px}.header-right button{padding:9px;font-size:12px}.welcome-guide{align-items:flex-start;flex-wrap:wrap}.welcome-guide button{margin-left:0}.map-heading{align-items:flex-start;flex-direction:column}.map-surface{height:310px}.sos-layout{grid-template-columns:1fr}.location-row{align-items:flex-start;flex-direction:column}}
@media(max-width:520px){.hero{min-height:255px;align-items:flex-start}.hero-copy{max-width:100%}.hero h2,.hero p{max-width:60%}.hero-mascot{width:153px;height:165px;right:-3px;bottom:-3px}.hero-actions{margin-top:32px}.hero-link{font-size:12px}.hero-battery{font-size:11px}.card{padding:18px}.calendar-card{padding:12px}.calendar-grid{grid-auto-rows:minmax(57px,auto);gap:2px}.calendar-day,.calendar-empty{padding:2px;border-radius:8px}.calendar-day .date-button{width:32px;height:32px;padding:0;min-height:32px;font-size:12px}.calendar-items{display:flex;align-items:center;gap:2px;padding-left:4px;overflow:hidden}.calendar-event{min-height:6px;height:6px;width:6px;flex:0 0 6px;padding:0;border-radius:50%;font-size:0;color:transparent}.calendar-toolbar h3{font-size:17px}.calendar-toolbar{gap:3px}.calendar-toolbar button{padding:7px;min-width:38px}.schedule-tag{display:none}.form-pair{grid-template-columns:1fr}.auth-card{padding:28px}.section-head{align-items:flex-start}.section-head button{flex-shrink:0}.page>.section-head{flex-wrap:wrap}}@media(max-width:360px){.hero-mascot{width:128px}.hero h2,.hero p{max-width:64%}.quick-actions button{font-size:11px;padding:8px}.header-right select{max-width:95px}}
[hidden]{display:none!important}
#app-header{justify-content:space-between;text-align:left}.page>.section-head h2,.page>.section-head>.eyebrow{display:none}.location-map-link{display:inline-flex;margin-top:12px;font-size:13px;font-weight:750;text-decoration:none;background:#f0ebfa;border-radius:10px;padding:8px 11px}.status-card strong{overflow-wrap:anywhere;font-size:20px}
.limit-exceeded { background: #fff0ed; color: #a23946; border-radius: 12px; padding: 10px; }
/* First run guide and focused next action. */
.journey-card{background:linear-gradient(120deg,#f4efff,#fff9e9);border:1px solid #e4d6fd;border-radius:23px;padding:22px 25px;margin-bottom:18px;box-shadow:0 10px 26px #4832920a}
.journey-top{display:flex;justify-content:space-between;align-items:center}.journey-count{font-size:12px;font-weight:800;color:#5b3dab}.journey-track{height:7px;background:#e5dafb;border-radius:99px;margin:11px 0 17px;overflow:hidden}.journey-track span{display:block;width:0;height:100%;background:linear-gradient(90deg,#7652ca,#a56ad7);border-radius:inherit;transition:width .3s}.journey-card h2{font-size:21px;margin:0 0 6px}.journey-card p{font-size:14px;color:#5c5571;margin:0 0 14px;line-height:1.6}.journey-card.complete{background:#eefaf5;border-color:#c7e8d8}.journey-card.complete .journey-track span{background:#39a983}
.tutorial-backdrop{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px;background:#211b3bb3}.tutorial-dialog{width:min(100%,470px);background:#fff;border-radius:28px;padding:30px;box-shadow:0 25px 75px #211b3b55}.tutorial-illustration{display:grid;place-items:center;width:76px;height:76px;border-radius:23px;margin:20px 0;background:#f0e8ff;color:#7350c4;font-size:40px}.tutorial-dialog h2{margin:0 0 10px;font-size:24px;line-height:1.3}.tutorial-dialog p{min-height:80px;line-height:1.75;color:#625c73}.tutorial-dots{display:flex;gap:7px;margin:20px 0}.tutorial-dots span{height:7px;width:7px;background:#e4def0;border-radius:99px}.tutorial-dots span.active{background:#7250be;width:25px}.tutorial-actions{display:flex;justify-content:space-between;gap:10px}.tutorial-actions button{min-height:44px}.header-right{flex-wrap:wrap}
@media(max-width:520px){.journey-card{padding:18px}.tutorial-dialog{padding:23px}.tutorial-dialog h2{font-size:21px}#tutorial-open{font-size:12px;padding:8px}}

.mission-prompts{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 16px}.mission-prompts button{min-height:40px}

.schedule-presets{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 16px}.schedule-presets button{min-height:42px;font-size:13px}
.google-login{display:block;width:100%;background:#fff;color:#493f60;border:1px solid #d9d5e7;margin-top:14px}.google-login[hidden]{display:none}
.google-web-login{display:flex;justify-content:center;min-height:42px}.google-web-login[hidden],#password-confirm-wrap[hidden],#google-setup[hidden]{display:none}.auth-divider{display:flex;align-items:center;gap:12px;color:#80788f;font-size:13px}.auth-divider:before,.auth-divider:after{content:"";height:1px;background:#e5e0ee;flex:1}
