:root{--color-bg:#f2f9fd;--color-surface:#fff;--color-text:#17384d;--color-text-muted:#55738a;--color-primary:#1a78b4;--color-on-primary:#fff;--color-primary-soft:#dff0fb;--color-primary-strong:#0f5f94;--color-accent-soft:#e0f7ef;--color-warn-bg:#fff4d6;--color-warn-text:#7a5300;--color-danger:#b3261e;--color-border:#d3e6f2;--color-focus:#0b5a8c;--space-1:4px;--space-2:8px;--space-3:16px;--space-4:24px;--radius-sm:8px;--radius-md:16px;--radius-pill:999px;--shadow-md:0 8px 24px #1a78b424;--font-size-lg:1.125rem;--font-size-hero:2.5rem;--touch-min:44px;--sidebar-width:240px;--content-max-width:960px;--font-sans:"Pretendard Variable", Pretendard, "Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans KR", system-ui, -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);margin:0;line-height:1.5}:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.page-status,.login__status{padding:var(--space-4) var(--space-3);color:var(--color-text-muted)}.auth-error{padding:var(--space-2) var(--space-3);background:var(--color-warn-bg);color:var(--color-danger);margin:0}.auth-notice{padding:var(--space-2) var(--space-3);background:var(--color-warn-bg);color:var(--color-warn-text);margin:0}.login{justify-content:center;align-items:center;gap:var(--space-3);min-height:100dvh;padding:var(--space-4) var(--space-3);text-align:center;background:radial-gradient(circle at 15% 10%, var(--color-accent-soft), transparent 45%), radial-gradient(circle at 85% 90%, var(--color-primary-soft), transparent 50%), var(--color-bg);flex-direction:column;display:flex}.login__title{font-size:var(--font-size-hero);color:var(--color-primary);letter-spacing:-.02em;margin:0}.login__lead{margin:0 0 var(--space-3);color:var(--color-text-muted)}.login__button{min-height:var(--touch-min);padding:0 var(--space-4);border-radius:var(--radius-pill);background:var(--color-primary);color:var(--color-on-primary);font:inherit;box-shadow:var(--shadow-md);cursor:pointer;border:0;font-weight:600}.login__button:hover{filter:brightness(1.08)}.shell{min-height:100dvh}.shell__header{padding:var(--space-2) var(--space-3);background:var(--color-surface);justify-content:space-between;align-items:center;display:flex}.shell__brand{color:var(--color-primary);font-weight:700;font-size:var(--font-size-lg)}.shell__signout{min-height:var(--touch-min);padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-pill);color:var(--color-text-muted);font:inherit;cursor:pointer;background:0 0}.shell__nav{gap:var(--space-1);padding:var(--space-2);background:var(--color-surface);border-bottom:1px solid var(--color-border);z-index:1;display:flex;position:sticky;top:0;overflow-x:auto}.shell__link{min-height:var(--touch-min);min-width:var(--touch-min);padding:0 var(--space-3);border-radius:var(--radius-pill);color:var(--color-text-muted);flex:1 0 auto;justify-content:center;align-items:center;font-weight:600;text-decoration:none;display:flex}.shell__link[aria-current=page]{background:var(--color-primary-soft);color:var(--color-primary-strong)}.shell__main{padding:var(--space-3)}@media (width>=768px){.shell{grid-template-columns:var(--sidebar-width) 1fr;grid-template-rows:auto auto 1fr;grid-template-areas:"hint hint""header main""nav main";display:grid}.install-hint{grid-area:hint}.shell__header{padding:var(--space-4) var(--space-3) var(--space-2);border-right:1px solid var(--color-border);grid-area:header}.shell__nav{padding:var(--space-2) var(--space-3);border-bottom:0;border-right:1px solid var(--color-border);flex-direction:column;grid-area:nav;align-content:start;position:static;overflow:visible}.shell__link{border-radius:var(--radius-md);flex:none;justify-content:flex-start}.shell__main{padding:var(--space-4);max-width:var(--content-max-width);grid-area:main}}.sync-status{align-items:center;gap:var(--space-2);margin:0 var(--space-2);color:var(--color-warn-text);flex-wrap:wrap;flex:1;display:flex}.sync-status__text{gap:var(--space-2);flex-wrap:wrap;margin:0;display:flex}.sync-status__done{color:var(--color-primary-strong)}.sync-status button{min-height:var(--touch-min);padding:0 var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-warn-bg);color:var(--color-warn-text);font:inherit;cursor:pointer}.failed-uploads{flex-basis:100%}.failed-uploads__list{margin:0;padding:0;list-style:none}.failed-uploads__item{align-items:center;gap:var(--space-2);padding:var(--space-1) 0;flex-wrap:wrap;display:flex}.failed-uploads__label{font-weight:700}.failed-uploads__error{color:var(--color-danger)}.install-hint{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-accent-soft);color:var(--color-text);flex-wrap:wrap;display:flex}.install-hint__text{flex:1;margin:0}.install-hint button{min-height:var(--touch-min);padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-primary-strong);font:inherit;cursor:pointer}.trips{gap:var(--space-3);max-width:var(--content-max-width);display:grid}.trips__list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.trips__card{gap:var(--space-1);min-height:var(--touch-min);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);text-decoration:none;display:grid}.trips__dates{color:var(--color-text-muted)}.trips__badge{padding:0 var(--space-2);border-radius:var(--radius-pill);background:var(--color-primary-soft);color:var(--color-primary-strong);justify-self:start}.trips__button{min-height:var(--touch-min);padding:0 var(--space-3);border-radius:var(--radius-pill);background:var(--color-primary);color:var(--color-on-primary);font:inherit;cursor:pointer;border:0;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.trips__panel{padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-md)}.trips__day{color:var(--color-primary-strong);font-size:var(--font-size-lg);margin:0}.trips__form label{gap:var(--space-1);display:grid}.trips__form input,.trips__form select,.trips__form fieldset button{min-height:var(--touch-min);font:inherit}.trips__chips{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.trips__row{gap:var(--space-2);margin-bottom:var(--space-2);display:flex}[role=alert]{color:var(--color-danger)}.expenses,.expense-summary{gap:var(--space-3);max-width:var(--content-max-width);display:grid}.expense-form,.expense-block{gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);display:grid}.expense-block h2,.expense-block h3{font-size:var(--font-size-lg);margin:0}.expense-block ul{padding-left:var(--space-3);margin:0}.expense-form__field{gap:var(--space-1);border:0;margin:0;padding:0;display:grid}.expense-form input:not([type=checkbox]),.expense-form select{min-height:var(--touch-min);padding:0 var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);font:inherit}.expense-form__categories{gap:var(--space-2);grid-template-columns:repeat(3,1fr);display:grid}.expense-form button,.expenses__add,.expense-row button{min-height:var(--touch-min);padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font:inherit}.expense-form button[aria-pressed=true],.expense-form__actions button[type=submit],.expenses__add{background:var(--color-primary);color:var(--color-on-primary);border-color:var(--color-primary)}.expense-form button:disabled{opacity:.5}.expense-form__check{align-items:center;gap:var(--space-2);min-height:var(--touch-min);display:flex}.expense-form__actions{gap:var(--space-2);display:flex}.expense-form__error{color:var(--color-danger);margin:0}.expense-form__rate{color:var(--color-text-muted)}.expense-list{gap:var(--space-2);padding:0;list-style:none;display:grid}.expense-row{justify-content:space-between;gap:var(--space-2);display:flex}.expense-row__sub{color:var(--color-text-muted)}.expense-row__actions{gap:var(--space-1);display:flex}.expense-badge{margin-left:var(--space-2);padding:0 var(--space-2);border-radius:var(--radius-pill);background:var(--color-warn-bg);color:var(--color-warn-text)}.place-picker{gap:var(--space-2);display:grid}.place-picker label{gap:var(--space-1);display:grid}.place-picker input,.place-picker select,.place-picker button{min-height:var(--touch-min);font:inherit}.place-picker__results{gap:var(--space-2);padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);display:grid}.place-picker__results ul{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}.place-picker__results small{color:var(--color-text-muted)}.schedule{gap:var(--space-3);max-width:var(--content-max-width);display:grid}.schedule-day{gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);display:grid}.schedule-day h2{font-size:var(--font-size-lg);margin:0}.schedule-day__list{min-height:var(--touch-min);gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.schedule-day__empty{color:var(--color-text-muted);margin:0}.schedule-item{grid-template-columns:var(--touch-min) 1fr;gap:var(--space-2);padding:var(--space-2);border-radius:var(--radius-sm);background:var(--color-bg);align-items:start;display:grid}.schedule-item--done .schedule-item__body{color:var(--color-text-muted)}.schedule-item__handle{min-width:var(--touch-min);min-height:var(--touch-min);color:var(--color-text-muted);font-size:var(--font-size-lg);cursor:grab;touch-action:none;background:0 0;border:0}.schedule-item__body{gap:var(--space-1);display:grid}.schedule-item__place,.schedule-item__memo{color:var(--color-text-muted)}.schedule-item__actions{gap:var(--space-2);flex-wrap:wrap;grid-column:2;display:flex}.schedule-item__actions button[aria-pressed=true]{background:var(--color-accent-soft);font-weight:700}.schedule-item__actions button,.schedule-day__add,.schedule-form button,.schedule-form input,.schedule-form textarea{min-height:var(--touch-min);padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text);font:inherit}.schedule-form input,.schedule-form textarea{border-radius:var(--radius-sm);padding:var(--space-2)}.schedule-form{gap:var(--space-3);margin-top:var(--space-2);padding:var(--space-3);border:2px solid var(--color-primary);border-radius:var(--radius-md);background:var(--color-surface);display:grid}.schedule-form label{gap:var(--space-1);display:grid}.schedule-form__actions{gap:var(--space-2);display:flex}.schedule-form__actions button[type=submit]{background:var(--color-primary);color:var(--color-on-primary)}
