@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Noto+Sans+JP:wght@400;500;700&family=Roboto+Mono:wght@400;500&display=swap";:root{--accent: #2563eb;--accent-hover: #1d4ed8;--accent-soft: #eff6ff;--accent-text: #ffffff;--bg-app: #fafbfd;--surface: #ffffff;--sunken: #f4f6fa;--sidebar-bg: #ffffff;--sidebar-active-bg: #eef2ff;--border: #e8ecf3;--border-strong: #d3dae5;--border-focus: #2563eb;--text-strong: #0f172a;--text-body: #334155;--text-muted: #64748b;--text-faint: #94a3b8;--text-link: #2563eb;--status-ok: #059669;--status-ok-bg: #ecfdf5;--status-info: #2563eb;--status-info-bg: #eff6ff;--status-warn: #b45309;--status-warn-bg: #fffbeb;--status-danger: #dc2626;--status-danger-bg: #fef2f2;--status-idle: #64748b;--status-idle-bg: #f1f5f9;--font-sans: "Noto Sans JP", "Inter", system-ui, -apple-system, "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;--font-display: "Inter", "Noto Sans JP", system-ui, sans-serif;--font-mono: "Roboto Mono", ui-monospace, Menlo, monospace;--fs-h1: 22px;--fs-h2: 17px;--fs-title: 15px;--fs-body: 14px;--fs-sm: 13px;--fs-xs: 12px;--radius: 12px;--radius-sm: 8px;--radius-full: 999px;--shadow: 0 1px 2px rgba(15, 23, 42, .05), 0 8px 24px rgba(15, 23, 42, .06);--shadow-pop: 0 4px 12px rgba(15, 23, 42, .1), 0 16px 40px rgba(15, 23, 42, .12);--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px}*{box-sizing:border-box}body{margin:0;font-family:var(--font-sans);font-size:var(--fs-body);color:var(--text-body);background:var(--bg-app);-webkit-font-smoothing:antialiased}.shell{display:grid;grid-template-columns:236px 1fr;min-height:100vh}.sidebar{background:var(--sidebar-bg);border-right:1px solid var(--border);padding:var(--sp-5) var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-2);position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:var(--sp-3);padding:0 var(--sp-2) var(--sp-4)}.brand-mark{width:30px;height:30px;border-radius:8px;background:var(--accent);color:var(--accent-text);display:grid;place-items:center;font-family:var(--font-display);font-weight:700;font-size:14px}.brand-name{font-family:var(--font-display);font-weight:700;font-size:16px;color:var(--text-strong)}.nav{display:flex;flex-direction:column;gap:2px}.nav-link{display:flex;align-items:center;gap:var(--sp-3);padding:9px var(--sp-3);border-radius:var(--radius-sm);color:var(--text-muted);text-decoration:none;font-size:var(--fs-sm);font-weight:500}.nav-link:hover{color:var(--text-strong);background:var(--sunken)}.nav-link.active{background:var(--sidebar-active-bg);color:var(--accent);font-weight:700}.nav-section{margin:var(--sp-4) var(--sp-3) var(--sp-1);font-size:10.5px;letter-spacing:.1em;color:var(--text-faint);font-weight:700}.recent{margin-top:auto}.recent-empty{margin:0 var(--sp-3);color:var(--text-faint);font-size:var(--fs-xs)}.recent-link{padding:6px var(--sp-3);font-size:var(--fs-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.main{display:flex;flex-direction:column;min-width:0}.topbar{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-3) var(--sp-6);background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.global-search{font:inherit;flex:1;max-width:520px;display:flex;align-items:center;gap:var(--sp-2);background:var(--sunken);border:1px solid var(--border);border-radius:var(--radius-full);padding:8px var(--sp-4);color:var(--text-muted);font-size:var(--fs-sm);cursor:pointer;text-align:left}.global-search kbd{margin-left:auto;font-family:var(--font-mono);font-size:11px;border:1px solid var(--border-strong);border-radius:4px;padding:1px 6px;background:var(--surface)}.user-menu{margin-left:auto;display:flex;align-items:center;gap:var(--sp-3);font-size:var(--fs-sm)}.user-name{font-weight:700;color:var(--text-strong)}.role-badge{font-size:11px;font-weight:700;padding:2px 8px;border-radius:var(--radius-full);background:var(--status-idle-bg);color:var(--status-idle)}.role-badge.is-admin{background:var(--accent-soft);color:var(--accent)}.logout{font:inherit;font-size:var(--fs-xs);padding:6px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);cursor:pointer}.logout:hover{color:var(--text-strong);border-color:var(--text-faint)}.content{padding:var(--sp-6)}.placeholder h1{font-family:var(--font-display);font-size:var(--fs-h1);color:var(--text-strong);margin:0 0 var(--sp-2)}.placeholder p{color:var(--text-muted)}.boot{min-height:100vh;display:grid;place-items:center;color:var(--text-faint)}.login-page{min-height:100vh;display:grid;place-items:center;background:var(--bg-app);padding:var(--sp-6)}.login-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--sp-8);display:flex;flex-direction:column;gap:var(--sp-4)}.login-brand{display:flex;align-items:center;gap:var(--sp-3)}.login-mark{width:36px;height:36px;border-radius:10px;background:var(--accent);color:var(--accent-text);display:grid;place-items:center;font-family:var(--font-display);font-weight:700;font-size:16px}.login-name{font-family:var(--font-display);font-weight:700;font-size:20px;color:var(--text-strong);letter-spacing:.01em}.login-lead{margin:0;color:var(--text-muted);font-size:var(--fs-sm)}.login-field{display:flex;flex-direction:column;gap:var(--sp-1)}.login-field span{font-size:var(--fs-xs);font-weight:700;color:var(--text-muted)}.login-field input{font:inherit;padding:10px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-strong)}.login-field input:focus{outline:2px solid var(--border-focus);outline-offset:-1px;border-color:var(--border-focus)}.login-error{margin:0;padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);background:var(--status-danger-bg);color:var(--status-danger);font-size:var(--fs-sm)}.login-submit{font:inherit;font-weight:700;padding:11px;border:none;border-radius:var(--radius-sm);background:var(--accent);color:var(--accent-text);cursor:pointer}.login-submit:hover{background:var(--accent-hover)}.login-submit:disabled{opacity:.6;cursor:default}.login-help{margin:0;color:var(--text-faint);font-size:var(--fs-xs);text-align:center}.cust-page{display:grid;gap:var(--sp-5)}.cust-narrow{max-width:720px}.cust-head{display:flex;align-items:flex-start;gap:var(--sp-4)}.cust-head h1{font-family:var(--font-display);font-size:var(--fs-h1);color:var(--text-strong);margin:2px 0;display:flex;align-items:center;gap:var(--sp-3)}.cust-head-chip{font-size:var(--fs-xs)}.cust-crumb{color:var(--text-muted);font-size:var(--fs-xs)}.cust-kana{font-size:var(--fs-xs);color:var(--text-muted)}.btn-primary{font:inherit;font-weight:700;font-size:var(--fs-sm);margin-left:auto;padding:9px 18px;border:none;border-radius:var(--radius-sm);background:var(--accent);color:var(--accent-text);cursor:pointer}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:disabled{opacity:.6;cursor:default}.btn-ghost{font:inherit;font-size:var(--fs-sm);padding:8px 14px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-muted);cursor:pointer}.btn-ghost:hover:not(:disabled){color:var(--text-strong)}.btn-ghost:disabled{opacity:.5;cursor:default}.btn-xs{padding:2px 8px;font-size:var(--fs-xs)}.cust-toolbar{display:flex;gap:var(--sp-3);align-items:center}.cust-search{flex:1;display:flex;gap:var(--sp-2)}.cust-search input{font:inherit;flex:1;padding:9px 14px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface)}.cust-search input:focus,.cust-toolbar select:focus,.form-field input:focus,.form-field textarea:focus{outline:2px solid var(--border-focus);outline-offset:-1px}.cust-toolbar select{font:inherit;padding:9px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-body)}.cust-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.cust-section{padding:var(--sp-4) var(--sp-5) var(--sp-5)}.cust-section h2{font-size:var(--fs-h2);color:var(--text-strong);margin:0 0 var(--sp-3)}.cust-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.cust-table th{text-align:left;background:var(--sunken);color:var(--text-muted);font-size:var(--fs-xs);font-weight:700;padding:10px var(--sp-4)}.cust-table td{padding:12px var(--sp-4);border-top:1px solid var(--border);color:var(--text-body);vertical-align:top}.cust-table tbody tr:hover td{background:var(--sunken)}.row-inactive td{opacity:.55}.cust-name{font-weight:700;color:var(--text-strong);text-decoration:none}a.cust-name:hover{color:var(--accent)}.mono{font-family:var(--font-mono);font-size:var(--fs-xs)}.cust-empty{color:var(--text-faint);text-align:center;padding:var(--sp-5)!important;margin:0}.cust-error{margin:0;padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);background:var(--status-danger-bg);color:var(--status-danger);font-size:var(--fs-sm)}.cust-note{margin:var(--sp-3) 0 0;color:var(--text-faint);font-size:var(--fs-xs)}.cust-pager{display:flex;align-items:center;justify-content:center;gap:var(--sp-4);padding:var(--sp-3);border-top:1px solid var(--border);color:var(--text-muted);font-size:var(--fs-sm)}.chip{display:inline-block;padding:3px 10px;border-radius:var(--radius-full);font-size:11.5px;font-weight:700;white-space:nowrap}.chip-active{background:var(--status-ok-bg);color:var(--status-ok)}.chip-dormant{background:var(--status-idle-bg);color:var(--status-idle)}.chip-archived{background:var(--status-danger-bg);color:var(--status-danger)}.chip-cp-live{background:var(--status-ok-bg);color:var(--status-ok)}.chip-cp-trial,.chip-cp-developing{background:var(--status-info-bg);color:var(--status-info)}.chip-cp-delayed{background:var(--status-warn-bg);color:var(--status-warn)}.chip-cp-at_risk{background:var(--status-danger-bg);color:var(--status-danger)}.chip-cp-suspended{background:var(--status-idle-bg);color:var(--status-idle)}.chip-ct-active{background:var(--status-ok-bg);color:var(--status-ok)}.chip-ct-expired{background:var(--status-warn-bg);color:var(--status-warn)}.chip-ct-terminated{background:var(--status-idle-bg);color:var(--status-idle)}.cust-tabs{display:flex;gap:var(--sp-1);border-bottom:1px solid var(--border)}.cust-tab{font:inherit;font-size:var(--fs-sm);font-weight:500;padding:10px var(--sp-4);border:none;background:transparent;color:var(--text-muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.cust-tab:hover{color:var(--text-strong)}.cust-tab.active{color:var(--accent);font-weight:700;border-bottom-color:var(--accent)}.stat-row{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--sp-3)}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--sp-3) var(--sp-4);box-shadow:var(--shadow)}.stat-k{font-size:var(--fs-xs);color:var(--text-muted)}.stat-v{font-family:var(--font-display);font-size:22px;font-weight:700;color:var(--text-strong)}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3) var(--sp-6);margin:0}.detail-item dt{font-size:var(--fs-xs);font-weight:700;color:var(--text-muted)}.detail-item dd{margin:2px 0 0;color:var(--text-strong);overflow-wrap:anywhere}.detail-item.span2{grid-column:span 2}.tag-list{list-style:none;display:flex;flex-wrap:wrap;gap:var(--sp-2);margin:0;padding:0}.tag{border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:5px 10px;font-size:var(--fs-sm);color:var(--text-body)}.tag small{margin-left:6px;color:var(--text-faint)}.secret{font-family:var(--font-mono);background:var(--sunken);border:1px solid var(--border);border-radius:4px;padding:2px 8px}.secret-masked{display:inline-flex;align-items:center;gap:var(--sp-2);color:var(--text-faint)}.cust-form{padding:var(--sp-5);display:grid;gap:var(--sp-4)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4)}.form-field{display:flex;flex-direction:column;gap:var(--sp-1)}.form-field.span2{grid-column:span 2}.form-field span{font-size:var(--fs-xs);font-weight:700;color:var(--text-muted)}.form-field em{font-style:normal;color:var(--status-danger);font-weight:500}.form-field input,.form-field textarea{font:inherit;padding:9px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-strong)}.form-actions{display:flex;justify-content:flex-end;gap:var(--sp-3)}
