:root{--color-primary: #1B4965;--color-primary-dark: #143a52;--color-primary-light: #e8eef3;--color-bg: #F8F5EE;--color-surface: #FFFFFF;--color-surface-2: #FAF7F0;--color-border: #E5DDD0;--color-text: #1A2B3A;--color-muted: #6E7F8F;--color-danger: #B23A48;--color-warning: #D89B2B;--color-success: #4F8A6A;--radius: 6px;--radius-lg: 10px;--shadow-sm: 0 1px 2px rgba(0,0,0,.04);--shadow: 0 2px 8px rgba(0,0,0,.06);--font-sans: -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;--font-mono: ui-monospace, "SF Mono", "Cascadia Mono", Menlo, monospace}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.5}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit;font-size:inherit}code{font-family:var(--font-mono);font-size:.88em;background:var(--color-surface-2);padding:1px 5px;border-radius:3px;border:1px solid var(--color-border)}.app{min-height:100%;display:flex;flex-direction:column}.app-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:10}.app-header-inner{max-width:1200px;margin:0 auto;padding:12px 24px;display:flex;align-items:center;gap:24px}.app-title{font-size:18px;font-weight:600;margin:0;color:var(--color-primary);letter-spacing:-.01em}.app-nav{display:flex;gap:4px;flex:1;flex-wrap:wrap}.nav-item{background:transparent;border:1px solid transparent;padding:6px 12px;border-radius:var(--radius);color:var(--color-text);font-size:14px;font-weight:500;transition:background .15s,border-color .15s}.nav-item:hover{background:var(--color-surface-2)}.nav-item.active{background:var(--color-primary-light);color:var(--color-primary)}.version-badge{background:transparent;border:1px solid var(--color-border);color:var(--color-muted);font-size:12px;padding:4px 10px;border-radius:var(--radius);font-family:var(--font-mono)}.version-badge:hover{border-color:var(--color-primary);color:var(--color-primary)}.app-main{flex:1;max-width:1200px;width:100%;margin:0 auto;padding:24px}.page-header{margin-bottom:24px;display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.page-header h2{margin:0 0 4px;font-size:22px;font-weight:600;letter-spacing:-.01em}.page-header-actions{display:flex;align-items:center;gap:12px}.muted{color:var(--color-muted)}.small{font-size:.875em}.btn{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:7px 14px;font-size:14px;font-weight:500;color:var(--color-text);transition:background .15s,border-color .15s;display:inline-flex;align-items:center;gap:6px;text-decoration:none}.btn:hover:not(:disabled){background:var(--color-surface-2);border-color:var(--color-primary)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.btn.primary:hover:not(:disabled){background:var(--color-primary-dark)}.btn.ghost{background:transparent;border-color:transparent}.btn.ghost:hover:not(:disabled){background:var(--color-surface-2)}.btn.small{padding:4px 10px;font-size:13px}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:18px;box-shadow:var(--shadow-sm)}.card-skeleton{background:var(--color-surface-2);color:var(--color-muted);text-align:center;padding:28px}.card-header h3{margin:0 0 12px;font-size:14px;font-weight:500;color:var(--color-muted);text-transform:uppercase;letter-spacing:.04em}.big-number{font-size:36px;font-weight:600;color:var(--color-primary);line-height:1;font-variant-numeric:tabular-nums}.card-meta{margin-top:12px;padding-top:10px;border-top:1px solid var(--color-border)}input[type=text],input[type=email],input[type=number],input[type=url],input[type=password],select,textarea{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:7px 10px;font-size:14px;width:100%;max-width:360px}input:focus,select:focus,textarea:focus{outline:2px solid var(--color-primary-light);border-color:var(--color-primary)}.form-row{display:flex;align-items:center;gap:10px;margin-bottom:14px}.form-row.stacked{flex-direction:column;align-items:flex-start;gap:6px}.form-row.stacked>span:first-child{font-weight:500}.form-actions{margin-top:20px;display:flex;align-items:center;gap:12px}.form-actions.sticky{position:sticky;bottom:0;background:var(--color-surface);border-top:1px solid var(--color-border);margin:24px -24px 0;padding:12px 24px}.saved-flash{color:var(--color-success);font-size:14px;font-weight:500}.color-input-row{display:flex;gap:8px;align-items:center}.color-input-row input[type=color]{width:44px;height:36px;padding:2px;cursor:pointer}.data-table{width:100%;border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.data-table th{text-align:left;font-size:12px;font-weight:500;color:var(--color-muted);text-transform:uppercase;letter-spacing:.04em;padding:10px 14px;border-bottom:1px solid var(--color-border);background:var(--color-surface-2)}.data-table td{padding:10px 14px;border-bottom:1px solid var(--color-border);font-size:14px}.data-table tr:last-child td{border-bottom:none}.data-table tr.inactive{opacity:.5}.add-form{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;padding:14px;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius)}.toggle{position:relative;display:inline-block;width:40px;height:22px;flex-shrink:0}.toggle.small{width:32px;height:18px}.toggle input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;inset:0;background:var(--color-border);border-radius:22px;transition:background .2s}.toggle-slider:before{content:"";position:absolute;height:16px;width:16px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:transform .2s;box-shadow:0 1px 2px #0003}.toggle.small .toggle-slider:before{height:12px;width:12px}.toggle input:checked+.toggle-slider{background:var(--color-primary)}.toggle input:checked+.toggle-slider:before{transform:translate(18px)}.toggle.small input:checked+.toggle-slider:before{transform:translate(14px)}.toggle input:disabled+.toggle-slider{opacity:.5;cursor:not-allowed}.auth-page{max-width:600px}.auth-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:24px}.auth-demo-users{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.demo-user-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:16px;text-align:left;transition:border-color .15s,transform .1s}.demo-user-card:hover{border-color:var(--color-primary);transform:translateY(-1px)}.demo-user-name{font-weight:600;margin-bottom:4px}.role-tag{display:inline-block;font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.05em;background:var(--color-primary-light);color:var(--color-primary);padding:2px 8px;border-radius:10px;margin-top:8px}.role-tag.small{font-size:10px;padding:1px 6px}.auth-footer{margin-top:24px}.admin-page{max-width:1100px}.admin-layout{display:grid;grid-template-columns:220px 1fr;gap:28px;align-items:start}.admin-nav{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:12px;position:sticky;top:80px}.admin-nav-group{margin-bottom:16px}.admin-nav-group:last-child{margin-bottom:0}.admin-nav-label{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--color-muted);padding:6px 10px 4px}.admin-nav-item{display:block;width:100%;text-align:left;background:transparent;border:none;padding:7px 10px;border-radius:var(--radius);color:var(--color-text);font-size:14px}.admin-nav-item:hover{background:var(--color-surface-2)}.admin-nav-item.active{background:var(--color-primary-light);color:var(--color-primary);font-weight:500}.admin-content{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:24px}.admin-section .section-header{margin-bottom:20px}.admin-section .section-header h3{margin:0 0 4px;font-size:18px;font-weight:600}.section-toolbar{margin-bottom:14px}.page-toggle-list{display:flex;flex-direction:column;gap:12px}.page-toggle-row{display:flex;align-items:flex-start;gap:16px;padding:14px;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius)}.page-toggle-row.on{background:var(--color-surface)}.page-toggle-info{flex:1}.page-toggle-title{display:flex;align-items:center;gap:10px;margin-bottom:4px}.page-toggle-desc{margin-bottom:8px}.page-toggle-contract{margin-top:10px;display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:13px}.contract-label{font-weight:500;color:var(--color-muted);text-transform:uppercase;font-size:11px;letter-spacing:.04em}.warning{margin-top:10px;padding:6px 10px;background:#fff4da;border:1px solid var(--color-warning);border-radius:var(--radius);font-size:13px;color:#6b4d00}.info-banner{margin-top:16px;padding:10px 14px;background:var(--color-primary-light);border:1px solid var(--color-primary);border-radius:var(--radius);font-size:14px;color:var(--color-primary)}.error-banner{padding:10px 14px;background:#fbe6e8;border:1px solid var(--color-danger);border-radius:var(--radius);color:var(--color-danger);margin-bottom:16px}.branding-preview{margin:20px 0}.preview-bar{margin-top:6px;display:flex;align-items:center;gap:12px;padding:14px 18px;color:#fff;border-radius:var(--radius);font-weight:600}.preview-logo{height:24px}.empty-state,.page-empty{text-align:center;padding:48px 24px;background:var(--color-surface);border:1px dashed var(--color-border);border-radius:var(--radius-lg)}.empty-state h3,.page-empty h2{margin-top:0}.page-error,.page-missing-deps,.page-forbidden{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:28px;max-width:640px}.page-error{border-left:4px solid var(--color-danger)}.page-missing-deps{border-left:4px solid var(--color-warning)}.page-forbidden{border-left:4px solid var(--color-muted)}.page-loading{padding:48px 24px;text-align:center;color:var(--color-muted)}.action-row{padding:16px;border-bottom:1px solid var(--color-border);margin-bottom:16px}.action-row:last-child{border-bottom:none}.action-row h4{margin:0 0 4px;font-size:14px}.modal-backdrop{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100;padding:24px}.modal{background:var(--color-surface);border-radius:var(--radius-lg);max-width:560px;width:100%;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0003}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--color-border)}.modal-header h2{margin:0;font-size:18px}.modal-close{background:transparent;border:none;font-size:24px;color:var(--color-muted);width:32px;height:32px;border-radius:var(--radius)}.modal-close:hover{background:var(--color-surface-2)}.modal-body{padding:20px;overflow-y:auto}.changelog-entry{margin-bottom:20px}.changelog-entry:last-child{margin-bottom:0}.changelog-entry h3{margin:0 0 8px;font-size:15px}.changelog-entry ul{margin:0;padding-left:20px}.changelog-entry li{margin-bottom:4px}.devtools-toggle{position:fixed;bottom:16px;right:16px;width:40px;height:40px;border-radius:50%;background:var(--color-primary);color:#fff;border:none;font-size:18px;box-shadow:var(--shadow);z-index:50}.devtools-panel{position:fixed;bottom:64px;right:16px;width:460px;max-width:calc(100vw - 32px);max-height:70vh;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:0 10px 40px #00000026;overflow-y:auto;z-index:49;font-size:12px}.devtools-panel header{position:sticky;top:0;background:var(--color-surface-2);padding:10px 14px;border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between}.devtools-panel h3{margin:0;font-size:13px}.devtools-panel section{padding:10px 14px;border-bottom:1px solid var(--color-border)}.devtools-panel h4{margin:0 0 8px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--color-muted)}.devtools-panel table{width:100%;border-collapse:collapse}.devtools-panel th,.devtools-panel td{text-align:left;padding:4px 6px;vertical-align:top;border-bottom:1px solid var(--color-border)}.devtools-panel .value-cell{max-width:200px;overflow:hidden;text-overflow:ellipsis}.activity-log{list-style:none;padding:0;margin:0}.activity-log li{padding:3px 0}@media (max-width: 720px){.admin-layout{grid-template-columns:1fr}.admin-nav{position:static}.app-header-inner{flex-wrap:wrap;padding:10px 16px}.app-nav{order:3;width:100%}.page-toggle-row{flex-direction:column}.page-toggle-contract{grid-template-columns:1fr}.app-main{padding:16px}}
