:root{color:#111827;background:#f6f7f9;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{color:#111827;background:#f6f7f9;margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.shell{min-height:100vh}.header{background:#fff;border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.brand{letter-spacing:.01em;font-weight:700}.app-shell{grid-template-columns:240px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:#fff;border-right:1px solid #e5e7eb;flex-direction:column;gap:24px;padding:20px 12px;display:flex}.sidebar-brand{gap:4px;padding:0 8px;display:grid}.sidebar-nav{gap:4px;display:grid}.nav-item{border-radius:10px;align-items:center;min-height:40px;padding:8px 12px;font-size:14px;font-weight:600;display:flex}.nav-item[data-active=true]{color:#fff;background:#111827}.nav-item:not(.is-disabled):not([data-active=true]):hover{background:#f3f4f6}.nav-item.is-disabled{color:#9ca3af;font-weight:500}.sidebar-footer{border-top:1px solid #e5e7eb;gap:10px;margin-top:auto;padding:12px 8px 4px;display:grid}.sidebar-user{overflow-wrap:anywhere;font-size:13px}.app-content{min-width:0}.container{width:min(1180px,100% - 32px);margin:0 auto;padding:20px 0 40px}.page-header{gap:4px;display:grid}.page-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.page-toolbar .page-header{flex:1;min-width:220px}.page-header h1,h1{margin:0;font-size:22px;line-height:1.3}.page-header p,.page-header+p{margin:0}.stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.stat-card{gap:4px;min-height:96px;display:grid}.stat-card-link{transition:border-color .15s,box-shadow .15s}.stat-card-link:hover{border-color:#d1d5db;box-shadow:0 1px 2px #1118270a}.stat-label{color:#6b7280;font-size:12px;font-weight:600}.stat-value{letter-spacing:-.02em;font-size:26px;font-weight:700;line-height:1.1}.stat-hint{margin:0;font-size:12px;line-height:1.4}.stat-card[data-tone=warn] .stat-value{color:#9a3412}.stat-card[data-tone=danger] .stat-value{color:#b91c1c}.table-action{color:#374151;font-weight:600}.text-button{font:inherit;color:#374151;cursor:pointer;background:0 0;border:0;padding:0;font-weight:600}.table-action-cell{text-align:right}.table-row-link:hover td{background:#f9fafb}.card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:16px 18px}.card-compact{padding:12px 16px}.inline-section-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.inline-section-header .section-title{margin:0}.empty-inline{font-size:13px}.empty-note{margin:0;font-size:14px}.stack{gap:14px;display:grid}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.tabs{gap:8px;margin-bottom:4px;display:flex}.tab{background:#fff;border:1px solid #d1d5db;border-radius:999px;padding:8px 13px;font-size:14px}.tab[data-active=true]{color:#fff;background:#111827;border-color:#111827}.table-wrap{overflow-x:auto}table{border-collapse:collapse;background:#fff;width:100%}th,td{text-align:left;white-space:nowrap;border-bottom:1px solid #e5e7eb;padding:10px 12px;font-size:14px}th{color:#6b7280;font-size:12px;font-weight:600}.badge{background:#eef2ff;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:600;display:inline-flex}.badge-warn{background:#fff7ed}.badge-danger{background:#fef2f2}.muted{color:#6b7280}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.section-title{margin:0 0 10px;font-size:15px;font-weight:600}.detail-list{grid-template-columns:150px 1fr;gap:8px 16px;margin:0;display:grid}.detail-list dt{color:#6b7280}.detail-list dd{margin:0}.form{gap:14px;display:grid}.field{gap:6px;display:grid}.field label{font-size:13px;font-weight:600}.field input,.field select,.field textarea{background:#fff;border:1px solid #d1d5db;border-radius:10px;width:100%;padding:10px 12px}.field textarea{resize:vertical;min-height:90px}.button{color:#fff;cursor:pointer;background:#111827;border:1px solid #111827;border-radius:10px;justify-content:center;align-items:center;padding:10px 14px;display:inline-flex}.button:disabled{cursor:wait;opacity:.6}.button-secondary{color:#111827;background:#fff;border-color:#d1d5db}.button-danger{background:#b91c1c;border-color:#b91c1c}.login{place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{width:min(420px,100%)}.error{color:#b91c1c;font-size:14px}.success{color:#166534;background:#f0fdf4;border-color:#bbf7d0;font-size:14px}.code-block{overflow-wrap:anywhere;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:10px;padding:12px;display:block}.muted-code{color:#6b7280;overflow-wrap:anywhere;font-size:13px}.inline-form{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.site-select-list{gap:10px;display:grid}.site-select-card{cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:10px;grid-template-columns:auto 1fr;align-items:start;gap:12px;padding:14px 16px;display:grid}.site-select-card[data-selected=true]{background:#f9fafb;border-color:#111827}.site-select-card.is-readonly{cursor:default}.site-select-card input[type=checkbox]{accent-color:#111827;width:18px;height:18px;margin-top:2px}.site-select-body{gap:2px;min-width:0;display:grid}.site-select-name{font-size:14px;font-weight:600}.site-select-address{color:#6b7280;overflow-wrap:anywhere;font-size:13px}.site-select-hint{color:#6b7280;margin-top:4px;font-size:12px}@media (max-width:760px){.app-shell{grid-template-columns:1fr}.sidebar{border-bottom:1px solid #e5e7eb;border-right:0}.stat-grid,.grid-2{grid-template-columns:1fr}.detail-list{grid-template-columns:1fr;gap:4px}.detail-list dd{margin-bottom:10px}}.registration-page{max-width:680px;margin:0 auto;padding:32px 16px}.registration-page .button{text-align:center;white-space:normal}.registration-page h1{font-size:clamp(1.5rem,5vw,2rem)}.registration-page h2{overflow-wrap:anywhere;font-size:1.2rem}.registration-page li{overflow-wrap:anywhere}.registration-qr{width:min(280px,100%);height:auto;image-rendering:pixelated;align-self:center;display:block}.registration-list{gap:16px;display:grid}.registration-list .card{overflow-wrap:anywhere;min-width:0}
