:root{--color-primary: #111111;--color-secondary: #666666;--color-background: #f5f5f5;--color-surface: #ffffff;--color-text-primary: #111111;--color-text-secondary: #666666;--color-border: #e5e5e5;--color-error: #d92d20;--color-link: #1a1a1a;--font-heading: "Courier Prime", ui-monospace, "SFMono-Regular", Menlo, Monaco, Consolas, monospace;--font-body: "Courier Prime", ui-monospace, "SFMono-Regular", Menlo, Monaco, Consolas, monospace;--font-sm: 12px;--font-md: 14px;--font-lg: 16px;--font-xl: 20px;--font-xxl: 32px;--weight-regular: 400;--weight-bold: 700;--line-body: 1.5;--line-heading: 1.2;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-xxl: 48px;--radius-sm: 4px;--radius-md: 10px;--radius-lg: 16px;--shadow-level1: 0 1px 3px rgba(0, 0, 0, .08);--shadow-level2: 0 8px 12px rgba(0, 0, 0, .1);--shadow-level3: 0 16px 32px rgba(0, 0, 0, .14)}*{box-sizing:border-box}body{margin:0;background:var(--color-background);color:var(--color-text-primary);font-family:var(--font-body);font-size:var(--font-md);line-height:var(--line-body)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;opacity:.6}.button,.icon-button,.quick-card{border:1px solid var(--color-primary);border-radius:var(--radius-md);cursor:pointer}.button{align-items:center;background:var(--color-primary);color:var(--color-surface);display:inline-flex;gap:var(--space-sm);height:40px;justify-content:center;padding:0 var(--space-md);white-space:nowrap}.button.secondary,.button.ghost{background:var(--color-surface);color:var(--color-text-primary)}.button.ghost{border-color:var(--color-border)}.icon-text svg{flex:0 0 auto}.icon-button{align-items:center;background:var(--color-surface);color:var(--color-text-primary);display:inline-flex;height:32px;justify-content:center;padding:0;width:32px}.icon-button.danger{border-color:var(--color-error);color:var(--color-error)}.app-shell{display:grid;grid-template-columns:280px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);padding:var(--space-lg)}.brand{align-items:center;display:flex;gap:var(--space-md);margin-bottom:var(--space-lg)}.brand-mark{align-items:center;background:var(--color-primary);border-radius:var(--radius-md);color:var(--color-surface);display:inline-flex;font-weight:var(--weight-bold);height:40px;justify-content:center;width:40px}.brand strong,.brand span{display:block}.brand span{color:var(--color-text-secondary);font-size:var(--font-sm)}.nav{display:grid;gap:var(--space-md)}.nav-group-title{align-items:center;background:transparent;border:0;color:var(--color-text-secondary);display:flex;font-size:var(--font-sm);font-weight:var(--weight-bold);gap:var(--space-sm);margin-bottom:var(--space-xs);padding:0;text-align:left;width:100%}.nav-group-title:hover{color:var(--color-text-primary);cursor:pointer}.nav-group-title span{flex:1}.nav-group-chevron{color:var(--color-text-secondary);margin-left:auto}.nav-group-items{display:grid;gap:var(--space-xs)}.nav-link{border-radius:var(--radius-md);color:var(--color-text-secondary);display:block;padding:8px var(--space-md)}.nav-link:hover,.nav-link.active{background:var(--color-primary);color:var(--color-surface)}.main{min-width:0;padding:var(--space-xl)}.topbar{align-items:flex-start;display:flex;gap:var(--space-md);justify-content:space-between;margin-bottom:var(--space-lg)}.topbar h1,.login-panel h1,.modal h2{font-family:var(--font-heading);font-size:var(--font-xxl);line-height:var(--line-heading);margin:0}.modal h2{font-size:var(--font-xl)}.topbar p,.login-panel p,.modal p{color:var(--color-text-secondary);margin:var(--space-xs) 0 0}.topbar-actions{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-sm);justify-content:flex-end}.account-badge{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);display:inline-flex;max-width:320px;overflow:hidden;padding:9px var(--space-md);text-overflow:ellipsis;white-space:nowrap}.error-text{color:var(--color-error)}.panel,.login-panel,.modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-level1)}.panel{padding:var(--space-lg)}.filter-bar{border-bottom:1px solid var(--color-border);display:grid;gap:var(--space-md);grid-template-columns:repeat(4,minmax(160px,1fr));margin-bottom:var(--space-md);padding-bottom:var(--space-md)}.filter-actions{align-items:end;display:flex;gap:var(--space-sm)}.form-grid{display:grid;gap:var(--space-md);grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.single{grid-template-columns:1fr}label{color:var(--color-text-secondary);display:grid;font-size:var(--font-sm);gap:var(--space-xs)}label.full,.full{grid-column:1 / -1}input,select,textarea{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);min-height:40px;padding:8px 10px;width:100%}textarea{min-height:88px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #11111114;outline:none}.inline-input{min-height:32px;min-width:96px;padding:5px 8px}.toolbar{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-md)}.toolbar>div{display:flex;gap:var(--space-sm)}.toolbar span{color:var(--color-text-secondary);font-size:var(--font-sm)}.select-cell{max-width:48px;text-align:center;width:48px}.select-cell input[type=checkbox]{min-height:auto;width:auto}.table-wrap{overflow-x:auto}.permission-matrix{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow-x:auto}.export-filter-builder{border:1px solid var(--color-border);border-radius:var(--radius-md)}.export-filter-builder .form-grid{padding:var(--space-md)}.permission-matrix-title{border-bottom:1px solid var(--color-border);color:var(--color-text-secondary);font-size:var(--font-sm);font-weight:var(--weight-bold);padding:var(--space-sm) var(--space-md)}.permission-matrix table{min-width:520px}.permission-matrix th,.permission-matrix td{padding:8px var(--space-md)}.permission-matrix input[type=checkbox]{min-height:auto;width:auto}.visibility-grid{display:grid;gap:var(--space-sm);grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.visibility-item{align-items:center;border:1px solid var(--color-border);border-radius:var(--radius-md);display:grid;gap:var(--space-xs);grid-template-columns:auto 1fr;padding:var(--space-sm)}.visibility-item input[type=checkbox]{min-height:auto;width:auto}.visibility-item code{color:var(--color-text-secondary);font-size:var(--font-sm);grid-column:2}table{border-collapse:collapse;min-width:900px;width:100%}th,td{border-bottom:1px solid var(--color-border);padding:10px var(--space-sm);text-align:left;vertical-align:top}th{color:var(--color-text-secondary);font-size:var(--font-sm);font-weight:var(--weight-bold);white-space:nowrap}td{max-width:260px;overflow-wrap:anywhere}.detail-grid{border:1px solid var(--color-border);border-radius:var(--radius-md);display:grid;max-height:60vh;overflow:auto}.detail-item{border-bottom:1px solid var(--color-border);display:grid;gap:var(--space-xs);padding:var(--space-sm) var(--space-md)}.detail-item:last-child{border-bottom:0}.detail-item span{color:var(--color-text-secondary);font-size:var(--font-sm);font-weight:var(--weight-bold)}.detail-item pre{font:inherit;margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.row-actions{display:flex;gap:var(--space-xs);white-space:nowrap}.pagination{align-items:center;display:flex;gap:var(--space-sm);justify-content:flex-end;margin-top:var(--space-md)}.pagination span{color:var(--color-text-secondary)}.message,.empty-state{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);margin-bottom:var(--space-md);padding:var(--space-md)}.message.error{border-color:var(--color-error);color:var(--color-error)}.quick-grid{display:grid;gap:var(--space-md);grid-template-columns:repeat(4,minmax(0,1fr))}.stat-grid{display:grid;gap:var(--space-md);grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:var(--space-lg)}.stat-item{border:1px solid var(--color-border);border-radius:var(--radius-md);display:grid;gap:var(--space-xs);min-height:80px;padding:var(--space-md)}.stat-item span{color:var(--color-text-secondary);font-size:var(--font-sm)}.stat-item strong{font-family:var(--font-heading);font-size:var(--font-xl);line-height:var(--line-heading)}.settings-status-grid{margin-top:var(--space-lg)}.quick-card{background:var(--color-surface);color:var(--color-text-primary);display:grid;gap:var(--space-xs);min-height:96px;padding:var(--space-md);text-align:left}.quick-card span{color:var(--color-text-secondary);font-size:var(--font-sm);overflow-wrap:anywhere}.forbidden-panel{align-items:flex-start;display:grid;gap:var(--space-sm)}.forbidden-panel h2{font-family:var(--font-heading);font-size:var(--font-xxl);line-height:var(--line-heading);margin:0}.forbidden-panel p{color:var(--color-text-secondary);margin:0}.login-page{align-items:center;display:flex;justify-content:center;min-height:100vh;padding:var(--space-lg)}.login-panel{display:grid;gap:var(--space-lg);max-width:480px;padding:var(--space-xl);width:100%}.eyebrow{color:var(--color-text-secondary);font-size:var(--font-sm);font-weight:var(--weight-bold)}.token-box{border-top:1px solid var(--color-border);display:grid;gap:var(--space-sm);padding-top:var(--space-md)}.switch-row{display:flex;gap:var(--space-sm)}.modal-backdrop{align-items:center;background:#1111115c;display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;padding:var(--space-lg);position:fixed;z-index:20}.modal{display:grid;gap:var(--space-md);max-height:calc(100vh - 48px);max-width:720px;overflow:auto;padding:var(--space-lg);width:100%}.modal-header,.modal-actions{align-items:flex-start;display:flex;gap:var(--space-md);justify-content:space-between}.modal-actions{align-items:center;justify-content:flex-end}@media(max-width:980px){.app-shell{grid-template-columns:1fr}.sidebar{border-bottom:1px solid var(--color-border);border-right:0}.filter-bar,.quick-grid,.stat-grid{grid-template-columns:1fr 1fr}}@media(max-width:640px){.main{padding:var(--space-md)}.topbar,.toolbar,.modal-header,.modal-actions{align-items:stretch;flex-direction:column}.filter-bar,.form-grid,.quick-grid,.stat-grid{grid-template-columns:1fr}.toolbar>div,.filter-actions,.switch-row{flex-direction:column}}
