:root{
  --v15-navy:#071a35;--v15-blue:#087f9d;--v15-teal:#0788a5;--v15-line:#dfe6ef;
  --v15-card:#fff;--v15-text:#122033;--v15-sub:#64748b;--v15-radius:14px;
  --v15-shadow:0 8px 24px rgb(16 42 74 / 7%);--v15-safe-bottom:env(safe-area-inset-bottom,0px);
}

/* v170 Claude Design tokens. Stage 1 is declaration-only: no existing selector uses these yet. */
:root{
  --gn-bg:#f7f9fb;
  --gn-bg-soft:#e5f6ff;
  --gn-surface:#fbfcfd;
  --gn-surface-soft:#eef4fa;
  --gn-text:#12304d;
  --gn-text-muted:#4a6178;
  --gn-text-quiet:#5b7186;
  --gn-number:#0a2540;
  --gn-navy:#0a2540;
  --gn-tone-quiet:#93a6b8;
  --gn-accent:#0b7ec7;
  --gn-warning:#c2570f;
  --gn-accent-text:#0874b8;
  --gn-warning-text:#b94f0b;
  --gn-hairline:rgb(18 48 77 / 7%);
  --gn-primary-bg:#0a2540;
  --gn-primary-fg:#f2f7fb;
  --gn-on-photo:#f2f7fb;
  --gn-chip-base:#0a2540;
  --gn-chip-tint:rgb(242 247 251 / 10%);
  --gn-chip-border:rgb(242 247 251 / 30%);
  --gn-shadow-surface:0 18px 44px rgb(18 48 77 / 13%),0 4px 14px rgb(18 48 77 / 5%);
  --gn-photo-filter:saturate(.55) contrast(.92) brightness(.95);
  --gn-photo-overlay:rgb(10 37 64 / 12%);
  --gn-font-sans:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic UI","Yu Gothic",Meiryo,sans-serif;
  --gn-font-mincho:"Yu Mincho",YuMincho,"Hiragino Mincho ProN","Hiragino Mincho Pro","Noto Serif JP",serif;
  --gn-label-tracking:.28em;
  --gn-number-variant:tabular-nums;
  --gn-main-action-height:62px;
  --gn-control-height:44px;
  --gn-main-action-radius:31px;
  --gn-safe-bottom:env(safe-area-inset-bottom,0px);
}

@media (prefers-color-scheme:dark) and (prefers-color-scheme:light){
  :root{
    --gn-bg:#06172a;
    --gn-bg-soft:#0c2136;
    --gn-surface:#0c2136;
    --gn-surface-soft:#12304d;
    --gn-text:#eaf3fa;
    --gn-text-muted:#9db4c8;
    --gn-text-quiet:#8299af;
    --gn-number:#f2f7fb;
    --gn-navy:#12304d;
    --gn-tone-quiet:#6c8299;
    --gn-accent:#2f9ce0;
    --gn-warning:#e08b4a;
    --gn-accent-text:#309de2;
    --gn-warning-text:#e08b4a;
    --gn-hairline:rgb(234 243 250 / 10%);
    --gn-primary-bg:#eaf3fa;
    --gn-primary-fg:#06172a;
    --gn-on-photo:#f2f7fb;
    --gn-chip-base:#0c2136;
    --gn-chip-tint:rgb(234 243 250 / 12%);
    --gn-chip-border:rgb(242 247 251 / 30%);
    --gn-shadow-surface:none;
    --gn-photo-filter:saturate(.55) contrast(.92) brightness(.95);
    --gn-photo-overlay:rgb(6 23 42 / 28%);
    --gn-font-sans:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic UI","Yu Gothic",Meiryo,sans-serif;
    --gn-font-mincho:"Yu Mincho",YuMincho,"Hiragino Mincho ProN","Hiragino Mincho Pro","Noto Serif JP",serif;
    --gn-label-tracking:.28em;
    --gn-number-variant:tabular-nums;
    --gn-main-action-height:62px;
    --gn-control-height:44px;
    --gn-main-action-radius:31px;
    --gn-safe-bottom:env(safe-area-inset-bottom,0px);
  }
}
.v15-card{background:var(--v15-card);border:1px solid var(--v15-line);border-radius:var(--v15-radius);box-shadow:var(--v15-shadow);padding:16px}
.v15-card h3{margin:0 0 10px;font-size:15px;color:var(--v15-text)}
.v15-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0 18px}
.v15-action-card{width:100%;min-height:76px;border:1px solid var(--v15-line);border-radius:14px;background:#fff;color:var(--v15-text);
  display:grid;grid-template-columns:38px minmax(0,1fr) 14px;align-items:center;gap:10px;text-align:left;padding:12px;box-shadow:0 3px 12px rgb(16 42 74 / 5%)}
