:root{--color-primary:#002d6a;--color-primary-dark:#001a40;--color-primary-light:#e8edf5;--color-accent:#c3002f;--color-gold:#d4a739;--color-text:#323232;--color-text-muted:#8b8b8b;--color-border:#dadada;--color-bg:#f4f5f7;--color-surface:#fff;--color-footer-bg:#e1e2e2;--color-success:#1a8754;--color-success-bg:#e8f6ee;--color-building-bg:#fdf3e3;--radius:8px;--radius-sm:6px;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 8px 24px #00143c1f;--shadow-lg:0 20px 60px #00143c47}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;margin:0;font-family:Segoe UI,-apple-system,BlinkMacSystemFont,Helvetica Neue,Arial,sans-serif}a{color:var(--color-primary);text-decoration:none}a:hover{color:var(--color-accent)}.topbar{background:var(--color-primary);height:64px;box-shadow:var(--shadow-sm);justify-content:space-between;align-items:center;padding:0 28px;display:flex}.topbar__brand{color:#fff;letter-spacing:.2px;align-items:center;gap:10px;font-size:18px;font-weight:700;display:flex}.topbar__brand .mark{background:var(--color-gold);width:30px;height:30px;color:var(--color-primary-dark);border-radius:7px;justify-content:center;align-items:center;font-size:15px;font-weight:800;display:flex}.topbar__brand .brand-sub{color:#fff9;margin-left:4px;font-size:13px;font-weight:400}.topbar__user{color:#fff;align-items:center;gap:12px;font-size:14px;display:flex}.topbar__user .avatar{background:var(--color-gold);width:32px;height:32px;color:var(--color-primary-dark);border-radius:50%;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex}.topbar__user .signout{color:#ffffffbf;border-left:1px solid #ffffff40;padding-left:12px;font-size:13px}.topbar__user .signout:hover{color:#fff}.btn{border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-size:14px;font-weight:600;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-dark)}.btn-secondary{color:var(--color-primary);border-color:var(--color-border);background:#fff}.btn-secondary:hover{border-color:var(--color-primary)}.btn-block{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}.field{margin-bottom:18px}.field label{color:var(--color-text);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.field .hint{color:var(--color-text-muted);margin-top:6px;font-size:12px}.input,.input-group input{border:1px solid var(--color-border);border-radius:var(--radius-sm);width:100%;color:var(--color-text);background:#fff;outline:none;padding:11px 14px;font-size:14px;transition:border-color .15s,box-shadow .15s}.input:focus,.input-group input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.input-group{border:1px solid var(--color-border);border-radius:var(--radius-sm);align-items:stretch;transition:border-color .15s,box-shadow .15s;display:flex;overflow:hidden}.input-group:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.input-group input{border:none;flex:1;box-shadow:none!important}.input-group .suffix{color:var(--color-text-muted);border-left:1px solid var(--color-border);white-space:nowrap;background:#f7f8fa;align-items:center;padding:0 14px;font-size:13px;display:flex}.icon-btn{border-radius:var(--radius-sm);border:1px solid var(--color-border);width:34px;height:34px;color:var(--color-primary);cursor:pointer;background:#fff;justify-content:center;align-items:center;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.icon-btn svg{width:16px;height:16px}.icon-btn:hover{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.icon-btn.live:hover{background:var(--color-success);border-color:var(--color-success)}.badge{border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge .dot{border-radius:50%;width:6px;height:6px}.badge-live{background:var(--color-success-bg);color:var(--color-success)}.badge-live .dot{background:var(--color-success)}.badge-building{background:var(--color-building-bg);color:var(--color-gold)}.badge-building .dot{background:var(--color-gold)}.surface{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid var(--color-border)}html,body,#root{height:100%}body{margin:0}.login-page{background:linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 60%);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{width:100%;max-width:400px;box-shadow:var(--shadow-lg);background:#fff;border-radius:12px;padding:40px 36px 32px}.login-card__brand{justify-content:center;align-items:center;gap:10px;margin-bottom:8px;display:flex}.login-card__brand .mark{background:var(--color-gold);width:36px;height:36px;color:var(--color-primary-dark);border-radius:8px;justify-content:center;align-items:center;font-size:17px;font-weight:800;display:flex}.login-card__brand .name{color:var(--color-primary);font-size:20px;font-weight:700}.login-card h1{text-align:center;color:var(--color-text-muted);margin:0 0 28px;font-size:15px;font-weight:500}.login-error{color:var(--color-accent);margin:-8px 0 16px;font-size:13px}.login-footer-note{text-align:center;color:var(--color-text-muted);margin-top:22px;font-size:12px}.progress-banner{background:var(--color-primary-light);border-bottom:1px solid var(--color-border);padding:10px 28px}.progress-banner__label{color:var(--color-primary);margin-bottom:6px;font-size:12.5px;font-weight:600}.progress-banner__track{background:#dfe6f1;border-radius:999px;height:6px;overflow:hidden}.progress-banner__fill{background:var(--color-gold);height:100%;transition:width .4s}.page-wrap{max-width:1080px;margin:0 auto;padding:32px 28px 60px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:22px;display:flex}.page-header h1{color:var(--color-primary);margin:0;font-size:22px}.page-header p{color:var(--color-text-muted);margin:4px 0 0;font-size:13px}table{border-collapse:collapse;width:100%}thead th{text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);background:#fafbfc;padding:14px 20px;font-size:11px}tbody td{vertical-align:middle;border-bottom:1px solid #eef0f2;padding:16px 20px;font-size:14px}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:#fafbfd}.site-name{color:var(--color-text);font-weight:600}.site-domain{color:var(--color-text-muted);margin-top:2px;font-size:12.5px}.actions-cell{gap:8px;display:flex}.col-actions{width:300px}.action-link{border-radius:var(--radius-sm);border:1px solid var(--color-border);width:132px;height:30px;color:var(--color-primary);white-space:nowrap;cursor:pointer;background:#fff;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:500;text-decoration:none;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.action-link svg{flex-shrink:0;width:14px;height:14px}.action-link:hover{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.modal-backdrop{z-index:50;background:#0a142880;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{width:100%;max-width:440px;box-shadow:var(--shadow-lg);background:#fff;border-radius:12px;overflow:hidden}.modal__header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal__header h2{color:var(--color-primary);margin:0;font-size:17px}.modal__close{width:28px;height:28px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:flex}.modal__close:hover{color:var(--color-text);background:#f2f3f5}.modal__body{padding:22px 24px 6px}.modal__footer{justify-content:flex-end;gap:10px;padding:18px 24px 22px;display:flex}.preview-line{color:var(--color-text-muted);border:1px dashed var(--color-border);border-radius:var(--radius-sm);background:#f7f8fa;align-items:center;gap:8px;margin-top:-6px;margin-bottom:18px;padding:10px 12px;font-size:13px;display:flex}.preview-line strong{color:var(--color-primary);font-weight:600}.preview-line--stacked{flex-direction:column;align-items:stretch;gap:4px}
