:root{--bg-base:#fff;--bg-subtle:#fafafa;--bg-muted:#f5f5f5;--border:#e5e5e5;--border-strong:#d4d4d4;--text-primary:#171717;--text-secondary:#525252;--text-muted:#737373;--accent:#2563eb;--accent-hover:#1d4ed8;--success:#15803d;--success-subtle:#f0fdf4;--warning:#a16207;--warning-subtle:#fef9c3;--error:#b91c1c;--error-subtle:#fef2f2;--neutral-subtle:#f5f5f5;--radius-sm:6px;--radius-md:8px;--shadow-md:0 4px 6px #00000012;color:var(--text-primary)}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-base);min-height:100vh;color:var(--text-primary);font-family:Inter,Noto Sans JP,-apple-system,sans-serif;line-height:1.5}a{color:inherit;text-decoration:none}button{font:inherit}.auth-screen{background:var(--bg-subtle);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.auth-card{background:var(--bg-base);border:1px solid var(--border);width:100%;max-width:380px;box-shadow:var(--shadow-md);border-radius:8px;padding:40px 32px}.auth-header{text-align:center;margin-bottom:32px}.auth-logo{color:var(--text-primary);letter-spacing:0;margin:0;font-size:28px;font-weight:600}.auth-tagline{color:var(--text-muted);margin-top:4px;font-size:13px}.auth-error{color:var(--error);background:var(--error-subtle);border-radius:var(--radius-sm);margin-bottom:16px;padding:10px 12px;font-size:13px}.auth-body{flex-direction:column;gap:14px;display:flex}.auth-btn{color:#fff;background:var(--accent);border-radius:var(--radius-sm);cursor:pointer;text-align:center;border:none;justify-content:center;align-items:center;gap:8px;width:100%;min-height:44px;padding:12px;font-family:inherit;font-size:14px;font-weight:500;transition:background .15s;display:inline-flex}.auth-btn:hover{background:var(--accent-hover)}.auth-btn:disabled{cursor:not-allowed;opacity:.55}.auth-btn--secondary{color:var(--text-primary);background:var(--bg-base);border:1px solid var(--border-strong)}.auth-btn--secondary:not(:disabled):hover{color:var(--text-primary);background:var(--bg-subtle)}.services-page,.admin-page{width:min(1120px,100% - 32px);margin:0 auto;padding:32px 0}.services-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:24px;padding:8px 0 24px;display:flex}.tenant-label{color:var(--text-muted);text-transform:uppercase;font-size:12px;font-weight:600}.services-header h1{letter-spacing:0;margin-top:2px;font-size:26px;font-weight:650}.tenant-meta{color:var(--text-secondary);margin-top:4px;font-size:14px}.logout-button,.open-service-button{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-base);min-height:38px;color:var(--text-primary);white-space:nowrap;justify-content:center;align-items:center;gap:7px;padding:8px 12px;font-size:14px;font-weight:500;display:inline-flex}.logout-button:hover,.open-service-button:hover{background:var(--bg-subtle)}.service-summary{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--border);grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin:24px 0;display:grid;overflow:hidden}.service-summary>div{background:var(--bg-base);min-width:0;padding:18px 20px}.summary-value,.summary-label{display:block}.summary-value{font-size:24px;font-weight:650}.summary-label{color:var(--text-muted);margin-top:3px;font-size:13px}.services-table{border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.services-table-head,.service-row{grid-template-columns:minmax(230px,1.6fr) minmax(120px,.7fr) minmax(110px,.7fr) minmax(120px,.7fr) 88px;align-items:center;gap:16px;display:grid}.services-table-head{color:var(--text-muted);background:var(--bg-subtle);border-bottom:1px solid var(--border);text-transform:uppercase;padding:12px 18px;font-size:12px;font-weight:600}.service-row{background:var(--bg-base);min-height:74px;padding:14px 18px}.service-row+.service-row{border-top:1px solid var(--border)}.service-name-cell{align-items:center;gap:12px;min-width:0;display:flex}.service-icon{width:38px;height:38px;color:var(--accent);border-radius:var(--radius-md);background:#eff6ff;flex:none;justify-content:center;align-items:center;display:inline-flex}.service-name-cell h2{font-size:15px;font-weight:650}.service-name-cell p{color:var(--text-muted);margin-top:2px;font-size:13px}.status-pill{border-radius:var(--radius-sm);width:fit-content;min-width:72px;min-height:28px;color:var(--success);background:var(--success-subtle);justify-content:center;align-items:center;padding:4px 10px;font-size:12px;font-weight:650;display:inline-flex}.table-muted{color:var(--text-secondary);font-size:14px}.admin-tenant-list{gap:18px;display:grid}.admin-tenant{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-base);overflow:hidden}.admin-tenant-header{border-bottom:1px solid var(--border);background:var(--bg-subtle);justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;display:flex}.admin-user-table{display:grid}.admin-user-head,.admin-user-row{grid-template-columns:minmax(240px,1.6fr) minmax(88px,.55fr) minmax(110px,.6fr) minmax(130px,.8fr);align-items:center;gap:16px;display:grid}.admin-user-head{color:var(--text-muted);border-bottom:1px solid var(--border);text-transform:uppercase;padding:10px 18px;font-size:12px;font-weight:600}.admin-user-row{min-height:58px;color:var(--text-secondary);padding:12px 18px;font-size:14px}.admin-user-row+.admin-user-row{border-top:1px solid var(--border)}.admin-user-row strong{color:var(--text-primary);font-size:14px;font-weight:650;display:block}.admin-user-row p{color:var(--text-muted);overflow-wrap:anywhere;margin-top:2px;font-size:12px}@media (width<=760px){.services-page,.admin-page{width:min(100% - 24px,520px);padding:20px 0}.services-header{flex-direction:column;align-items:flex-start}.service-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.services-table-head{display:none}.service-row{grid-template-columns:1fr;align-items:start;gap:12px;min-height:0;padding:16px}.open-service-button{width:100%}.admin-tenant-header{flex-direction:column;align-items:flex-start}.admin-user-head{display:none}.admin-user-row{grid-template-columns:1fr;gap:6px}}
