*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg:#e7f1ef;--color-surface:#ffffffc7;--color-border:#164b4524;--color-text:#102d2a;--color-text-secondary:#5d7470;--color-primary:#176b5b;--color-primary-hover:#0f5548;--color-danger:#c43d47;--color-success:#16845d;--color-warning:#b77818;--sidebar-width:240px;--radius:12px;--font:"Avenir Next", Avenir, "Segoe UI", sans-serif;--font-display:"Iowan Old Style", Baskerville, Georgia, serif;--font-mono:"SF Mono", "Fira Code", "Fira Mono", monospace}html{font-size:14px}body{font-family:var(--font);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;line-height:1.5}body:before{z-index:-1;content:"";background:radial-gradient(circle at 78% 8%,#6fb6d157,#0000 33%),radial-gradient(circle at 18% 88%,#5395753d,#0000 38%),linear-gradient(145deg,#edf6f3 0%,#e2eff0 48%,#edf2e9 100%);position:fixed;inset:0}.app-layout{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--color-surface);border-right:1px solid var(--color-border);z-index:10;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-header{border-bottom:1px solid var(--color-border);align-items:baseline;gap:8px;padding:20px;display:flex}.sidebar-logo{letter-spacing:-.02em;font-size:1.25rem;font-weight:700}.sidebar-tag{text-transform:uppercase;letter-spacing:.08em;color:var(--color-primary);font-size:.7rem;font-weight:600}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:12px;display:flex}.nav-link{border-radius:var(--radius);color:var(--color-text-secondary);padding:8px 12px;font-size:.9rem;font-weight:500;text-decoration:none;transition:background .1s,color .1s;display:block}.nav-link:hover{background:var(--color-bg);color:var(--color-text)}.nav-link.active{background:var(--color-primary);color:#fff}.sidebar-footer{border-top:1px solid var(--color-border);flex-direction:column;gap:4px;padding:16px 20px;display:flex}.sidebar-admin{color:var(--color-text-secondary);font-size:.85rem;font-weight:500}.sidebar-logout{color:var(--color-text-secondary);cursor:pointer;text-align:left;font-size:.8rem;font-family:var(--font);background:0 0;border:none;padding:0}.sidebar-logout:hover{color:var(--color-danger)}.main-content{margin-left:var(--sidebar-width);flex:1;max-width:1200px;padding:32px}.page{animation:.15s fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.page-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.page-title{letter-spacing:-.02em;margin-bottom:24px;font-size:1.5rem;font-weight:700}.page-back{margin-bottom:16px}.page-loading{text-align:center;color:var(--color-text-secondary);padding:48px 0}.login-page{background:var(--color-bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;width:380px;padding:40px}.login-title{text-align:center;margin-bottom:4px;font-size:1.5rem;font-weight:700}.login-subtitle{text-align:center;color:var(--color-text-secondary);margin-bottom:28px;font-size:.9rem}.login-form,.create-form{flex-direction:column;gap:16px;margin-bottom:16px;display:flex}.form-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.form-label{color:var(--color-text-secondary);flex-direction:column;gap:4px;font-size:.85rem;font-weight:500;display:flex}.form-input{border:1px solid var(--color-border);border-radius:var(--radius);font-size:.9rem;font-family:var(--font);background:var(--color-bg);color:var(--color-text);outline:none;padding:8px 12px;transition:border-color .15s}.form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #2563eb26}.form-error{color:var(--color-danger);border-radius:var(--radius);background:#fef2f2;border:1px solid #fecaca;padding:10px 14px;font-size:.85rem}.create-firm-shell{width:min(100%,580px);margin:0 auto}.create-firm-back{color:var(--color-text-secondary);align-items:center;gap:6px;margin-bottom:24px;font-size:.85rem;text-decoration:none;display:inline-flex}.create-firm-back:hover{color:var(--color-primary)}.create-firm-eyebrow{color:var(--color-primary);letter-spacing:.1em;text-transform:uppercase;font-size:.72rem;font-weight:700}.create-firm-title{letter-spacing:-.035em;margin:6px 0 24px;font-size:1.7rem;font-weight:750}.create-firm-form{flex-direction:column;gap:16px;padding:24px;display:flex}.form-hint{color:var(--color-text-secondary);font-weight:400}.create-firm-owner-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.create-firm-submit{gap:8px;width:100%;margin-top:4px}.button-spinner{border:2px solid #ffffff59;border-top-color:#fff;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.create-firm-success{padding-top:48px}.success-card{text-align:center;padding:32px}.success-mark{width:42px;height:42px;color:var(--color-success);background:#dcfce7;border-radius:50%;place-items:center;margin:0 auto 16px;font-size:1.4rem;font-weight:700;display:grid}.success-card .create-firm-title{margin-bottom:4px}.create-firm-domain{color:var(--color-text-secondary);font-family:var(--font-mono);margin-bottom:24px;font-size:.85rem}.success-actions{justify-content:center;gap:10px;display:flex}@media (width<=680px){.main-content{padding:24px 16px}.create-firm-owner-grid{grid-template-columns:1fr}}.btn{border:1px solid var(--color-border);border-radius:var(--radius);font-size:.85rem;font-weight:500;font-family:var(--font);background:var(--color-surface);color:var(--color-text);cursor:pointer;justify-content:center;align-items:center;padding:8px 16px;text-decoration:none;transition:background .1s,border-color .1s;display:inline-flex}.btn:hover{background:var(--color-bg);border-color:#c7c7cc}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn-primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-small{padding:4px 10px;font-size:.8rem}.btn-danger{color:var(--color-danger);border-color:#fecaca}.btn-danger:hover{border-color:var(--color-danger);background:#fef2f2}.filter-bar{gap:12px;margin-bottom:20px;display:flex}.filter-select{min-width:160px}.filter-search{flex:1;max-width:320px}.data-table{border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);width:100%;overflow:hidden}.data-table th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);background:var(--color-bg);border-bottom:1px solid var(--color-border);padding:10px 14px;font-size:.8rem;font-weight:600}.data-table td{border-bottom:1px solid var(--color-border);padding:10px 14px;font-size:.9rem}.data-table tr:last-child td{border-bottom:none}.cell-mono{font-family:var(--font-mono);font-size:.85rem}.status-badge{border-radius:999px;align-items:center;padding:2px 10px;font-size:.8rem;font-weight:500;display:inline-flex}.status-draft{color:#374151;background:#f3f4f6}.status-approved{color:#1e40af;background:#dbeafe}.status-provisioning,.status-verification{color:#92400e;background:#fef3c7}.status-ready,.status-active{color:#065f46;background:#d1fae5}.status-failed{color:#991b1b;background:#fee2e2}.status-suspended{color:#9d174d;background:#fce7f3}.status-archived{color:#6b7280;background:#f3f4f6}.stat-cards{flex-wrap:wrap;gap:12px;display:flex}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-direction:column;gap:4px;min-width:120px;padding:16px 20px;display:flex}.stat-count{letter-spacing:-.02em;font-size:1.75rem;font-weight:700}.stat-label{text-transform:capitalize;font-size:.8rem;font-weight:500}.dashboard-section{margin-bottom:32px}.section-title{color:var(--color-text);margin-bottom:12px;font-size:1rem;font-weight:600}.firm-header{justify-content:space-between;align-items:flex-start;margin-bottom:24px;display:flex}.firm-slug{color:var(--color-text-secondary);font-family:var(--font-mono);margin-top:-16px;margin-bottom:4px;font-size:.85rem}.detail-grid{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;display:grid}.detail-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:16px;padding:20px}.detail-list{grid-template-columns:120px 1fr;gap:8px 16px;display:grid}.detail-list dt{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.8rem;font-weight:600}.detail-list dd{font-size:.9rem}.action-buttons{flex-wrap:wrap;gap:8px;display:flex}.pagination{justify-content:center;align-items:center;gap:16px;margin-top:16px;padding:12px;display:flex}.pagination-btn{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);cursor:pointer;font-size:.85rem;font-family:var(--font);padding:6px 14px}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.pagination-info{color:var(--color-text-secondary);font-size:.85rem}.firm-header-right{align-items:center;gap:8px;display:flex}.provisioning-done{color:var(--color-success);margin-left:8px;font-size:.85rem;font-weight:400}.provisioning-list{flex-direction:column;gap:8px;display:flex}.provisioning-item{border:1px solid var(--color-border);border-radius:var(--radius);justify-content:space-between;align-items:center;padding:12px 16px;transition:border-color .15s;display:flex}.provisioning-item-info{align-items:center;gap:12px;display:flex}.provisioning-step{background:var(--color-bg);width:28px;height:28px;color:var(--color-text-secondary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.8rem;font-weight:600;display:flex}.provisioning-completed{border-color:var(--color-success);background:#f0fdf4}.provisioning-completed .provisioning-step{background:var(--color-success);color:#fff}.provisioning-running{border-color:var(--color-primary);background:#eff6ff}.provisioning-running .provisioning-step{background:var(--color-primary);color:#fff}.provisioning-failed{border-color:var(--color-danger);background:#fef2f2}.provisioning-failed .provisioning-step{background:var(--color-danger);color:#fff}.provisioning-pending .provisioning-step{background:var(--color-bg);color:var(--color-text-secondary)}.provisioning-status{text-transform:uppercase;letter-spacing:.04em;margin-left:8px;font-size:.75rem;font-weight:600;display:inline-block}.provisioning-status-pending{color:var(--color-text-secondary)}.provisioning-status-running{color:var(--color-primary)}.provisioning-status-completed{color:var(--color-success)}.provisioning-status-failed{color:var(--color-danger)}.provisioning-item-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.provisioning-note{color:var(--color-text-secondary);text-align:right;max-width:300px;font-size:.8rem}.live-badge{text-transform:uppercase;letter-spacing:.06em;color:var(--color-success);align-items:center;gap:4px;font-size:.75rem;font-weight:600;animation:2s ease-in-out infinite pulse;display:inline-flex}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.empty-state{color:var(--color-text-secondary);padding:24px 0;font-size:.9rem}.sidebar{color:#f4fbf8;-webkit-backdrop-filter:blur(22px)saturate(125%);backdrop-filter:blur(22px)saturate(125%);background:#082d2be8;border-right-color:#ffffff17;box-shadow:18px 0 55px #0d39351a}.sidebar-header,.sidebar-footer{border-color:#ffffff1c}.sidebar-logo,.page-title,.create-firm-title,.login-title,.stat-count{font-family:var(--font-display)}.sidebar-logo{font-weight:500}.sidebar-tag{color:#9ed8c2}.nav-link,.sidebar-admin,.sidebar-logout{color:#e8f7f1ad}.nav-link:hover{color:#fff;background:#ffffff14}.nav-link.active{color:#f4fffb;background:#ffffff24;box-shadow:inset 0 0 0 1px #ffffff1a}.main-content{max-width:1320px}.page-title{letter-spacing:-.035em;font-size:2rem;font-weight:500}.login-page{background:linear-gradient(#05272b5c,#051f1f9e),radial-gradient(circle at 70% 20%,#75b9d8,#0000 42%),linear-gradient(145deg,#4b987f,#255b64)}.login-card{color:#eefaf6;-webkit-backdrop-filter:blur(22px)saturate(130%);backdrop-filter:blur(22px)saturate(130%);background:#05232480;border-color:#fff3;border-radius:20px;box-shadow:0 28px 80px #01181b4d}.login-subtitle,.login-card .form-label{color:#eefaf5ad}.form-input{background:#ffffffad}.form-input:focus{box-shadow:0 0 0 3px #176b5b24}.btn,.pagination-btn{border-radius:999px;transition:transform .16s,background .16s,border-color .16s}.btn:hover:not(:disabled),.pagination-btn:hover:not(:disabled){background:#fff;border-color:#176b5b42;transform:translateY(-1px)}.btn-primary{box-shadow:0 10px 28px #0f55482b}.data-table,.stat-card,.detail-card{-webkit-backdrop-filter:blur(16px)saturate(120%);backdrop-filter:blur(16px)saturate(120%);background:#ffffffab;box-shadow:0 18px 50px #11453f12}.data-table th{background:#e1f0ecb8}.data-table tr:hover td{background:#eef8f4bd}.section-kicker{color:var(--color-primary);letter-spacing:.11em;text-transform:uppercase;margin-bottom:3px;font-size:.68rem;font-weight:700}.section-heading-row{justify-content:space-between;align-items:start;gap:16px;margin-bottom:18px;display:flex}.section-heading-row .section-title{font-family:var(--font-display);margin-bottom:0;font-size:1.3rem;font-weight:500}.provisioning-summary{color:var(--color-primary);white-space:nowrap;background:#e7f6f0b3;border:1px solid #176b5b24;border-radius:999px;padding:6px 10px;font-size:.75rem;font-weight:600}.action-note{color:var(--color-text-secondary);margin-top:12px;font-size:.84rem;line-height:1.55}.provisioning-item{background:#ffffff94}.provisioning-item-info>div{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.provisioning-status{margin-left:2px}.provisioning-attempts{color:var(--color-text-secondary);font-size:.74rem}.provisioning-error{color:var(--color-danger);flex-basis:100%;font-size:.78rem;line-height:1.4}@media (width<=760px){:root{--sidebar-width:0px}.app-layout{display:block}.sidebar{width:100%;min-height:auto;position:static}.sidebar-header{padding:14px 18px}.sidebar-nav{flex-direction:row;padding:8px 12px;overflow-x:auto}.nav-link{white-space:nowrap}.sidebar-footer{display:none}.main-content{margin-left:0}.detail-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
