:root{color:#16302f;font-synthesis:none;text-rendering:optimizelegibility;background:#f5f7f2;font-family:Inter,Noto Sans JP,Yu Gothic UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 85% 12%,#f4d35e52,#0000 28rem),#f5f7f2;min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}.app-shell{width:min(100% - 32px,720px);padding:max(32px, env(safe-area-inset-top)) 0 max(40px, env(safe-area-inset-bottom));margin-inline:auto}.app-status-stack:not(:empty){gap:8px;margin-bottom:16px;display:grid}.app-notice{border-radius:12px;margin:0;padding:10px 14px;font-size:.86rem;font-weight:700;line-height:1.5}.app-toggle{color:#16302f;background:#eef3f1;border-radius:12px;align-items:center;gap:8px;width:-moz-fit-content;width:fit-content;padding:8px 14px;font-size:.86rem;font-weight:700;display:flex}.app-notice-offline{color:#394b49;background:#e1e7e4;width:-moz-fit-content;width:fit-content}.app-notice-update{color:#563f00;background:#fff0b8;justify-content:space-between;align-items:center;gap:12px;display:flex}.notice-button{color:#563f00;cursor:pointer;background:#fff;border:1px solid #745a00;border-radius:999px;flex:none;padding:7px 12px;font-weight:800}.hero{padding:24px 4px 32px}.eyebrow{color:#116466;letter-spacing:.12em;text-transform:uppercase;margin:0 0 12px;font-size:.75rem;font-weight:800}h1,h2,p{margin-top:0}h1{letter-spacing:-.045em;margin-bottom:20px;font-size:clamp(2.2rem,11vw,4.5rem);line-height:1.02}.lead{color:#49615f;max-width:34rem;margin-bottom:0;line-height:1.8}.status-card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffdb;border:1px solid #1164662e;border-radius:24px;padding:24px;box-shadow:0 18px 50px #16302f1a}.status-badge{color:#0a484a;background:#cce8df;border-radius:999px;margin-bottom:16px;padding:6px 10px;font-size:.78rem;font-weight:800;display:inline-flex}h2{margin-bottom:12px;font-size:1.35rem}.status-card>p{color:#49615f;line-height:1.7}.limits{background:#dce5df;border:1px solid #dce5df;border-radius:14px;gap:1px;margin:24px 0 0;display:grid;overflow:hidden}.limits div{background:#fff;justify-content:space-between;gap:16px;padding:13px 16px;display:flex}.limits dt{color:#5d716e}.limits dd{margin:0;font-weight:800}.card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffdb;border:1px solid #1164662e;border-radius:24px;padding:24px;box-shadow:0 18px 50px #16302f1a}.card h2{font-size:1.35rem}.lead-small{color:#49615f;margin-bottom:20px;line-height:1.6}.field-grid{grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:16px;display:grid}.field{color:#49615f;flex-direction:column;gap:6px;font-size:.85rem;display:flex}.field input{border:1px solid #cfdbd6;border-radius:10px;padding:10px 12px;font-size:1rem}.total-line{color:#16302f;margin:4px 0 8px}.checkbox-field{flex-direction:row;align-items:center;gap:10px;margin:4px 0 12px}.checkbox-field[hidden]{display:none}.checkbox-field input{width:18px;height:18px}.error-line{color:#b3261e;margin:0 0 12px;font-weight:700}.warning-line{color:#8a5a00;margin:0 0 12px;font-weight:700}.level-h{color:#c62828;font-weight:700}.level-l{color:#2e7d32;font-weight:700}.primary-button,.secondary-button,.link-button{cursor:pointer;border:none;border-radius:999px}.primary-button{color:#fff;background:#116466;width:100%;padding:14px 20px;font-size:1rem;font-weight:800}.secondary-button{color:#116466;background:0 0;border:1px solid #116466;width:100%;padding:14px 20px;font-size:1rem;font-weight:700}.link-button{color:#116466;background:0 0;padding:6px 4px;font-size:.85rem;font-weight:700;text-decoration:underline}.link-button:disabled{color:#9fb0ad;cursor:not-allowed;text-decoration:none}.button-row{flex-direction:column;gap:10px;margin:16px 0;display:flex}.chip-row{align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.chip-row-label{color:#49615f;min-width:1.4em;padding-top:8px;font-weight:800}.chip-list{flex-wrap:wrap;gap:8px;display:flex}.chip-empty{color:#9fb0ad;padding-top:8px}.chip{background:#fff;border:1px solid #cfdbd6;border-radius:999px;padding:8px 14px;font-weight:700}.chip-selected{color:#0a484a;background:#cce8df;border-color:#116466}.chip-badge{opacity:.8;margin-left:4px;font-size:.72rem}.chip-muted{color:#9fb0ad;background:#f2f5f2;border-color:#dce5df}.chip-add{color:#116466;background:0 0;border-style:dashed}.diff-title{color:#16302f;margin:16px 0 4px;font-weight:800}.diff-block{margin-bottom:8px}.diff-list{color:#49615f;margin:0;padding-left:1.2em}.swap-chip{font:inherit;cursor:pointer;background:#fff;border:1px solid #cfdbd6;border-radius:999px;padding:4px 10px;font-weight:700}.swap-chip-from{color:#0a484a;background:#cce8df;border-color:#116466}.swap-chip-to{color:#b3261e;background:#fbe4e2;border-color:#b3261e}.tsv-textarea{color:#16302f;resize:vertical;background:#fff;border:1px solid #cfdbd6;border-radius:10px;width:100%;margin-top:8px;padding:10px 12px;font-family:monospace;font-size:.85rem}.generating-timer{margin:20px 0;font-size:1.6rem;font-weight:800}.round-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px;display:flex}.round-number{font-size:1.4rem;font-weight:800}.round-menu{flex-wrap:wrap;gap:12px;display:flex}.court-list{gap:12px;margin-bottom:20px;display:grid}.court-card{background:#fff;border:1px solid #dce5df;border-radius:16px;padding:14px 16px}.court-card-muted{color:#9fb0ad;background:#f2f5f2}.court-title{margin-bottom:4px;font-weight:800}.court-detail{margin:0;font-size:1.05rem}.round-footer-line{color:#49615f;margin:0 0 10px}.round-list{gap:10px;display:grid}.round-item{background:#fff;border:1px solid #dce5df;border-radius:16px;padding:12px 16px}.round-item summary{cursor:pointer;justify-content:space-between;align-items:center;font-weight:800;display:flex}.round-item-body{margin-top:10px}.round-item-line{color:#49615f;margin:4px 0}.status-badge-completed{color:#49615f;background:#dce5df}.status-badge-current{color:#0a484a;background:#cce8df}.status-badge-planned{color:#7a5b00;background:#f4d35e52}@media (min-width:640px){.app-shell{padding-top:64px}.status-card,.card{padding:32px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