.v15-action-card:active{transform:scale(.98)}.v15-action-card b{display:block;font-size:14px}.v15-action-card small{display:block;color:var(--v15-sub);font-size:11px;margin-top:2px}
.v15-action-icon{width:38px;height:38px;border-radius:11px;background:#e6f7fa;color:#087f9d;display:grid;place-items:center;font-size:19px;font-weight:800}
.v15-action-card>i{color:#8ca0b8;font-style:normal;font-size:20px}
.v15-stat{min-height:88px;border:1px solid var(--v15-line);border-radius:13px;background:#fff;padding:13px;text-align:left}
.v15-stat span{display:block;color:var(--v15-sub);font-size:12px}.v15-stat b{display:block;color:var(--v15-text);font-size:25px;margin-top:4px}
.v15-status{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:800}
.v15-status i{font-style:normal}.tone-blue{background:#e6f0ff;color:#185cb3}.tone-green{background:#e3f5eb;color:#087a55}
.tone-amber{background:#fff2d9;color:#9a5b00}.tone-red{background:#ffe7ea;color:#c42b42}
.tone-gray{background:#edf1f5;color:#5f6f83}.tone-violet{background:#f0eafd;color:#6d28d9}.tone-teal{background:#e1f7f4;color:#08786c}
.v15-empty,.v15-error{padding:28px 14px;text-align:center;border-radius:12px;color:var(--v15-sub);background:#f7f9fc}
.v15-error{background:#fff0f2;color:#b4233b}.v15-skeleton{height:72px;border-radius:12px;background:linear-gradient(90deg,#edf1f6,#f8fafc,#edf1f6);background-size:200% 100%;animation:v15-shimmer 1.2s infinite}
@keyframes v15-shimmer{to{background-position:-200% 0}}
.v15-pagination{display:flex;align-items:center;justify-content:center;gap:12px;margin:16px 0}.v15-pagination button{min-height:38px;padding:7px 14px;border:1px solid var(--v15-line);border-radius:9px;background:#fff}.v15-pagination button:disabled{opacity:.45}
.v15-segments{display:flex;gap:5px;padding:4px;background:#edf2f7;border-radius:11px;margin:12px 0}.v15-segments button{flex:1;min-height:38px;border:0;border-radius:8px;background:transparent;font-weight:700;color:#5d6d82}.v15-segments button[aria-selected=true]{background:#fff;color:#087f9d;box-shadow:0 2px 8px rgb(16 42 74 / 8%)}
.v15-modal{position:fixed;inset:0;z-index:900;background:rgb(7 26 53 / 48%);display:grid;place-items:end center}.v15-modal[hidden]{display:none}
.v15-modal-card{width:min(680px,100%);max-height:92dvh;overflow:auto;background:#fff;border-radius:20px 20px 0 0;padding:20px 18px calc(20px + var(--v15-safe-bottom));box-shadow:0 -12px 44px rgb(7 26 53 / 24%)}
.v15-modal-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}.v15-modal-head h2{font-size:19px;margin:0}.v15-modal-head button{margin-left:auto;border:0;background:#edf2f7;border-radius:999px;width:36px;height:36px}
.v15-field{display:block;margin:12px 0}.v15-field>span{display:block;font-size:12px;font-weight:800;color:#53657c;margin-bottom:4px}.v15-field input,.v15-field textarea,.v15-field select{width:100%}
.v15-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.v15-check-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.v15-check-grid label{display:flex;align-items:center;gap:5px;border:1px solid var(--v15-line);border-radius:9px;padding:8px;background:#fff}
.v15-today-plan{width:100%;border:1px solid #d7e8f0;border-radius:14px;background:linear-gradient(135deg,#f2fbfc,#fff);padding:15px;text-align:left;margin:10px 0 16px}.v15-today-plan small{display:block;color:#087f9d;font-weight:800}.v15-today-plan span{display:grid;gap:3px;margin-top:5px}.v15-today-plan b{display:block;color:var(--v15-text);font-size:15px}.v15-today-plan b.is-complete{color:var(--v15-sub);text-decoration:line-through}.v15-today-plan em{color:var(--v15-sub);font-size:12px;font-style:normal;font-weight:750}
.v15-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(34px,1fr));gap:5px}.v15-calendar-day{position:relative;min-height:52px;border:1px solid var(--v15-line);border-radius:9px;background:#fff;padding:5px;text-align:center}.v15-calendar-day.holiday{background:#fff3e6}.v15-calendar-day.has-note::after{content:'';position:absolute;bottom:5px;left:50%;width:6px;height:6px;border-radius:50%;background:#087f9d;transform:translateX(-50%)}
.v15-maintenance{position:sticky;top:0;z-index:800;padding:11px 16px;background:#fff1d6;color:#7b4800;border-bottom:1px solid #f0c26b;text-align:center;font-weight:800}
.v15-privacy-note{font-size:12px;color:#6b7280;background:#f5f7fa;border:1px solid var(--v15-line);border-radius:10px;padding:10px}
@media(min-width:620px){.v15-action-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.v15-modal{place-items:center}.v15-modal-card{border-radius:18px;max-width:680px}}
@media(max-width:460px){.v15-form-grid{grid-template-columns:1fr}.v15-check-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.v15-action-card:active{transform:none}.v15-skeleton{animation:none}}
