:root{--bg:#f9fafb;--surface:#fff;--surface-hover:#f1f5f9;--border:#e5e7eb;--text:#1f2937;--text-secondary:#1f2937;--primary:#3b82f6;--primary-dim:#2563eb;--radius:.75rem;--gap:1.25rem;--sidebar-width:260px;--font:"Noto Sans JP", "Helvetica Neue", Arial, sans-serif;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 12px #00000014}@media (prefers-color-scheme:dark){:root{--bg:#121212;--surface:#1a1a1a;--surface-hover:#2a2a2a;--border:#333;--text:#e0e0e0;--text-secondary:#9e9e9e;--primary:#3b82f6;--primary-dim:#60a5fa;--shadow-sm:0 1px 2px #0009;--shadow-md:0 4px 12px #0000008c}input[type=date],input[type=number],input[type=text],select{color:#fff;background:#2a2a2a}button,.button,.number-spinner button{color:#fff;background:#2d2d2d}button:hover,.button:hover,.number-spinner button:hover{background:#3c3c3c}input:focus-visible{outline-color:#888}select:focus-visible{outline-color:#888}button:focus-visible{outline-color:#888}.table-container tr:hover{background:#2a2a2a}.list-item{color:#e0e0e0;background:#1a1a1a;border-color:#333}}*,:before,:after{box-sizing:border-box}html,body{height:100%}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;line-height:1.55}button,input,select{font:inherit;-webkit-tap-highlight-color:transparent}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.container{width:100%;max-width:1280px;padding:var(--gap);margin-inline-start:auto;margin-inline-end:auto;display:block}header{margin-bottom:var(--gap);align-items:center;gap:.75rem;display:flex}header h1{cursor:pointer;align-items:center;gap:.5rem;font-size:max(1.5rem,min(2vw + 1rem,2rem));font-weight:700;display:flex}header img.logo{flex-shrink:0;width:2.25rem;height:2.25rem}.sidebar{width:100%;margin-bottom:var(--gap);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden}@media (min-width:768px){.container{grid-template-columns:var(--sidebar-width) 1fr;gap:var(--gap);display:grid}header{grid-column:1/-1}.container>input[type=file],.container>p{grid-column:1/-1;justify-self:center}.sidebar{top:var(--gap);height:calc(100vh - 2 * var(--gap) - 2.5rem);flex-direction:column;display:flex;position:sticky}}.filter-accordion{padding:var(--gap)}.filter-accordion summary{cursor:pointer;outline:none;align-items:center;font-weight:600;list-style:none;display:flex}.filter-accordion summary::marker{display:none}.filter-accordion summary::-webkit-details-marker{display:none}.filter-accordion summary:after{content:"›";margin-left:auto;transition:transform .2s;transform:rotate(90deg)}details[open]>summary:after{transform:rotate(180deg)}.filter-fields{margin-top:var(--gap);flex-direction:column;gap:.75rem;display:flex}.filter-fields label{flex-direction:column;gap:.25rem;font-size:.875rem;display:flex}input[type=date],input[type=number],select{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-hover);padding:.5rem .75rem}.number-spinner{align-items:stretch;display:flex}.number-spinner button{border:1px solid var(--border);background:var(--surface);cursor:pointer;width:2.25rem}.number-spinner button:hover{background:var(--surface-hover)}.number-spinner input{text-align:center;border:1px solid var(--border);background:var(--surface-hover);border-inline-start:none;border-inline-end:none;width:4rem}.reset-btn{align-self:flex-start}.metrics{margin-bottom:var(--gap);flex-wrap:wrap;gap:1.5rem;font-weight:600;display:flex}.metrics .metric{min-width:6rem}.tabs{margin-bottom:var(--gap);border-bottom:1px solid var(--border);gap:1.5rem;display:flex}.tabs button{cursor:pointer;background:0 0;border:none;padding:.75rem 0;font-weight:500;position:relative}.tabs button:after{content:"";background:0 0;width:100%;height:2px;transition:background .2s;position:absolute;bottom:-1px;left:0}.tabs button.active:after,.tabs button:hover:after{background:var(--primary)}.button-group{margin-bottom:var(--gap);flex-direction:column;align-items:center;gap:.75rem;display:flex}.button-group__primary-row{flex-wrap:wrap;justify-content:center;gap:.75rem;width:100%;display:flex}.button-group__toggle{padding-inline-start:1.2rem;padding-inline-end:1.2rem}.button-group__extras{flex-wrap:wrap;justify-content:center;gap:.75rem;width:100%;display:none}.button-group__extras.is-open{display:flex}.button-group .split-button{display:inline-flex}@media (max-width:767px){.button-group__primary-row{flex-direction:column}.button-group__toggle{width:100%;font-size:1rem}.button-group__extras.is-open{grid-template-columns:1fr 1fr;width:100%;display:grid}.button-group__extras.is-open button,.button-group__extras.is-open .button{width:100%;font-size:1rem}.button-group .split-button{width:100%}}button,.button{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;box-shadow:var(--shadow-sm);padding:.65rem 1.2rem;transition:background .15s,box-shadow .15s}button:hover,.button:hover{background:var(--surface-hover);box-shadow:var(--shadow-md)}button.primary{background:var(--primary);border-color:var(--primary);color:#fff}button.primary:hover{background:var(--primary-dim)}.split-button{align-items:stretch;display:inline-flex;position:relative}.split-button>button{border-radius:0;margin:0}.split-button .split-main{border-top-left-radius:var(--radius);border-bottom-left-radius:var(--radius)}.split-button .split-toggle{border-top-right-radius:var(--radius);border-bottom-right-radius:var(--radius);justify-content:center;align-items:center;min-width:2.75rem;margin-left:-1px;padding-inline-start:.75rem;padding-inline-end:.75rem;display:flex}.split-button .split-toggle.primary:hover{background:var(--primary-dim)}.split-dropdown{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:20;flex-direction:column;gap:.5rem;min-width:12rem;padding:.5rem;display:flex;position:absolute;top:calc(100% + .5rem);right:0}.split-dropdown .button{text-align:left;width:100%;display:block}.table-container{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;box-shadow:var(--shadow-sm);overflow-x:auto}.list-container{width:100%;display:none}.list-date{margin:1rem 0 .25rem;font-weight:600}.list-item{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin-bottom:.5rem;padding:.75rem;line-height:1.4}.list-title{word-break:break-word;margin-bottom:.25rem;font-weight:600}.list-meta{flex-wrap:wrap;gap:.5rem;font-size:.875rem;display:flex}@media (max-width:767px){.table-container{display:none}.list-container{display:block}}@media (min-width:768px){.list-container{display:none}}.table-container table{border-collapse:collapse;width:100%;min-width:640px}.table-container th,.table-container td{white-space:nowrap;border-bottom:1px solid var(--border);padding:.65rem .9rem;font-size:.875rem}.table-container th{background:var(--surface-hover);text-align:left;font-weight:600}.table-container th.sortable{cursor:pointer}.table-container th.sortable .arrow{margin-left:.25rem;font-size:.75rem}.table-container tr:hover{background:var(--surface-hover)}.table-container tr:nth-child(2n){background:color-mix(in srgb, var(--surface-hover) 30%, transparent)}.table-container thead th{z-index:1;position:sticky;top:0}.table-container::-webkit-scrollbar{height:.6rem}.table-container::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--primary) 50%, transparent);border-radius:9999px}.container>input[type=file]{border:2px dashed var(--border);border-radius:var(--radius);background:var(--surface-hover);cursor:pointer;width:100%;max-width:520px;margin:4rem auto 0;padding:3rem 1.5rem;transition:background .15s,border-color .15s;display:block}.container>input[type=file]:hover{background:var(--surface);border-color:var(--primary)}.container>input[type=file]::-webkit-file-upload-button{background:var(--primary);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;padding:.6rem 1.2rem;transition:background .15s}.container>input[type=file]::file-selector-button{background:var(--primary);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;padding:.6rem 1.2rem;transition:background .15s}.container>input[type=file]::-webkit-file-upload-button:hover{background:var(--primary-dim)}.container>input[type=file]::file-selector-button:hover{background:var(--primary-dim)}.container>p{text-align:center;color:var(--text-secondary);margin-top:1.25rem;font-size:.95rem}input[type=file]:focus-visible{outline:3px solid color-mix(in srgb, var(--primary) 60%, transparent);outline-offset:2px}button:focus-visible{outline:3px solid color-mix(in srgb, var(--primary) 60%, transparent);outline-offset:2px}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.modal{background:var(--surface);color:var(--text);border-radius:var(--radius);max-width:90vw;max-height:90vh;box-shadow:var(--shadow-md);padding:1rem;overflow:auto}.csv-preview{max-width:80vw;max-height:60vh;overflow:auto}.csv-preview table{border-collapse:collapse;width:100%}.csv-preview th,.csv-preview td{border:1px solid var(--border);white-space:nowrap;padding:.4rem .6rem;font-size:.875rem}.csv-preview th{background:var(--surface-hover)}.modal img{object-fit:contain;max-width:80vw;max-height:80vh}
