:root{--accent:#60006c;--accent-soft:#f4e7f6;--text:#202124;--text-muted:#5f6368;--bg:#f8f9fa;--surface:#fff;--border:#dadce0;--error:#c5221f;--warn-bg:#fef7e0;--warn-border:#f9ab00;color:var(--text);font-family:Segoe UI,Roboto,Ubuntu,sans-serif}*{box-sizing:border-box}body{background:var(--bg);margin:0;font-size:14.5px}h1{font-size:22px;font-weight:500}h2{font-size:17px;font-weight:500}a{color:var(--accent);text-decoration:none}button,.btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:9px 18px;font-size:14px}button:disabled{opacity:.6;cursor:default}button.secondary{background:var(--surface);color:var(--accent);border:1px solid var(--border)}button.danger{background:var(--error)}input,select,textarea{border:1px solid var(--border);border-radius:4px;width:100%;padding:8px 10px;font-family:inherit;font-size:14px}label{color:var(--text-muted);margin-bottom:12px;display:block}label>input,label>select,label>textarea{color:var(--text);margin-top:4px}.error-text{color:var(--error);margin-bottom:10px}.loading,.not-authorized{text-align:center;color:var(--text-muted);padding:48px}.empty-state{text-align:center;color:var(--text-muted);padding:32px}.login-wrap{justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;width:100%;max-width:420px;padding:36px}.login-card h1{color:var(--accent);margin:0}.login-sub{color:var(--text-muted);margin-top:4px;margin-bottom:24px}.login-card button{width:100%;margin-top:8px}.topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:10;align-items:center;gap:12px;height:56px;padding:0 20px;display:flex;position:sticky;top:0}.topbar .brand{color:var(--accent);font-size:18px;font-weight:500}.topbar .spacer{flex:1}.topbar .user{color:var(--text-muted)}.topbar button{padding:7px 14px}.layout{min-height:calc(100vh - 56px);display:flex}.sidenav{background:var(--surface);border-right:1px solid var(--border);flex-shrink:0;width:232px;padding:12px 0}.sidenav .group{text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);padding:14px 20px 6px;font-size:11.5px}.sidenav a{color:var(--text);border-left:3px solid #0000;padding:9px 20px;display:block}.sidenav a:hover{background:var(--bg)}.sidenav a.active{background:var(--accent-soft);color:var(--accent);border-left-color:var(--accent);font-weight:500}.content{flex:1;min-width:0;padding:24px 32px}.content-inner{width:100%}.card{background:var(--surface);border:1px solid var(--border);border-radius:8px;margin-bottom:16px;padding:18px 20px}.tiles{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:18px;display:grid}.tile{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:16px 18px}.tile .value{margin-top:4px;font-size:26px;font-weight:500}.tile .label{color:var(--text-muted);font-size:13px}table.data{border-collapse:collapse;background:var(--surface);width:100%}table.data th{text-align:left;color:var(--text-muted);border-bottom:1px solid var(--border);padding:10px 12px;font-size:13px;font-weight:500}table.data td{border-bottom:1px solid var(--border);padding:11px 12px}table.data tr:last-child td{border-bottom:none}.chip{background:var(--bg);color:var(--text-muted);border-radius:12px;padding:3px 10px;font-size:12.5px;display:inline-block}.chip.ok{background:var(--accent-soft);color:var(--accent)}.login-logo{width:260px;max-width:80%;margin:0 auto 8px;display:block}.topbar .brand-logo{height:34px}.chip.bad{color:var(--error);background:#fce8e6}.chip.warn{background:var(--warn-bg);color:#b06000}.warning-banner{background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:8px;margin-bottom:14px;padding:12px 16px}.row{align-items:center;gap:12px;display:flex}.form-narrow{max-width:480px}.tabs{border-bottom:1px solid var(--border);gap:2px;margin-bottom:14px;display:flex}.tabs button{color:var(--text-muted);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;margin-bottom:-1px;padding:8px 14px}.tabs button:hover{color:var(--text);background:var(--bg)}.tabs button.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:500}.binding-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));column-gap:28px;display:grid}.preview-stage{background:var(--bg);border:1px solid var(--border);border-radius:8px;justify-content:center;padding:28px;display:flex}.preview-phone{background:var(--surface);border:1px solid var(--border);border-radius:14px;width:100%;max-width:420px;padding:20px 18px}
