:root{--color-ground:#bfd6f2;--color-window:#f1efe6;--color-card:#fff;--color-card-border:#9fb6d6;--color-text:#1b1b1b;--color-subtext:#6b7280;--color-accent:#e2557f;--color-title-from:#3d8bff;--color-title-mid:#1f66e6;--color-title-to:#0f52d4;--color-window-border:#0a3fae;--color-button-border:#2b5a9a;--color-notice-bg:#fff8d8;--color-notice-border:#e3c96a;--color-progress-from:#acedad;--color-progress-mid:#37b33b;--color-progress-to:#2c9a30;--font-body:"Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, system-ui, "Apple SD Gothic Neo", "Noto Sans KR", sans-serif;--radius-window:12px;--radius-card:10px;--radius-button:6px;--tap-min:44px}*,:before,:after{box-sizing:border-box}html,body{background:var(--color-ground);color:var(--color-text);font-family:var(--font-body);-webkit-text-size-adjust:100%;margin:0}.page{max-width:440px;min-height:100dvh;margin:0 auto;padding:20px 14px 28px}.page--tabs{padding-bottom:96px}.loading{text-align:center;color:var(--color-subtext);margin-top:30vh}.xp-window{border:1px solid var(--color-window-border);border-radius:var(--radius-window) var(--radius-window) var(--radius-card) var(--radius-card);background:var(--color-window);overflow:hidden;box-shadow:0 10px 30px #0a286e40}.xp-titlebar{color:#fff;background:linear-gradient(var(--color-title-from), var(--color-title-mid) 45%, var(--color-title-to));align-items:center;gap:7px;min-height:38px;padding:0 6px 0 12px;display:flex}.xp-title{text-shadow:0 1px #00000059;white-space:nowrap;text-overflow:ellipsis;flex:1;margin:0;font-size:14px;font-weight:700;overflow:hidden}.title-action{cursor:pointer;background:linear-gradient(#5d9bff,#2a6ae6);border:1px solid #ffffffd9;border-radius:5px;justify-content:center;align-items:center;min-width:44px;min-height:34px;display:inline-flex}.xp-body{flex-direction:column;gap:10px;padding:12px;display:flex}.xp-card{background:var(--color-card);border:1px solid var(--color-card-border);border-radius:var(--radius-card);padding:14px}.hand{letter-spacing:-.01em;font-weight:700}.big-hand{color:var(--color-title-to);margin:0;font-size:17px;line-height:1.45}.lead{margin:0;font-size:18px;font-weight:800}.lead-sub{color:var(--color-title-to);margin:6px 0 0;font-size:15px;line-height:1.5}.lead-small{margin:0;font-size:15px;font-weight:800}.fine{color:var(--color-subtext);margin:0;font-size:12.5px;line-height:1.5}.accent{color:var(--color-accent)}.center{text-align:center}.pad{padding:8px 12px}.stack{flex-direction:column;gap:10px;display:flex}.row{gap:8px;display:flex}.grow{flex:1}.full{width:100%;margin-top:10px}.xp-button{min-height:var(--tap-min);font:inherit;color:var(--color-text);border:1px solid var(--color-button-border);border-radius:var(--radius-button);cursor:pointer;background:linear-gradient(#fff,#e9eef6 60%,#d7e0ee);padding:0 14px;font-size:14px}.xp-button:active:not(:disabled){background:linear-gradient(#dbe8fb,#c3d8f6)}.xp-button:disabled{opacity:.55;cursor:default}.xp-button:focus-visible,.option:focus-visible,.tab:focus-visible,.link-button:focus-visible,.title-action:focus-visible{outline:2px dotted var(--color-text);outline-offset:2px}.xp-button--primary{border-color:var(--color-title-to);font-weight:800;box-shadow:inset 0 0 0 1px #8fb6f2,inset 0 0 0 2px #c6dafa}.xp-button--accent{color:var(--color-accent);font-weight:800}.xp-button--danger{color:#b42318;border-color:#b42318;font-weight:800}.link-button{min-height:40px;font:inherit;color:var(--color-title-to);cursor:pointer;background:0 0;border:0;padding:10px 12px;font-size:13px;text-decoration:underline}.field-label{color:#2a3b57;margin-bottom:6px;font-size:13px;font-weight:800;display:block}.xp-input{width:100%;min-height:44px;font:inherit;color:var(--color-text);background:#fff;border:1px solid #7f9db9;border-radius:4px;padding:0 10px;font-size:16px}.pin-input{letter-spacing:.6em;text-align:center;font-size:22px}.progress{flex-direction:column;gap:5px;display:flex}.progress__label{justify-content:space-between;font-size:13px;display:flex}.progress__label b{color:var(--color-title-to)}.progress__track{background:#fff;border:1px solid #7f9db9;border-radius:4px;gap:2px;height:18px;padding:2px;display:flex}.progress__block{border-radius:1px;flex:1}.progress__block--on{background:linear-gradient(var(--color-progress-from), var(--color-progress-mid) 50%, var(--color-progress-to))}.progress-card{padding:10px 14px}.question{padding:0;overflow:hidden}.question__head{background:linear-gradient(#f7f9fd,#e8eef8);border-bottom:1px solid #c9d6ea;padding:14px 14px 10px}.question__num{color:var(--color-accent);font-size:12px;font-weight:800}.question__text{margin:4px 0 0;font-size:18px;font-weight:800;line-height:1.4}.question__hint{color:var(--color-subtext);margin:4px 0 0;font-size:13px;font-weight:400}.option{width:100%;min-height:52px;font:inherit;text-align:left;color:var(--color-text);cursor:pointer;background:#fff;border:0;border-top:1px solid #eef2f8;align-items:center;gap:10px;padding:0 14px;font-size:16px;display:flex}.option:first-of-type{border-top:0}.option--on{background:var(--color-notice-bg);font-weight:800}.option__mark{color:var(--color-title-to);font-weight:800}.notice{border-radius:var(--radius-card);background:var(--color-notice-bg);border:1px solid var(--color-notice-border);padding:10px 12px;font-size:14px;line-height:1.45}.notice--warn{background:#fff4e5;border-color:#f0b46a}.notice--error{color:#8a1c1c;background:#fdecec;border-color:#e5a0a0}.today{color:#55627a;justify-content:flex-end;align-items:center;gap:8px;font-size:12px;display:flex}.today b{font-size:14px}.today__bar{background:#b9c4d6;width:1px;height:10px}.profile{align-items:center;gap:12px;display:flex}.profile__photo{width:62px;height:62px;color:var(--color-accent);background:#fde3ec;border:1px solid #f3b6c9;border-radius:10px;flex:none;justify-content:center;align-items:center;display:flex}.profile__text{flex-direction:column;gap:4px;min-width:0;display:flex}.profile__name{font-size:17px;font-weight:800}.profile__status{color:var(--color-title-to);overflow-wrap:anywhere;font-size:15px;line-height:1.4}.editable{flex-direction:column;align-items:stretch;display:flex}.editable__btn{align-self:flex-end}.list-card{padding:0;overflow:hidden}.list-card__head{background:linear-gradient(#f7f9fd,#e8eef8);border-bottom:1px solid #c9d6ea;justify-content:space-between;align-items:center;padding:10px 12px;font-size:14px;font-weight:800;display:flex}.answer-list{margin:0;padding:0;list-style:none}.answer-list li{border-top:1px solid #eef2f8;flex-direction:column;gap:2px;padding:9px 12px;display:flex}.answer-list li:first-child{border-top:0}.answer-list__q{font-size:13.5px;line-height:1.4}.answer-list__a{color:var(--color-accent);font-size:14.5px}.badge{color:#fff;background:var(--color-title-to);vertical-align:1px;border-radius:999px;margin-right:6px;padding:1px 6px;font-size:10.5px;font-weight:800;display:inline-block}.sample{font-size:14px;line-height:1.9}.sample__pick{color:var(--color-accent);font-size:14px}.confirm{border:1px dashed var(--color-button-border);border-radius:var(--radius-button);flex-direction:column;gap:8px;padding:10px;display:flex}.confirm--danger{border-color:#b42318}.tabbar{padding:4px 8px calc(8px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #d5dce8;justify-content:center;gap:4px;display:flex;position:fixed;bottom:0;left:0;right:0}.tab{max-width:140px;min-height:56px;font:inherit;color:#55627a;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;font-size:11px;display:flex}.tab--on{color:var(--color-title-to);font-weight:800}.dialog-backdrop{z-index:10;background:#0a1e4659;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.dialog{width:100%;max-width:360px}.theme-grid{background:var(--color-card);border:1px solid var(--color-card-border);border-radius:var(--radius-card);grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.theme-cell{min-height:48px;font:inherit;color:var(--color-text);text-align:left;background:0 0;border:0;justify-content:space-between;align-items:baseline;gap:6px;padding:12px 14px;font-size:14px;display:flex}.theme-cell+.theme-cell{border-left:1px dashed #c9d6ea}button.theme-cell{cursor:pointer}.theme-cell__name{color:var(--color-title-to);font-weight:800}.theme-cell__count b{color:var(--color-accent)}.theme-cell__count{color:var(--color-subtext);font-size:13px}.theme-pick{text-align:left;width:100%;font:inherit;color:var(--color-text);border:1px solid var(--color-card-border);border-radius:var(--radius-card);cursor:pointer;background:#fff;flex-direction:column;gap:4px;padding:14px;display:flex}.theme-pick--on{border-color:var(--color-title-to);background:#f2f7ff;box-shadow:inset 0 0 0 1px #8fb6f2}.theme-pick__name{font-size:16px;font-weight:800}.theme-pick__blurb{color:var(--color-subtext);font-size:13px}.answer-group{color:var(--color-title-to);background:#f7f9fd;border-top:1px solid #eef2f8;padding:8px 12px 4px;font-size:12px;font-weight:800}.miniroom{background:var(--color-card);border:1px solid var(--color-card-border);border-radius:var(--radius-card);overflow:hidden}.miniroom__head{color:var(--color-title-to);justify-content:space-between;align-items:center;padding:10px 12px;font-size:14px;font-weight:800;display:flex}.miniroom__stage{aspect-ratio:16/10;background:linear-gradient(#0000 58%,#fff0 58%),repeating-linear-gradient(45deg,#f6dfe7 0 10px,#f9e8ee 10px 20px) bottom/100% 42% no-repeat,linear-gradient(#fdf1f5,#fbe6ee) top/100% 58% no-repeat;border:1px solid #f0c9d7;border-radius:6px;justify-content:center;align-items:flex-end;margin:0 10px 10px;display:flex}.miniroom__note{color:var(--color-subtext);background:#ffffffd9;border-radius:999px;margin-bottom:10px;padding:4px 10px;font-size:12px}.shelf{flex-direction:column;gap:8px;display:flex}.shelf__item{min-height:56px;font:inherit;text-align:left;color:var(--color-text);border:1px solid var(--color-card-border);border-radius:var(--radius-card);cursor:pointer;background:#fff;justify-content:space-between;align-items:center;gap:8px;padding:12px 14px;display:flex}.shelf__item:disabled{cursor:default;opacity:.6}.shelf__title{font-size:15px;font-weight:800}.shelf__meta{color:var(--color-subtext);flex:none;font-size:13px}.back-row{align-items:center;gap:8px;display:flex}
