:root{
    --primary:#F58220;
    --primary-dark:#D96D0F;
    --bg:#F5F6F8;
    --ink:#1C1F24;
    --muted:#6B7280;
    --line:#E4E7EC;
}

body{
    background:var(--bg);
    font-family:'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    color:var(--ink);
}

/* Buttons — rounded 12px, orange */
.btn-primary, .btn-brand{
    background-color:var(--primary);
    border-color:var(--primary);
    color:#fff;
    border-radius:12px;
    font-weight:600;
    padding:12px 22px;
}
.btn-primary:hover, .btn-primary:focus, .btn-brand:hover, .btn-brand:focus{
    background-color:var(--primary-dark);
    border-color:var(--primary-dark);
    color:#fff;
}
.btn-outline-brand{
    border:1.5px solid var(--line);
    color:var(--ink);
    border-radius:12px;
    font-weight:600;
    background:#fff;
    padding: 12px 32px;
}
.btn-outline-brand:hover{ border-color:var(--primary); color:var(--primary); }
.btn{ border-radius:12px; }
.btn-lg{ padding:14px 24px; }
.btn-sm{ padding:8px 14px; border-radius:10px; }
.btn-danger{ border-radius:12px; }

/* Inputs — rounded 12px, 50px height */
.form-control, .form-select{
    border-radius:12px;
    height:50px;
    border:1.5px solid var(--line);
    font-size:15px;
}
.form-control:focus, .form-select:focus{
    border-color:var(--primary);
    box-shadow:0 0 0 3px rgba(245,130,32,.15);
}
textarea.form-control{ height:auto; min-height:90px; padding-top:12px; }
.form-label{ font-weight:600; font-size:13.5px; margin-bottom:6px; }

/* Strip any browser-native spin/stepper decoration some mobile browsers add
   to numeric-pattern inputs, so our styling is what actually shows. */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button{
    -webkit-appearance:none;
    margin:0;
}
input[type=number]{ -moz-appearance:textfield; }

/* Phone number: one seamless rounded-12px, 50px control instead of Bootstrap's
   default two-box input-group look, so it matches the rest of the form. */
.phone-group{
    display:flex;
    align-items:stretch;
    border:1.5px solid var(--line);
    border-radius:12px;
    height:50px;
    overflow:hidden;
    background:#fff;
}
.phone-group.is-invalid{ border-color:#DC3545; }
.phone-group:focus-within{
    border-color:var(--primary);
    box-shadow:0 0 0 3px rgba(245,130,32,.15);
}
.phone-group select{
    border:none;
    border-right:1.5px solid var(--line);
    border-radius:0;
    height:100%;
    padding:0 10px;
    font-weight:600;
    background-color:#fff;
    flex:0 0 auto;
    width:92px;
}
.phone-group select:focus{ outline:none; box-shadow:none; }
.phone-group input{
    border:none;
    border-radius:0;
    height:100%;
    flex:1 1 auto;
    min-width:0;
    padding:0 14px;
}
.phone-group input:focus{ outline:none; box-shadow:none; }
.field-error{
    display:block;
    width:100%;
    color:#DC3545;
    font-size:.8125rem;
    margin-top:.4rem;
}

/* Radio / choice pills for Yes/No questions */
.choice-group .btn-check + .btn{
    border-radius:12px; border:1.5px solid var(--line); color:var(--muted); font-weight:600;
    height:50px; display:flex; align-items:center; justify-content:center;
}
.choice-group .btn-check:checked + .btn{
    border-color:var(--primary); background:rgba(245,130,32,.1); color:var(--primary);
}

/* Cards */
.brand-card{
    background:#fff; border:1px solid var(--line); border-radius:16px; padding:24px;
}

/* Public banner */
.brand-banner{
    background:linear-gradient(135deg,#1C1F24 0%, #2B2F36 55%, var(--primary) 140%);
    color:#fff; border-radius:18px; padding:30px 24px; margin-bottom:24px; position:relative; overflow:hidden;
}
.brand-banner .eyebrow{ color:#FFD9AE; font-size:12px; letter-spacing:.14em; text-transform:uppercase; font-weight:700; }
.brand-banner h1{ font-weight:700; font-size:28px; margin:8px 0 10px; }
.brand-banner p{ color:#D7DAE0; font-size:14.5px; margin:0; }

.brandmark{ font-weight:700; font-size:20px; color:var(--ink); }
.brandmark span{ color:var(--primary); }

/* Admin shell */
.admin-sidebar{ background:#1C1F24; min-height:100vh; }
.admin-sidebar .nav-link{ color:#B7BBC2; font-weight:600; border-radius:12px; padding:10px 14px; }
.admin-sidebar .nav-link.active, .admin-sidebar .nav-link:hover{ background:rgba(245,130,32,.90); color:#fff; }
.admin-sidebar .brandmark{ color:#fff; }

.stat-card{ background:#fff; border:1px solid var(--line); border-radius:16px; padding:20px; }
.stat-card .num{ font-size:28px; font-weight:700; color:var(--ink); }
.stat-card .label{ font-size:12px; color:var(--muted); text-transform:uppercase; letter-spacing:.05em; }

.badge-yes{ background:#E8F8EE; color:#1D8A4C; font-weight:600; }
.badge-no{ background:#FBEAEA; color:#C0392B; font-weight:600; }

table.table thead th{
    font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted);
    border-bottom:2px solid var(--line);
}
table.table td{ vertical-align:middle; font-size:13.5px; }
