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