@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+JP:wght@400;500;600;700&family=Outfit:wght@500;600;700&display=swap";:root{--color-primary:#2f6f5e;--color-primary-dark:#245749;--color-primary-soft:#eaf3f0;--color-accent:#c8933a;--color-accent-soft:#fbf4e6;--color-background:#f7f8f6;--color-surface:#fff;--color-surface-muted:#f1f3f1;--color-text:#24312d;--color-text-muted:#68736f;--color-border:#d9dfdc;--color-success:#377a5e;--color-warning:#b27a20;--color-danger:#b84a4a;--color-info:#447aa1;--radius-sm:8px;--radius-md:14px;--radius-lg:20px;--shadow-sm:0 1px 3px #14282014;--shadow-md:0 8px 24px #1428201a;--motion-fast:.2s;--motion-ease:cubic-bezier(.4, 0, .2, 1);--brand:var(--color-primary);--brand-deep:var(--color-primary-dark);--accent:var(--color-accent);--accent-dark:#9a7028;--ink:var(--color-text);--ink-soft:var(--color-text-muted);--muted:var(--color-text-muted);--surface:var(--color-surface);--surface-strong:var(--color-surface);--line:var(--color-border);--ok:var(--color-success);--danger:var(--color-danger);--warn:var(--color-warning);--focus:var(--color-primary);--chart-1:var(--color-primary);--chart-2:color-mix(in srgb, var(--color-primary) 78%, white);--chart-3:color-mix(in srgb, var(--color-primary) 58%, white);--chart-4:color-mix(in srgb, var(--color-primary) 42%, white);--chart-5:color-mix(in srgb, var(--color-primary) 28%, white);--chart-6:color-mix(in srgb, var(--color-primary) 18%, white);--radius:var(--radius-md);--shadow:var(--shadow-md);--font-brand:"Outfit", "IBM Plex Sans JP", sans-serif;--font-body:"IBM Plex Sans JP", sans-serif;color:var(--color-text);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.55}*,:before,:after{box-sizing:border-box}html,body,#app{min-height:100%}body{min-height:100svh;color:var(--color-text);background:var(--color-background);margin:0}#app{min-height:100svh}a{color:var(--color-primary);text-underline-offset:3px;text-decoration-thickness:1.5px}a:hover{color:var(--color-primary-dark)}h1,h2,h3{color:var(--color-text);margin:0;font-weight:700;line-height:1.25}p{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}img{max-width:100%;display:block}:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.app-shell{width:min(1120px,100% - 2rem);margin:0 auto;padding:1.25rem 0 3rem}.brand-mark{font-family:var(--font-brand);letter-spacing:.02em;color:var(--color-primary);font-weight:700}.page-title{margin-bottom:.35rem;font-size:clamp(1.6rem,2.4vw,2.1rem)}.page-lead{color:var(--color-text-muted);margin-bottom:1.5rem}.stack{flex-direction:column;gap:1rem;display:flex}.row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:1.25rem 1.35rem}.panel-title{margin-bottom:.75rem;font-size:1.05rem}.muted{color:var(--color-text-muted)}.btn{appearance:none;border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;min-height:44px;transition:background var(--motion-fast) var(--motion-ease), border-color var(--motion-fast) var(--motion-ease), opacity var(--motion-fast) var(--motion-ease);border:2px solid #0000;padding:.55rem 1rem;font-weight:600}.btn:hover:not(:disabled){background:var(--color-primary-dark)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-accent{background:var(--color-accent);color:#2a2010}.btn-accent:hover:not(:disabled){color:#fff;background:#b07f2f}.btn-ghost{color:var(--color-primary);border-color:var(--color-primary);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--color-primary-soft)}.btn-danger{background:var(--color-danger)}.btn-lg{min-height:56px;padding:.75rem 1.25rem;font-size:1.05rem}.field{flex-direction:column;gap:.35rem;display:flex}.field label{color:var(--color-text-muted);font-weight:600}.field input,.field select,.field textarea{border:2px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:100%;min-height:44px;color:var(--color-text);padding:.55rem .75rem}.field textarea{resize:vertical;min-height:96px}.table-wrap{overflow-x:auto}table.data{border-collapse:collapse;width:100%}table.data th,table.data td{text-align:left;border-bottom:1px solid var(--color-border);vertical-align:top;padding:.7rem .55rem}table.data th{color:var(--color-text-muted);font-size:.85rem;font-weight:600}.badge{background:var(--color-primary-soft);min-height:28px;color:var(--color-primary);border-radius:999px;align-items:center;padding:.15rem .65rem;font-size:.8rem;font-weight:700;display:inline-flex}.badge-live{background:color-mix(in srgb, var(--color-success) 15%, white);color:var(--color-success)}.badge-ended{background:var(--color-surface-muted);color:var(--color-text-muted)}.alert{border-radius:var(--radius-sm);border:2px solid #0000;padding:.85rem 1rem;font-weight:500}.alert-error{color:#7a2e2e;background:#fdf0f0;border-color:#e8b4b4}.alert-ok{background:var(--color-primary-soft);color:var(--color-primary-dark);border-color:#b8d9ce}.alert-info{color:var(--color-info);background:#eef5fa;border-color:#b8d4e8}.empty{color:var(--color-text-muted);padding:1rem 0}.list-item{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.85rem 0;display:flex}.list-item:last-child{border-bottom:none}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.step-indicator{flex-wrap:wrap;gap:.5rem;display:flex}.step-indicator span{background:var(--color-surface-muted);color:var(--color-text-muted);border-radius:999px;padding:.35rem .75rem;font-size:.85rem;font-weight:600}.step-indicator span.active{background:var(--color-primary-soft);color:var(--color-primary)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=720px){.app-shell{width:min(100%,100% - 1.25rem)}}
