:root{--color-main:#b7282e;--color-main-hover:#9d2227;--color-main-soft:#fbeaeb;--color-main-grad-from:#ef4444;--color-bg:#f9fafb;--color-surface:#fff;--color-surface-muted:#f3f4f6;--color-border:#e5e7eb;--color-border-strong:#d1d5db;--color-text:#1f2937;--color-text-muted:#6b7280;--color-text-on-main:#fff;--color-secondary:#4b5563;--color-secondary-hover:#374151;--color-info-bg:#e0f2fe;--color-info-border:#38bdf8;--color-info-text:#075985;--color-warn-bg:#fef9c3;--color-warn-border:#facc15;--color-warn-text:#854d0e;--color-ng-bg:#fee2e2;--color-ng-border:#f87171;--color-ng-text:#b91c1c;--color-ok-bg:#dcfce7;--color-ok-border:#4ade80;--color-ok-text:#166534;--color-feeyear:#0891b2;--color-feeyear-soft:#ecfeff;--color-rollback:#e11d48;--color-rollback-soft:#fff1f2;--color-dev-bg:#ede9fe;--color-dev-text:#8b5cf6;--color-overlay:#11182773;--color-shadow:#00000014;--color-chart-prepaid:#ff6384;--color-chart-current:#36a2eb;--color-chart-unpaid:#969696;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--radius-sm:4px;--radius-md:8px;--radius-pill:999px;--font-size-xs:12px;--font-size-sm:13px;--font-size-md:15px;--font-size-lg:18px;--font-size-xl:22px;--font-size-xxl:28px;--layout-max:1280px;--layout-console:1360px;--sidebar-width:248px;--header-height:60px;--control-height:38px;--icon-size:20px;--color-hover:#f3f4f6;--color-bg-console:#f6f6f7;--font-sans:"Noto Sans JP", system-ui, -apple-system, "Segoe UI", sans-serif;--font-serif:"Noto Serif JP", serif}*,:before,:after{box-sizing:border-box}html,body{margin:0}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--font-size-md);line-height:1.6}a{color:var(--color-main)}h1,h2,h3{margin:0;line-height:1.3}h1{font-size:var(--font-size-xl)}h2{font-size:var(--font-size-lg)}h3{font-size:var(--font-size-md)}:focus-visible{outline:2px solid var(--color-main);outline-offset:2px}body{background:var(--color-bg-console)}.icon{width:var(--icon-size);height:var(--icon-size);flex:none}.console{grid-template-columns:var(--sidebar-width) minmax(0, 1fr);grid-template-rows:auto 1fr;grid-template-areas:"header header""side main";min-height:100vh;display:grid}.console-header{z-index:20;background:var(--color-surface);border-bottom:1px solid var(--color-border);grid-area:header;position:sticky;top:0}.console-header-inner{align-items:center;gap:var(--space-md);min-height:var(--header-height);padding:0 var(--space-lg);display:flex}.brand{align-items:center;gap:var(--space-sm);color:var(--color-text);flex:none;font-weight:700;text-decoration:none;display:flex}.brand-mark{width:auto;height:32px}.env-badge{background:var(--color-dev-bg);color:var(--color-dev-text);font-size:var(--font-size-xs);padding:2px var(--space-sm);border-radius:var(--radius-pill);flex:none;font-weight:700}.console-search{flex:auto;max-width:36rem;margin:0 auto}.search-field{align-items:center;display:flex;position:relative}.search-field .icon{left:var(--space-sm);color:var(--color-text-muted);pointer-events:none;position:absolute}.search-field input[type=search]{padding-left:calc(var(--space-sm) * 2 + var(--icon-size));background:var(--color-surface-muted);min-height:var(--control-height);border-color:#0000;padding-right:64px}.search-field input[type=search]:focus{background:var(--color-surface)}.kbd{right:var(--space-sm);font:inherit;font-size:var(--font-size-xs);color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:0 var(--space-xs);background:var(--color-surface);position:absolute}.header-actions{align-items:center;gap:var(--space-xs);flex:none;margin-left:auto;display:flex}.icon-button{padding:var(--space-xs);background:0 0;border-color:#0000}.icon-button:hover{background:var(--color-hover)}.dropdown{position:relative}.dropdown>summary{cursor:pointer;list-style:none}.dropdown>summary::-webkit-details-marker{display:none}.person{align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-md);display:flex}.person:hover{background:var(--color-hover)}.person>.icon:first-child{width:28px;height:28px;color:var(--color-text-muted)}.person-text{text-align:left;max-width:16rem;line-height:1.3;display:grid}.person-name{font-weight:700;font-size:var(--font-size-sm)}.person-role{color:var(--color-text-muted);font-size:var(--font-size-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dropdown-menu{right:0;top:calc(100% + var(--space-xs));background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:220px;box-shadow:0 8px 24px var(--color-shadow);padding:var(--space-xs);z-index:30;display:grid;position:absolute}.dropdown-menu a,.dropdown-menu button{align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm);border-radius:var(--radius-sm);color:var(--color-text);font-size:var(--font-size-sm);background:0 0;border:0;justify-content:flex-start;text-decoration:none;display:flex}.dropdown-menu a:hover,.dropdown-menu button:hover{background:var(--color-hover)}.console-sidebar{top:calc(var(--header-height) + 1px);height:calc(100vh - var(--header-height) - 1px);align-content:start;align-self:start;gap:var(--space-lg);padding:var(--space-lg) var(--space-md) var(--space-xl);background:var(--color-surface);border-right:1px solid var(--color-border);grid-area:side;display:grid;position:sticky;overflow-y:auto}.side-nav-label{margin:0 0 var(--space-xs);padding:0 var(--space-sm);color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:700}.side-nav-group ul{gap:2px;margin:0;padding:0;list-style:none;display:grid}.side-nav-group a{align-items:center;gap:var(--space-sm);min-height:var(--control-height);padding:0 var(--space-sm);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--font-size-sm);text-decoration:none;display:flex}.side-nav-group a .icon{color:var(--color-text-muted)}.side-nav-group a:hover{background:var(--color-hover)}.side-nav-group a[aria-current=page]{background:var(--color-main-soft);color:var(--color-main);font-weight:700}.side-nav-group a[aria-current=page] .icon{color:var(--color-main)}.console-scrim{display:none}main.console-main{width:100%;max-width:var(--layout-console);padding:var(--space-lg) var(--space-xl) var(--space-xl);grid-area:main;min-width:0;margin:0}.notice-bar{margin-bottom:var(--space-md)}.notice-bar .message{gap:var(--space-sm);align-items:flex-start;display:flex}@media (width>=981px){.nav-toggle{display:none}}@media (width<=980px){.console{grid-template-columns:minmax(0,1fr);grid-template-areas:"header""main"}.console-header-inner{padding:0 var(--space-md) 0 var(--space-sm);gap:var(--space-sm)}.console-sidebar{top:calc(var(--header-height) + 1px);z-index:40;width:min(var(--sidebar-width), 85vw);height:auto;box-shadow:0 10px 30px var(--color-shadow);visibility:hidden;grid-area:auto;align-self:stretch;transition:transform .15s,visibility .15s;position:fixed;bottom:0;left:0;transform:translate(-100%)}.console-sidebar.open{visibility:visible;transform:none}.console-scrim:not([hidden]){inset:calc(var(--header-height) + 1px) 0 0;z-index:39;background:var(--color-overlay);display:block;position:fixed}main.console-main{padding:var(--space-md)}}@media (width<=640px){.console-search,.brand-name,.person-text,.kbd{display:none}}.headline{justify-content:space-between;align-items:flex-end;gap:var(--space-sm) var(--space-lg);margin:0 0 var(--space-lg);flex-wrap:wrap;display:flex}.breadcrumb{font-size:var(--font-size-sm);color:var(--color-text-muted);flex-basis:100%}.breadcrumb a{color:var(--color-text-muted)}.headline-main{flex:20rem;min-width:0}.headline-title{align-items:center;gap:var(--space-sm);font-size:var(--font-size-xl);flex-wrap:wrap;margin:0;display:flex}.headline-desc{margin:var(--space-xs) 0 0;color:var(--color-text-muted);font-size:var(--font-size-sm)}.headline-actions{gap:var(--space-sm);flex-wrap:wrap;display:flex}.table-card{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:0 1px 3px var(--color-shadow);overflow:hidden}.card+.table-card,.table-card+.card,.table-card+.table-card{margin-top:var(--space-md)}.table-card-bar{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm);flex-wrap:wrap;min-height:48px;display:flex}.table-card-bar .grow{flex:1}.table-card .table th:first-child,.table-card .table td:first-child{padding-left:var(--space-lg)}.table-card .table th:last-child,.table-card .table td:last-child{padding-right:var(--space-lg)}.table-card .table td{vertical-align:middle}.table-card-foot{padding:var(--space-xs) var(--space-lg);border-top:1px solid var(--color-border)}.table-card-foot .pagination{margin:0}.table-card>.empty-state,.table-card>.message,.table-card>.spinner{margin:var(--space-lg)}.toolbar{align-items:center;gap:var(--space-sm);margin:0 0 var(--space-md);flex-wrap:wrap;display:flex}.toolbar .search-field{flex:0 22rem}.toolbar .search-field input[type=search]{background:var(--color-surface);border-color:var(--color-border);padding-right:var(--space-sm)}.empty-state{text-align:center;padding:var(--space-xl) var(--space-md)}.empty-state-title{margin:0 0 var(--space-xs);font-weight:700}tr.clickable{cursor:pointer}.stat-grid{gap:var(--space-md);margin-bottom:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.stat-card{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:0 1px 3px var(--color-shadow);padding:var(--space-md) var(--space-lg)}.stat-card .label{color:var(--color-text-muted);display:block}.stat-card .value{font-size:var(--font-size-xl);font-weight:700}.card{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:0 1px 3px var(--color-shadow);padding:var(--space-lg)}.card+.card,.stack>*+*{margin-top:var(--space-md)}.grid-2>.card,.grid-3>.card{margin-top:0}.card-title{font-size:var(--font-size-lg);margin-bottom:var(--space-md);align-items:center;gap:var(--space-sm);display:flex}.head-2{font-size:var(--font-size-lg);border-bottom:1px solid var(--color-border);padding-bottom:var(--space-xs);margin:var(--space-lg) 0 var(--space-md)}.grid-2{gap:var(--space-md);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.grid-3{gap:var(--space-md);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}@media (width<=860px){.grid-2,.grid-3{grid-template-columns:1fr}}.row{gap:var(--space-sm);flex-wrap:wrap;align-items:center;display:flex}.row.end{justify-content:flex-end}.grow{flex:1}.muted{color:var(--color-text-muted)}.small{font-size:var(--font-size-sm)}.xs{font-size:var(--font-size-xs)}.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mb-md{margin-bottom:var(--space-md)}.nowrap{white-space:nowrap}.num{text-align:right;font-variant-numeric:tabular-nums}.pre{white-space:pre-wrap}button,.button{font:inherit;font-size:var(--font-size-sm);justify-content:center;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text);cursor:pointer;white-space:nowrap;text-decoration:none;display:inline-flex}button:hover,.button:hover{background:var(--color-surface-muted)}button:disabled{opacity:.5;cursor:not-allowed}button.primary,.button.primary{background:var(--color-main);border-color:var(--color-main);color:var(--color-text-on-main);font-weight:700}button.primary:hover{background:var(--color-main-hover)}button.secondary{background:var(--color-secondary);border-color:var(--color-secondary);color:var(--color-text-on-main)}button.secondary:hover{background:var(--color-secondary-hover)}button.danger{background:var(--color-ng-text);border-color:var(--color-ng-text);color:var(--color-text-on-main);font-weight:700}button.text{color:var(--color-main);padding:var(--space-xs) var(--space-sm);background:0 0;border-color:#0000}button.text:hover{background:var(--color-main-soft)}button.small{padding:2px var(--space-sm);font-size:var(--font-size-xs)}.form{gap:var(--space-md);display:grid}.field{gap:var(--space-xs);align-content:start;min-width:0;display:grid}.field>span,.label{color:var(--color-main);font-size:var(--font-size-xs);font-weight:700}.field .hint{color:var(--color-text-muted);font-size:var(--font-size-xs)}.field .error-text{color:var(--color-ng-text);font-size:var(--font-size-xs)}input[type=text],input[type=number],input[type=email],input[type=tel],input[type=date],input[type=search],select,textarea{font:inherit;font-size:var(--font-size-md);width:100%;padding:var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text)}input:focus,select:focus,textarea:focus{outline:2px solid var(--color-main);outline-offset:0;border-color:var(--color-main)}textarea{resize:vertical;min-height:120px}.check{align-items:center;gap:var(--space-xs);font-size:var(--font-size-sm);cursor:pointer;display:inline-flex}.check input{accent-color:var(--color-main);width:16px;height:16px}.chips{gap:var(--space-xs);flex-wrap:wrap;display:flex}.chip{align-items:center;gap:var(--space-xs);padding:2px var(--space-sm);border-radius:var(--radius-pill);background:var(--color-surface-muted);font-size:var(--font-size-xs);border:1px solid var(--color-border);display:inline-flex}.chip button{font-size:var(--font-size-xs);background:0 0;border:0;padding:0 2px}.tri{border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);font-size:var(--font-size-xs);display:inline-flex;overflow:hidden}.tri button{padding:2px var(--space-sm);font-size:var(--font-size-xs);border:0;border-radius:0}.tri button[aria-pressed=true]{background:var(--color-main);color:var(--color-text-on-main)}.form-actions{gap:var(--space-sm);margin-top:var(--space-md);flex-wrap:wrap;justify-content:flex-end;display:flex}.table-wrap{overflow-x:auto}table.table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}.table th,.table td{padding:var(--space-sm);border-bottom:1px solid var(--color-border);text-align:left;vertical-align:top}.table th{background:var(--color-surface-muted);white-space:nowrap;font-weight:700}.table th button.sort{font-weight:700;font-size:var(--font-size-sm);background:0 0;border:0;padding:0}.table tr:hover td{background:var(--color-bg)}.pagination{align-items:center;gap:var(--space-sm);margin-top:var(--space-md);font-size:var(--font-size-sm);flex-wrap:wrap;justify-content:flex-end;display:flex}.pagination select{width:auto;padding:2px var(--space-xs)}.empty{text-align:center;color:var(--color-text-muted);padding:var(--space-xl) var(--space-md)}dl.details{gap:var(--space-xs) var(--space-lg);font-size:var(--font-size-sm);grid-template-columns:max-content 1fr;margin:0;display:grid}dl.details dt{color:var(--color-main);font-weight:700;font-size:var(--font-size-xs);padding-top:2px}dl.details dd{overflow-wrap:anywhere;margin:0}.tabs{gap:var(--space-xs);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-md);flex-wrap:wrap;display:flex}.tabs button{padding:var(--space-sm) var(--space-md);background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0}.tabs button[aria-selected=true]{border-bottom-color:var(--color-main);color:var(--color-main);font-weight:700}.badge{padding:1px var(--space-sm);border-radius:var(--radius-pill);font-size:var(--font-size-xs);white-space:nowrap;border:1px solid;align-items:center;font-weight:700;display:inline-flex}.badge.ok{background:var(--color-ok-bg);border-color:var(--color-ok-border);color:var(--color-ok-text)}.badge.ng{background:var(--color-ng-bg);border-color:var(--color-ng-border);color:var(--color-ng-text)}.badge.info{background:var(--color-info-bg);border-color:var(--color-info-border);color:var(--color-info-text)}.badge.warn{background:var(--color-warn-bg);border-color:var(--color-warn-border);color:var(--color-warn-text)}.badge.none{background:var(--color-surface-muted);border-color:var(--color-border);color:var(--color-text-muted)}.message{border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);font-size:var(--font-size-sm);border:1px solid}.message.info{background:var(--color-info-bg);border-color:var(--color-info-border);color:var(--color-info-text)}.message.warn{background:var(--color-warn-bg);border-color:var(--color-warn-border);color:var(--color-warn-text)}.message.ng{background:var(--color-ng-bg);border-color:var(--color-ng-border);color:var(--color-ng-text)}.message.ok{background:var(--color-ok-bg);border-color:var(--color-ok-border);color:var(--color-ok-text)}.message ul{margin:var(--space-xs) 0 0;padding-left:var(--space-lg)}.donut{flex:none;width:150px;height:150px;transform:rotate(-90deg)}.donut circle{fill:none;stroke-width:18px}.donut .donut-prepaid{stroke:var(--color-chart-prepaid)}.donut .donut-current{stroke:var(--color-chart-current)}.donut .donut-unpaid{stroke:var(--color-chart-unpaid)}.donut-label{transform-origin:50px 50px;text-anchor:middle;dominant-baseline:central;fill:var(--color-text);font-size:16px;font-weight:700;transform:rotate(90deg)}.legend{gap:var(--space-xs);font-size:var(--font-size-sm);display:grid}.legend i{width:10px;height:10px;margin-right:var(--space-xs);border-radius:2px;display:inline-block}.legend .prepaid{background:var(--color-chart-prepaid)}.legend .current{background:var(--color-chart-current)}.legend .unpaid{background:var(--color-chart-unpaid)}.member-head{gap:var(--space-lg);flex-wrap:wrap;align-items:flex-start;display:flex}.member-name{font-size:var(--font-size-xxl);font-weight:700}.member-kana{color:var(--color-text-muted);font-size:var(--font-size-sm)}.code{font-size:var(--font-size-lg);color:var(--color-main);font-weight:700}.note-box{background:var(--color-warn-bg);border:1px solid var(--color-warn-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);font-size:var(--font-size-sm)}.box{background:var(--color-surface-muted);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);font-size:var(--font-size-sm)}.feeyear-card{border-top:4px solid var(--color-feeyear)}.feeyear-card .years{font-size:var(--font-size-xxl);color:var(--color-feeyear);font-weight:700}.rollback-card{border-top:4px solid var(--color-rollback);background:var(--color-rollback-soft)}.rollback-card .years{font-size:var(--font-size-xxl);color:var(--color-rollback);font-weight:700}.danger-action{border:1px solid var(--color-ng-border);background:var(--color-ng-bg);border-radius:var(--radius-md);padding:var(--space-md);gap:var(--space-sm);display:grid}.overlay{background:var(--color-overlay);z-index:50;padding:var(--space-md);place-items:center;display:grid;position:fixed;inset:0}.dialog{background:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-lg);width:min(560px,100%);max-height:90vh;box-shadow:0 10px 30px var(--color-shadow);overflow:auto}.dialog.wide{width:min(960px,100%)}.dialog h2{margin-bottom:var(--space-md)}.toasts{right:var(--space-md);bottom:var(--space-md);gap:var(--space-sm);z-index:60;display:grid;position:fixed}.toast{background:var(--color-text);color:var(--color-surface);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);font-size:var(--font-size-sm);box-shadow:0 4px 12px var(--color-shadow);max-width:420px}.toast.ng{background:var(--color-ng-text)}.login-page{background:var(--color-surface-muted);min-height:100vh;padding:var(--space-md);place-items:center;display:grid}.login-card{text-align:center;width:min(440px,100%)}.login-card img{max-width:100%;height:auto}.spinner{border:3px solid var(--color-main-soft);border-top-color:var(--color-main);width:28px;height:28px;margin:var(--space-xl) auto;border-radius:50%;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.print-only{display:none}@media print{@page{size:A4 landscape;margin:10mm}body{background:var(--color-surface);font-family:var(--font-serif);font-size:9pt}.no-print,.console-header,.console-sidebar,.notice-bar,.toasts,.headline{display:none!important}.console{display:block}main.console-main{max-width:none;padding:0}.print-only{display:block}.print-table{border-collapse:collapse;width:100%}.print-table th,.print-table td{border:1px solid var(--color-text);text-align:left;vertical-align:top;padding:2px 4px}.print-table thead{display:table-header-group}.print-table tr{break-inside:avoid}}.contents{display:contents}
