/* ==========================================================================
   Audience365 design system (on top of Bootstrap 4)
   Google-inspired: clean white surfaces, pastel tints, pill buttons.
   Change the tokens below and the whole platform follows.
   ========================================================================== */
:root{
  --brand:#2456d6;--brand-dark:#1a43ad;--brand-soft:#e4eaf9;--brand-rgb:36,86,214;
  --ink:#0b0b0c;--heading:#0b0b0c;--text:#56544f;--muted:#8b8881;
  --line:#d4d2cc;--bg:#f1f0ee;--card:#faf9f7;
  /* accent tones: background / foreground */
  --blue-bg:#dfe7fa;--blue:#2456d6;--red-bg:#fbe1da;--red:#d9442b;
  --yellow-bg:#fbeecb;--yellow:#9a6500;--green-bg:#dcf1e0;--green:#1e7d3c;--purple-bg:#ebe2fb;--purple:#6b3fd4;
  --radius:0px;
  --shadow-sm:none;
  --shadow:0 0 0 1px var(--ink);
  --shadow-lg:0 18px 40px -18px rgba(11,11,12,.35);
  --font-head:"Archivo","Arial Black",Inter,Arial,sans-serif;
  --font-body:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Consolas,monospace;
}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);color:var(--text);background:var(--bg);display:flex;flex-direction:column;min-height:100vh;font-size:.95rem;-webkit-font-smoothing:antialiased;overflow-x:hidden}
main{flex:1 0 auto}
h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:var(--font-head);color:var(--heading);font-weight:600;letter-spacing:-.01em}
a{color:var(--brand)}a:hover{color:var(--brand-dark)}
label{color:var(--ink);font-weight:500;font-size:.875rem;margin-bottom:.35rem}
.text-muted{color:var(--muted)!important}.text-dark{color:var(--ink)!important}
.skip-link{position:absolute;top:0;left:0;background:#fff;padding:.5rem 1rem;z-index:2000}
.flash-area{margin-top:1rem}
img,svg{max-width:100%}

/* ---- Controls ---- */
/* One compact button size across the whole product (same as "New survey" in the header) */
.btn,.btn-sm,.btn-lg{font-family:var(--font-head);font-weight:500;border-radius:999px;padding:.36rem .95rem;font-size:.84rem;line-height:1.5;transition:box-shadow .15s,background .15s,color .15s,border-color .15s}
.btn-lg{padding:.45rem 1.25rem;font-size:.88rem}
.btn-block{padding-top:.5rem;padding-bottom:.5rem}
.btn i{font-size:.9em}
.btn-primary{background:var(--brand);border-color:var(--brand)}
.btn-primary:hover,.btn-primary:focus,.btn-primary:not(:disabled):not(.disabled):active{background:var(--brand-dark);border-color:var(--brand-dark);box-shadow:0 1px 3px rgba(60,64,67,.3),0 4px 10px -2px rgba(var(--brand-rgb),.45)}
.btn-primary:focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(var(--brand-rgb),.25)}
.btn-primary:disabled{background:var(--brand);border-color:var(--brand);box-shadow:none}
.btn-outline-primary{color:var(--brand);border-color:var(--line);background:#fff}
.btn-outline-primary:hover,.btn-outline-primary:not(:disabled):not(.disabled):active{background:var(--brand-soft);border-color:var(--brand-soft);color:var(--brand-dark)}
.btn-outline-secondary{color:var(--ink);border-color:var(--line);background:#fff}
.btn-outline-secondary:hover,.btn-outline-secondary:not(:disabled):not(.disabled):active{background:#f1f3f4;color:var(--ink);border-color:var(--line)}
.btn-success{background:var(--green);border-color:var(--green)}.btn-success:hover{background:#137333;border-color:#137333}
.btn.is-loading{opacity:.7;pointer-events:none}
.form-control,.custom-select{border-radius:10px;border-color:#dadce0;color:var(--ink);min-height:42px}
.form-control-sm,.custom-select-sm{min-height:34px;border-radius:8px}
.form-control-lg{border-radius:12px}
.form-control:focus,.custom-select:focus{border-color:var(--brand);box-shadow:0 0 0 .2rem rgba(var(--brand-rgb),.14)}
.form-control::placeholder{color:#9aa0a6}
.custom-control-input:checked~.custom-control-label::before{background:var(--brand);border-color:var(--brand)}
.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(var(--brand-rgb),.18)}
.custom-range::-webkit-slider-thumb{background:var(--brand)}
.custom-range::-moz-range-thumb{background:var(--brand)}
.input-group-text{background:#f1f3f4;border-color:#dadce0;color:var(--muted);border-radius:10px}
.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}
.input-group>.input-group-prepend+.form-control{border-top-left-radius:0;border-bottom-left-radius:0}
.input-group-append .btn{border-radius:0}.input-group-append .btn:last-child{border-radius:0 10px 10px 0}
.alert{border:0;border-radius:12px}
.alert-success{background:var(--green-bg);color:#0d652d}.alert-danger{background:var(--red-bg);color:#a50e0e}
.alert-warning{background:var(--yellow-bg);color:#7a4a00}.alert-info{background:var(--blue-bg);color:#174ea6}
.dropdown-menu{border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-lg);padding:.5rem}
.dropdown-item{border-radius:10px;padding:.5rem .75rem;font-weight:500;color:var(--ink)}
.dropdown-item:hover{background:#f1f3f4}.dropdown-item:active{background:var(--brand-soft);color:var(--brand-dark)}
.page-item.active .page-link{background:var(--brand);border-color:var(--brand)}
.page-link{color:var(--brand);border-color:var(--line)}
.modal-content{border:0;border-radius:var(--radius)}

/* ---- AJAX feedback ---- */
.ajax-bar{position:fixed;top:0;left:0;height:3px;width:0;z-index:3000;opacity:0;background:linear-gradient(90deg,#4285f4,#ea4335,#fbbc04,#34a853);transition:width .3s ease,opacity .3s}
.ajax-bar.on{opacity:1;width:80%;transition:width 8s cubic-bezier(.1,.6,.2,1)}
.ajax-bar.done{opacity:0;width:100%}
.toast-msg{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);background:#202124;color:#fff;padding:.7rem 1.2rem;border-radius:999px;font-weight:500;font-size:.9rem;box-shadow:var(--shadow-lg);z-index:3000;opacity:0;transition:all .25s;max-width:calc(100vw - 32px);text-align:center;pointer-events:none}
.toast-msg.show{opacity:1;transform:translate(-50%,0)}
.toast-msg.danger{background:var(--red)}.toast-msg.success{background:var(--green)}

/* ---- Cards, pills, stats ---- */
.card{border:1px solid var(--line);border-radius:var(--radius);box-shadow:none;background:var(--card)}
.card-hover{transition:box-shadow .15s,transform .15s}
.card-hover:hover{box-shadow:var(--shadow);transform:translateY(-2px)}
.pill{display:inline-flex;align-items:center;font-family:var(--font-body);font-size:.72rem;font-weight:700;padding:.2rem .65rem;border-radius:999px;vertical-align:middle;letter-spacing:.01em}
.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;margin-right:.4rem}
.pill-draft{background:#f1f3f4;color:#5f6368}.pill-published,.pill-active{background:var(--green-bg);color:var(--green)}
.pill-closed{background:#3c4043;color:#fff}.pill-suspended{background:var(--red-bg);color:var(--red)}
.pill-soon{background:var(--purple-bg);color:var(--purple)}.pill-soon::before{display:none}
.tag{display:inline-block;font-size:.72rem;font-weight:500;padding:.15rem .55rem;border-radius:999px;background:#f1f3f4;color:var(--ink);margin-right:.25rem}
.tag i{color:var(--brand);margin-right:.25rem}
.tone-blue{background:var(--blue-bg)!important;color:var(--blue)!important}.tone-red{background:var(--red-bg)!important;color:var(--red)!important}
.tone-yellow{background:var(--yellow-bg)!important;color:var(--yellow)!important}.tone-green{background:var(--green-bg)!important;color:var(--green)!important}
.tone-purple{background:var(--purple-bg)!important;color:var(--purple)!important}
.stat{display:flex;align-items:center}
.stat-icon{width:48px;height:48px;border-radius:14px;background:var(--brand-soft);color:var(--brand);display:flex;align-items:center;justify-content:center;font-size:1.15rem;margin-right:.9rem;flex-shrink:0}
.stat-num{font-family:var(--font-head);font-size:1.6rem;font-weight:600;color:var(--ink);line-height:1.1}
.stat-label{font-size:.8rem;color:var(--muted);font-weight:500}
.empty{padding:3.5rem 1rem;text-align:center}
.empty-icon{width:76px;height:76px;border-radius:50%;background:var(--brand-soft);color:var(--brand);font-size:1.8rem;display:inline-flex;align-items:center;justify-content:center;margin-bottom:1rem}
.page-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;margin-bottom:1.5rem}
.page-head h1{font-size:1.6rem;margin:0}
.page-head p{margin:.15rem 0 0;color:var(--muted)}

/* ---- Top navigation ---- */
.app-nav{background:rgba(255,255,255,.94);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--line);z-index:1030}
.app-nav .navbar{padding-top:.55rem;padding-bottom:.55rem}
.brand{font-family:var(--font-head);font-weight:600;color:var(--ink)!important;letter-spacing:-.02em;display:inline-flex;align-items:center;font-size:1.2rem}
.brand b{font-weight:600;color:var(--brand)}
.brand-mark{width:34px;height:34px;border-radius:10px;background:conic-gradient(from 210deg,#4285f4 0 25%,#34a853 0 50%,#fbbc04 0 75%,#ea4335 0);display:inline-flex;align-items:center;justify-content:center;margin-right:.55rem;position:relative;flex-shrink:0}
.brand-mark::after{content:"";position:absolute;top:5px;right:5px;bottom:5px;left:5px;background:#fff;border-radius:6px}
.brand-mark i{position:relative;z-index:1;color:var(--ink);font-size:.8rem}
.product-chip{font-family:var(--font-head);font-size:.72rem;font-weight:500;background:var(--brand-soft);color:var(--brand-dark);border-radius:999px;padding:.15rem .6rem;margin-left:.6rem}
.app-nav .nav-link{font-weight:500;color:var(--text)!important;padding:.5rem .9rem!important;border-radius:999px}
.app-nav .nav-link:hover{background:#f1f3f4;color:var(--ink)!important}
.apps-btn{width:40px;height:40px;display:inline-flex!important;align-items:center;justify-content:center;padding:0!important;font-size:1.05rem}
.apps-btn::after{display:none}
.apps-menu{min-width:290px;padding:.75rem}
.app-item{display:flex;align-items:center;padding:.6rem;border-radius:12px;color:var(--ink);text-decoration:none!important}
a.app-item:hover{background:#f1f3f4;color:var(--ink)}
.app-item.disabled{opacity:.75}
.app-item .stat-icon{width:40px;height:40px;border-radius:12px;font-size:1rem;margin-right:.75rem}
.app-item strong{display:block;font-family:var(--font-head);font-weight:500;line-height:1.2}
.app-item small{color:var(--muted)}
.user-chip{display:inline-flex;align-items:center}
.avatar{width:32px;height:32px;border-radius:50%;background:var(--brand);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:500;margin-right:.5rem}
.site-footer{flex-shrink:0;margin-top:3rem;padding:1.25rem 0;border-top:1px solid var(--line);background:#fff;font-size:.85rem;color:var(--muted)}
.site-footer a{color:var(--muted);font-weight:500}.footer-links a{margin-left:1.25rem}

/* ---- Landing ---- */
.hero{position:relative;overflow:hidden;padding:5rem 0 5.5rem;background:
  radial-gradient(520px 320px at 8% 0,var(--blue-bg),transparent 70%),
  radial-gradient(480px 300px at 95% 10%,var(--red-bg),transparent 70%),
  radial-gradient(520px 300px at 70% 100%,var(--green-bg),transparent 70%),
  radial-gradient(420px 260px at 20% 100%,var(--yellow-bg),transparent 70%),#fff}
.hero h1{font-weight:600;font-size:3.2rem;line-height:1.1;letter-spacing:-.03em;color:var(--ink)}
.hero h1 em{font-style:normal;background:linear-gradient(90deg,#4285f4,#a142f4 45%,#ea4335);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero .lead{font-size:1.15rem;max-width:540px;color:var(--text)}
.eyebrow{display:inline-flex;align-items:center;font-family:var(--font-head);font-size:.78rem;font-weight:500;color:var(--brand-dark);background:#fff;border:1px solid var(--line);padding:.35rem .85rem;border-radius:999px;margin-bottom:1.25rem;box-shadow:var(--shadow-sm)}
.eyebrow i{color:#fbbc04}
.hero-note{font-size:.84rem;color:var(--muted);margin-top:1rem}.hero-note i{color:var(--green);margin-right:.3rem}
.hero-card{background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow-lg);padding:1.5rem;max-width:460px;margin-left:auto}
.hero-card h3{font-size:1rem;margin-bottom:.4rem}
.hero-card .url{font-size:.75rem;background:#f1f3f4;border-radius:999px;padding:.4rem .8rem;color:var(--muted);margin-bottom:1.1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hero-card .url b{color:var(--brand)}
.section{padding:4.5rem 0}
.section-title{text-align:center;max-width:640px;margin:0 auto 3rem}
.section-title h2{font-size:2.1rem;font-weight:600}
.section-title .kicker{font-family:var(--font-head);color:var(--brand);font-weight:500;font-size:.85rem}
.feature{padding:1.75rem;height:100%}
.feature-icon{width:52px;height:52px;border-radius:16px;background:var(--brand-soft);color:var(--brand);display:flex;align-items:center;justify-content:center;font-size:1.25rem;margin-bottom:1rem}
.feature h3{font-size:1.08rem}.feature p{margin:0}
.product-card{padding:2rem;height:100%;border-radius:24px;border:0}
.product-card h3{font-size:1.3rem;margin:.9rem 0 .4rem}
.product-card .feature-icon{background:#fff;margin-bottom:0}
.step-num{width:48px;height:48px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-head);font-weight:600;font-size:1.1rem;margin-bottom:.9rem}
.cta-band{background:var(--brand-soft);border-radius:28px;padding:3.5rem 2rem;text-align:center}
.cta-band h2{font-weight:600}

/* ---- Auth ---- */
.auth{display:flex;min-height:calc(100vh - 62px)}
.auth-side{flex:0 0 44%;padding:4rem;align-items:center;background:
  radial-gradient(420px 300px at 0 0,var(--blue-bg),transparent 70%),
  radial-gradient(420px 300px at 100% 30%,var(--purple-bg),transparent 70%),
  radial-gradient(420px 300px at 30% 100%,var(--green-bg),transparent 70%),#fff;border-right:1px solid var(--line)}
.auth-side h2{font-size:2.1rem;font-weight:600;line-height:1.15;margin:2rem 0 1.5rem}
.auth-logo{display:flex;align-items:center;color:var(--ink);font-family:var(--font-head);font-weight:600;font-size:1.2rem}
.auth-points{list-style:none;padding:0;margin:0}.auth-points li{margin-bottom:.8rem;color:var(--text)}.auth-points i{color:var(--green);margin-right:.6rem}
.auth-points strong{color:var(--ink);font-weight:500}
.auth-main{flex:1;display:flex;align-items:center;justify-content:center;padding:2.5rem 1.25rem;background:#fff}
.auth-box{width:100%;max-width:430px}
.auth-box h1{font-size:1.8rem;font-weight:600;margin-bottom:.25rem}
.auth-sub{color:var(--muted);margin-bottom:1.75rem}
.url-preview{display:flex;align-items:center;margin-top:.5rem;background:var(--brand-soft);border-radius:10px;padding:.45rem .7rem;font-size:.8rem;color:var(--text);line-height:1.35}
.url-preview i{color:var(--brand);margin-right:.5rem;flex-shrink:0}
.url-preview span{word-break:break-all;min-width:0}
.url-preview strong{color:var(--brand-dark);font-weight:700}
.auth-card{max-width:440px}

/* ---- Dashboard ---- */
.survey-card{padding:1.25rem 1.4rem;margin-bottom:1rem}
.survey-card h2{font-size:1.1rem;margin-bottom:.3rem}.survey-card h2 a{color:var(--ink)}.survey-card h2 a:hover{color:var(--brand)}
.survey-meta{font-size:.82rem;color:var(--muted)}.survey-meta span{margin-right:1rem;white-space:nowrap;display:inline-block}.survey-meta i{margin-right:.3rem}
.survey-link{font-size:.8rem;color:var(--muted);word-break:break-all}
.survey-actions .btn,.survey-actions form{margin:0 .25rem .35rem 0}
.template-card{cursor:pointer;display:block;margin:0;height:100%}
.template-card input{position:absolute;opacity:0}
.template-card .card{height:100%;padding:1.1rem;border-width:2px;transition:border-color .12s,background .12s}
.template-card input:checked+.card{border-color:var(--brand);background:var(--brand-soft)}
.template-card input:focus-visible+.card{box-shadow:0 0 0 .2rem rgba(var(--brand-rgb),.2)}
.template-card i{color:var(--brand);font-size:1.3rem;margin-bottom:.6rem}

/* ---- Manage survey header ---- */
.manage-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;margin-bottom:.85rem}
.manage-title{min-width:0}
.manage-title h1{font-size:1.45rem;margin:0;overflow-wrap:anywhere}
.back-link{font-size:.8rem;font-weight:500;color:var(--muted)}
.share-box{max-width:440px;margin-top:.5rem}.share-box .form-control{font-size:.8rem;background:#fff;min-height:34px;height:34px}
.share-box .input-group-text{padding:.2rem .65rem;font-size:.8rem}.share-box .btn{padding:.25rem .8rem;font-size:.8rem}
.manage-tabs{background:#fff;border:1px solid var(--line);border-radius:999px;padding:.25rem;margin-bottom:1rem;display:inline-flex;max-width:100%}
.manage-tabs .nav-link{border-radius:999px;font-family:var(--font-head);font-weight:500;color:var(--text);padding:.4rem 1rem;font-size:.86rem;white-space:nowrap}
.manage-tabs .nav-link.active{background:var(--brand-soft);color:var(--brand-dark)}
.manage-tabs .nav-link i{margin-right:.3rem;opacity:.85}

/* ---- Form builder ---- */
.builder{display:grid;grid-template-columns:250px minmax(0,1fr) 330px;gap:1.25rem;align-items:start}
.b-palette,.b-props{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow-y:auto}
.b-palette{padding:1rem}
.pal-group{font-family:var(--font-head);font-size:.72rem;font-weight:500;color:var(--muted);margin:1rem 0 .5rem}
.pal-group:first-child{margin-top:0}
.pal-item{display:flex;align-items:center;width:100%;text-align:left;background:#fff;border:1px solid var(--line);border-radius:12px;padding:.5rem .7rem;margin-bottom:.4rem;font-size:.86rem;font-weight:500;color:var(--ink);cursor:grab;transition:all .12s;user-select:none}
.pal-item i{width:28px;height:28px;border-radius:8px;background:var(--brand-soft);color:var(--brand);margin-right:.6rem;display:inline-flex;align-items:center;justify-content:center;font-size:.8rem;flex-shrink:0}
.pal-item:hover{border-color:var(--brand);background:var(--brand-soft)}
.pal-item:focus{outline:0;border-color:var(--brand);box-shadow:0 0 0 .2rem rgba(var(--brand-rgb),.15)}
.pal-hint{font-size:.75rem;color:var(--muted);margin:.5rem 0 0}
.b-center{min-width:0}
.b-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:.5rem .65rem;margin-bottom:1rem;position:sticky;top:0;z-index:20}
.b-toolbar .btn{margin:.15rem 0 .15rem .4rem}
.seg{display:inline-flex;background:#f1f3f4;border-radius:999px;padding:3px;max-width:100%;overflow-x:auto}
.seg button,.seg a{border:0;background:transparent;border-radius:999px;padding:.35rem .95rem;font-family:var(--font-head);font-weight:500;font-size:.84rem;color:var(--text);text-decoration:none;white-space:nowrap}
.seg button.active,.seg a.active{background:#fff;box-shadow:var(--shadow-sm);color:var(--brand-dark)}
.save-state{font-size:.78rem;font-weight:500;color:var(--muted);margin-right:.25rem}
.save-state.dirty{color:#b06000}
.b-canvas{min-height:380px;border:2px dashed #d2d6dc;border-radius:var(--radius);padding:1rem;background:rgba(255,255,255,.6);transition:all .12s}
.b-canvas.drag-over{border-color:var(--brand);background:var(--brand-soft)}
.b-empty{text-align:center;padding:4rem 1rem;color:var(--muted)}
.b-empty i{font-size:2.5rem;color:var(--brand);opacity:.4;margin-bottom:1rem}
.b-field{position:relative;background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:1rem 1rem 1rem 2.4rem;margin-bottom:.75rem;cursor:pointer;transition:border-color .12s,box-shadow .12s}
.b-field:hover{border-color:#c4c9d0;box-shadow:var(--shadow-sm)}
.b-field.selected{border-color:var(--brand);box-shadow:0 0 0 4px rgba(var(--brand-rgb),.12)}
.b-field.dragging{opacity:.35}
.b-handle{position:absolute;left:0;top:0;bottom:0;width:2.1rem;display:flex;align-items:center;justify-content:center;color:#bdc1c6;cursor:grab;border-radius:12px 0 0 12px}
.b-handle:hover{color:var(--brand);background:var(--brand-soft)}
.b-field-body{pointer-events:none}
.b-field-body .q-card{border:0;box-shadow:none;padding:0;margin:0;background:transparent}
.b-type{font-family:var(--font-head);font-size:.7rem;font-weight:500;color:var(--muted);margin-bottom:.4rem}
.b-type i{color:var(--brand);margin-right:.3rem}
.b-tools{position:absolute;top:.5rem;right:.5rem;display:flex;opacity:0;transition:opacity .12s;background:#fff;border:1px solid var(--line);border-radius:999px;box-shadow:var(--shadow-sm);padding:2px;z-index:2}
.b-field:hover .b-tools,.b-field.selected .b-tools,.b-field:focus-within .b-tools{opacity:1}
.b-tools button{border:0;background:transparent;width:30px;height:30px;color:var(--text);border-radius:50%;font-size:.78rem}
.b-tools button:hover{background:#f1f3f4;color:var(--brand)}.b-tools button.danger:hover{background:var(--red-bg);color:var(--red)}
.drop-line{height:4px;border-radius:2px;background:var(--brand);margin:.35rem 0;box-shadow:0 0 0 3px rgba(var(--brand-rgb),.15)}
.pagebreak-marker{display:flex;align-items:center;color:var(--brand);font-family:var(--font-head);font-weight:500;font-size:.78rem}
.pagebreak-marker::before,.pagebreak-marker::after{content:"";flex:1;border-top:2px dashed var(--brand);opacity:.45}
.pagebreak-marker span{padding:0 .75rem}
.b-preview{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem}
.props-head{padding:.9rem 1rem;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;background:#fff;z-index:2;border-radius:var(--radius) var(--radius) 0 0}
.props-head h2{font-size:.98rem;margin:0}.props-head h2 i{color:var(--brand);margin-right:.45rem}
.props-body{padding:1rem}.props-body .form-group{margin-bottom:.9rem}
.props-body textarea{min-height:0}
.props-close{border:0;background:#f1f3f4;border-radius:50%;width:32px;height:32px;color:var(--ink)}
.mode-opts label{display:flex;align-items:flex-start;border:1px solid var(--line);border-radius:12px;padding:.55rem .7rem;margin-bottom:.4rem;cursor:pointer;font-weight:500;font-size:.86rem}
.mode-opts input{margin:.2rem .6rem 0 0;accent-color:var(--brand)}
.mode-opts small{display:block;color:var(--muted);font-weight:400}
.swatches{display:flex;flex-wrap:wrap;align-items:center}
.swatch{width:28px;height:28px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--line);margin:0 .4rem .4rem 0;cursor:pointer;padding:0}
.swatch.active{box-shadow:0 0 0 2px var(--ink)}
.swatches input[type=color]{width:34px;height:34px;padding:2px;border:1px solid var(--line);border-radius:8px;background:#fff;margin-bottom:.4rem}
.b-backdrop{display:none}

/* Builder: the page scrolls as one. When the side panels and the Build/Preview bar reach the header
   they stick there, and the panels then use the full screen height below it. */
:root{--nav-h:62px;--stick:calc(var(--nav-h) + 12px)}
.builder-shell{padding-bottom:2.5rem!important}
.b-toolbar{top:var(--stick);box-shadow:0 0 0 12px var(--bg),0 6px 14px -6px rgba(60,64,67,.18)}
@media(min-width:768px){
  .b-palette{position:sticky;top:var(--stick);max-height:calc(100vh - var(--stick) - 12px)}
}
@media(min-width:1200px){
  .b-props{position:sticky;top:var(--stick);max-height:calc(100vh - var(--stick) - 12px)}
  .props-close{display:none}
}

/* ---- Public survey (also used inside the builder preview) ---- */
.survey-page{background:var(--bg)}
.survey-wrap{max-width:760px}
.survey-head{border-top:8px solid var(--brand);padding:1.75rem;margin-bottom:1rem}
.survey-head h1{font-size:1.75rem;font-weight:600;margin-bottom:.4rem;color:var(--ink);overflow-wrap:anywhere}
.survey-head p{margin:0}
.q-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.4rem 1.5rem;margin-bottom:1rem}
.q-card.has-error{border-color:var(--red);box-shadow:0 0 0 3px rgba(217,48,37,.12)}
.q-label{font-family:var(--font-head);font-size:1rem;font-weight:500;color:var(--ink);margin-bottom:.6rem;display:block;overflow-wrap:anywhere}
.q-help{font-size:.84rem;color:var(--muted);margin:-.3rem 0 .7rem}
.q-error{color:var(--red);font-size:.84rem;font-weight:500;margin-top:.6rem}
.req{color:var(--red)}
.opt{display:flex;align-items:center;border:1px solid var(--line);border-radius:12px;padding:.65rem .9rem;margin-bottom:.5rem;cursor:pointer;font-weight:400;color:var(--ink);font-size:.95rem;transition:border-color .12s,background .12s}
.opt:hover{background:#f8f9fa}
.opt input{margin-right:.75rem;width:18px;height:18px;accent-color:var(--brand);flex-shrink:0}
.opt.checked{border-color:var(--brand);background:var(--brand-soft)}
.stars{display:inline-flex;flex-direction:row-reverse;position:relative}
.stars input{position:absolute;opacity:0;width:1px;height:1px}
.stars label{font-size:2.3rem;line-height:1;color:#dadce0;cursor:pointer;padding:0 .15rem;margin:0;transition:transform .1s}
.stars label:hover{transform:scale(1.12)}
.stars input:checked~label,.stars label:hover,.stars label:hover~label{color:#fbbc04}
.stars input:focus-visible+label{outline:2px solid var(--brand);border-radius:4px}
.scale,.likert{display:flex;flex-wrap:wrap;margin:0 -.2rem}
.scale input,.likert input{position:absolute;opacity:0;width:1px;height:1px}
.scale label{flex:1 0 2.5rem;text-align:center;border:1px solid var(--line);border-radius:12px;padding:.6rem 0;margin:.2rem;cursor:pointer;background:#fff;font-weight:500;color:var(--ink);font-size:.95rem;transition:all .12s}
.likert label{flex:1 1 6rem;text-align:center;border:1px solid var(--line);border-radius:12px;padding:.75rem .5rem;margin:.2rem;cursor:pointer;background:#fff;font-weight:500;color:var(--ink);font-size:.86rem;transition:all .12s}
.scale label:hover,.likert label:hover{border-color:var(--brand);background:var(--brand-soft)}
.scale input:checked+label,.likert input:checked+label{background:var(--brand);border-color:var(--brand);color:#fff}
.scale input:focus-visible+label,.likert input:focus-visible+label{outline:2px solid var(--ink);outline-offset:2px}
.scale-labels{display:flex;justify-content:space-between;font-size:.78rem;color:var(--muted);margin-top:.35rem}
.slider-wrap{display:flex;align-items:center}
.slider-wrap output{min-width:3.2rem;text-align:center;font-weight:700;color:#fff;background:var(--brand);border-radius:999px;padding:.25rem .6rem;margin-left:.9rem}
/* Table fields (radio table / image table) */
.matrix{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;font-size:.92rem}
.matrix th,.matrix td{padding:.7rem .75rem;border-bottom:1px solid var(--line);border-left:1px solid var(--line);vertical-align:middle}
.matrix tr>*:first-child{border-left:0}.matrix tbody tr:last-child>*{border-bottom:0}
.matrix thead th{background:var(--brand-soft);color:var(--ink);font-family:var(--font-head);font-weight:500;font-size:.84rem;text-align:center}
.matrix thead th:first-child,.matrix tbody th{text-align:left}
.matrix tbody th{font-weight:400;color:var(--ink);min-width:150px}
.matrix td{text-align:center;padding:0;transition:background .12s}
.matrix td label{display:flex;align-items:center;justify-content:center;margin:0;padding:.8rem .5rem;cursor:pointer;min-width:64px}
.matrix td input{width:18px;height:18px;accent-color:var(--brand);margin:0}
.matrix td:hover{background:#f8f9fa}.matrix td.checked{background:var(--brand-soft)}
.mx-col{display:none;margin-left:.6rem;font-weight:400;color:var(--ink);font-size:.92rem}
.mx-row{display:flex;align-items:center}.mx-row strong{display:block;font-weight:500}.mx-row small{display:block;color:var(--muted);line-height:1.35;margin-top:.1rem}
.mx-img{width:56px;height:56px;border-radius:10px;object-fit:cover;margin-right:.75rem;flex-shrink:0;border:1px solid var(--line);background:#f1f3f4}
.mx-summary{display:flex;align-items:flex-start;margin-top:.75rem;background:var(--brand-soft);border-radius:12px;padding:.7rem .9rem;font-size:.86rem;color:var(--ink)}
.mx-summary[hidden]{display:none}
.mx-summary i{color:var(--brand);margin:.15rem .6rem 0 0}.mx-summary strong{display:block;font-weight:500}
@media(max-width:575.98px){
  /* On phones each row becomes its own card with the choices listed underneath */
  .matrix,.matrix tbody,.matrix tr,.matrix th,.matrix td{display:block;border:0}
  .matrix{border-radius:0;overflow:visible}.matrix thead{display:none}
  .matrix tbody tr{border:1px solid var(--line)!important;border-radius:12px;margin-bottom:.6rem;overflow:hidden}
  .matrix tbody th{background:var(--brand-soft);padding:.6rem .8rem;min-width:0}
  .matrix td{border-top:1px solid var(--line)!important;text-align:left}
  .matrix td label{justify-content:flex-start;padding:.6rem .8rem}
  .mx-col{display:inline}
}
/* Side by side: second answer column */
.sbs thead tr:first-child th{border-bottom:1px solid var(--line)}
.sbs td.sbs-b{padding:.5rem .6rem;min-width:150px;text-align:left}.sbs td.sbs-b:hover{background:transparent}
/* Form fields, rank order, text / graphic */
.ff-row{display:flex;align-items:center;margin-bottom:.6rem}
.ff-row label{flex:0 0 34%;max-width:220px;margin:0 .9rem 0 0;font-weight:500;color:var(--ink);overflow-wrap:anywhere}
.ff-row .form-control{flex:1;min-width:0}
.rank-list{list-style:none;padding:0;margin:0}
.rank-item{display:flex;align-items:center;border:1px solid var(--line);border-radius:12px;padding:.5rem .6rem;margin-bottom:.45rem;background:#fff;cursor:grab;transition:box-shadow .12s,border-color .12s;user-select:none}
.rank-item:hover{border-color:var(--brand);box-shadow:var(--shadow-sm)}.rank-item.dragging{opacity:.4;border-style:dashed}
.rank-num{width:28px;height:28px;border-radius:8px;background:var(--brand);color:#fff;font-weight:700;font-size:.85rem;display:inline-flex;align-items:center;justify-content:center;margin-right:.75rem;flex-shrink:0}
.rank-text{flex:1;color:var(--ink);overflow-wrap:anywhere}
.rank-tools button{border:0;background:#f1f3f4;color:var(--text);width:32px;height:32px;border-radius:50%;margin-left:.3rem;font-size:.75rem}
.rank-tools button:hover{background:var(--brand-soft);color:var(--brand)}
.content-block h2{font-size:1.15rem;margin-bottom:.4rem;color:var(--ink)}.content-block p{margin-bottom:0;color:var(--text)}
.content-block img{display:block;max-width:100%;height:auto;border-radius:12px;margin-top:.9rem}
.b-field-body .content-block img{max-height:220px}
@media(max-width:575.98px){.ff-row{display:block}.ff-row label{display:block;max-width:none;margin:0 0 .25rem}.sbs td.sbs-b{padding:.6rem .8rem}}
/* Image-table row editor in the builder */
.row-card{border:1px solid var(--line);border-radius:12px;padding:.6rem;margin-bottom:.5rem}
.row-img{width:52px;height:52px;border-radius:10px;border:1px dashed #bdc1c6;background:#f8f9fa;color:var(--muted);flex-shrink:0;padding:0;overflow:hidden}
.row-img:hover{border-color:var(--brand);color:var(--brand)}
.row-img img{width:100%;height:100%;object-fit:cover}
.row-card-tools{margin-top:.4rem;font-size:.8rem}.row-card-tools .btn{font-size:.78rem}
.result-matrix td,.result-matrix th{text-align:center;font-size:.85rem}.result-matrix th:first-child,.result-matrix td:first-child{text-align:left}
.result-matrix .top{background:var(--brand-soft);font-weight:700;color:var(--brand-dark)}
.section-block{margin:1.75rem 0 1rem;padding-left:.9rem;border-left:4px solid var(--brand)}
.section-block h2{font-size:1.25rem;margin:0;color:var(--ink)}.section-block p{margin:.2rem 0 0;color:var(--muted)}
.s-progress{height:8px;background:#e8eaed;border-radius:999px;overflow:hidden;margin-bottom:.35rem}
.s-progress div{height:100%;background:var(--brand);border-radius:999px;transition:width .25s}
.s-progress-text{font-size:.78rem;font-weight:500;color:var(--muted);margin-bottom:1rem}
.s-nav{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;margin-top:1.25rem}
.js-paged .s-page{display:none}.js-paged .s-page.active{display:block;animation:fadeUp .25s ease}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.msg-card{text-align:center;padding:3rem 1.5rem}
.msg-icon{width:76px;height:76px;border-radius:50%;background:var(--brand-soft);color:var(--brand);font-size:2rem;display:inline-flex;align-items:center;justify-content:center;margin-bottom:1.25rem}

/* ---- Security settings ---- */
.set-card{padding:1.5rem;margin-bottom:1.25rem}
.set-card>h2{font-size:1.05rem;margin-bottom:1.1rem;display:flex;align-items:center}
.set-card>h2 i{width:36px;height:36px;border-radius:12px;background:var(--brand-soft);color:var(--brand);display:inline-flex;align-items:center;justify-content:center;font-size:.9rem;margin-right:.65rem;flex-shrink:0}
.set-row{padding:.85rem 0;border-top:1px solid var(--line)}
.set-row:first-of-type{border-top:0;padding-top:0}
.custom-switch .custom-control-label{font-weight:500;color:var(--ink)}
.choice-cards{display:flex;flex-wrap:wrap;margin:0 -.3rem}
.choice-cards label{flex:1 1 220px;margin:.3rem;border:1px solid var(--line);border-radius:14px;padding:.8rem .9rem;cursor:pointer;display:flex;font-weight:500;color:var(--ink)}
.choice-cards input{margin:.25rem .7rem 0 0;accent-color:var(--brand)}
.choice-cards small{display:block;font-weight:400;color:var(--muted)}
.choice-cards label.checked{border-color:var(--brand);background:var(--brand-soft)}

/* ---- Share tab ---- */
.share-grid{display:flex;flex-wrap:wrap;margin:0 -.3rem}
.share-btn{flex:1 1 150px;display:flex;align-items:center;margin:.3rem;padding:.55rem .7rem;border:1px solid var(--line);border-radius:14px;color:var(--ink);font-weight:500;text-decoration:none!important;transition:background .12s,border-color .12s}
.share-btn:hover{background:#f8f9fa;border-color:#c4c9d0;color:var(--ink)}
.share-btn .stat-icon{width:36px;height:36px;border-radius:10px;font-size:1rem;margin-right:.65rem}
.code-box{font-family:Consolas,Menlo,monospace;font-size:.78rem;background:#f8f9fa;color:var(--ink)}
.qr-box{width:220px;max-width:100%;margin:0 auto;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff;min-height:120px}
.qr-box svg{display:block;width:100%;height:auto}

/* ---- Results & analytics ---- */
.chart-wrap{position:relative;width:100%}
.kpi .stat-icon{margin:0 0 .75rem;width:42px;height:42px;border-radius:12px;font-size:1rem}
.kpi .stat-num{font-size:1.45rem}
.insight-list li{display:flex;align-items:flex-start;padding:.6rem 0;border-bottom:1px solid var(--line);font-size:.88rem;color:var(--ink);line-height:1.4}
.insight-list li:last-child{border-bottom:0;padding-bottom:0}
.insight-list .stat-icon{width:32px;height:32px;border-radius:10px;font-size:.8rem;margin-right:.7rem}
.bar-row{margin-bottom:.7rem}
.progress{height:.7rem;background:#e8eaed;border-radius:999px}
.progress-bar{background:var(--brand);border-radius:999px}
.answer-list li{padding:.5rem 0;border-bottom:1px solid var(--line);word-break:break-word;color:var(--ink)}
.answer-list li:last-child{border-bottom:0}
.table{color:var(--text)}.table td,.table th{vertical-align:middle;border-color:var(--line)}
.table thead th{font-family:var(--font-head);font-size:.75rem;font-weight:500;color:var(--muted);border-bottom-width:1px;background:#f8f9fa;border-top:0;white-space:nowrap}
dd{overflow-wrap:anywhere}

/* ---- Admin panel ---- */
.admin-body{background:var(--bg)}
.admin-shell{display:flex;min-height:100vh}
.admin-side{flex:0 0 256px;background:#fff;border-right:1px solid var(--line);padding:1.25rem .9rem;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}
.admin-side-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding:0 .4rem}
.admin-brand{color:var(--ink)!important;font-family:var(--font-head);font-weight:600;display:flex;align-items:center;text-decoration:none!important}
.admin-brand small{font-size:.65rem;font-weight:500;background:var(--red-bg);color:var(--red);border-radius:999px;padding:.12rem .5rem;margin-left:.5rem}
.admin-side .navbar-toggler{color:var(--ink);border:1px solid var(--line);border-radius:10px}
.admin-link{display:block;color:var(--text);font-weight:500;padding:.6rem 1rem;border-radius:999px;margin-bottom:.2rem;text-decoration:none!important}
.admin-link i{margin-right:.6rem;opacity:.85}
.admin-link:hover{background:#f1f3f4;color:var(--ink)}
.admin-link.active{background:var(--brand-soft);color:var(--brand-dark)}
.admin-user{margin-top:1.5rem;padding:1rem .4rem 0;border-top:1px solid var(--line);color:var(--ink)}
#adminMenu{flex:1;flex-direction:column;justify-content:space-between}
@media(min-width:992px){#adminMenu{display:flex!important}}
.admin-main{flex:1;min-width:0;padding:1.75rem 2rem}
.admin-top h1{font-size:1.6rem;margin-bottom:1.25rem}
.admin-main .flash-area{padding:0;max-width:none}
.admin-login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.25rem;background:
  radial-gradient(520px 320px at 10% 0,var(--blue-bg),transparent 70%),radial-gradient(480px 300px at 90% 10%,var(--red-bg),transparent 70%),
  radial-gradient(520px 300px at 60% 100%,var(--green-bg),transparent 70%),#fff}
.admin-login .card{width:100%;max-width:410px;padding:2rem;border-radius:24px;box-shadow:var(--shadow-lg)}

/* ---- Responsive ---- */
@media(max-width:1199.98px){.builder{grid-template-columns:220px minmax(0,1fr)}
  .b-props{position:fixed;top:0;right:0;bottom:0;width:340px;max-width:92vw;border-radius:0;border:0;z-index:1050;transform:translateX(105%);transition:transform .2s;box-shadow:var(--shadow-lg)}
  .b-props.open{transform:none}.props-head{border-radius:0}
  .b-backdrop.open{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(32,33,36,.45);z-index:1040}}
@media(max-width:991.98px){
  .hero{padding:3.5rem 0}.hero h1{font-size:2.4rem}.hero-card{margin:2.5rem auto 0}
  .app-nav .navbar-collapse{padding:.5rem 0}
  .admin-shell{display:block}.admin-side{position:static;height:auto;padding:.9rem 1rem;border-right:0;border-bottom:1px solid var(--line)}.admin-side-top{margin-bottom:0}#adminMenu{padding-top:1rem}.admin-main{padding:1.25rem 1rem}}
@media(max-width:767.98px){
  .builder{display:block}.b-palette{margin-bottom:1rem;padding:.75rem}
  .pal-list{display:flex;overflow-x:auto;padding-bottom:.4rem;-webkit-overflow-scrolling:touch}.pal-list .pal-group{display:none}
  .pal-item{flex:0 0 auto;width:auto;margin:0 .4rem 0 0;white-space:nowrap}
  /* Swipeable strips have no visible scrollbar on phones */
  .manage-tabs,.pal-list,.seg{scrollbar-width:none}
  .manage-tabs::-webkit-scrollbar,.pal-list::-webkit-scrollbar,.seg::-webkit-scrollbar{display:none}
  .pal-list{padding-bottom:0}.manage-tabs{flex-wrap:nowrap}
  /* Headline numbers: three compact tiles in one row instead of three tall cards */
  .stat-row{margin-left:-.3rem;margin-right:-.3rem}
  .stat-row>div{flex:0 0 33.3333%;max-width:33.3333%;padding-left:.3rem;padding-right:.3rem}
  .stat-row .card{padding:.7rem .6rem!important;height:100%}
  .stat-row .stat{flex-direction:column;align-items:flex-start}
  .stat-row .stat-icon{width:32px;height:32px;border-radius:10px;font-size:.85rem;margin:0 0 .45rem}
  .stat-row .stat-num{font-size:1.1rem;overflow-wrap:anywhere}.stat-row .stat-label{font-size:.7rem;line-height:1.2}
  .kpi .stat-num{font-size:1.2rem}
  .share-btn{flex:1 1 40%;padding:.5rem .55rem;font-size:.88rem}.share-btn .stat-icon{width:32px;height:32px;margin-right:.5rem}
  .survey-card{padding:1rem}.card.p-4{padding:1.1rem!important}
  .manage-title h1{font-size:1.25rem}
  .insight-list li{font-size:.86rem}
  /* Toolbar: one row that scrolls sideways instead of wrapping onto two lines */
  .b-toolbar{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:.45rem .5rem;border-radius:999px}
  .b-toolbar::-webkit-scrollbar{display:none}
  .b-toolbar>*{flex:0 0 auto;flex-wrap:nowrap!important}
  .b-toolbar .seg{margin-right:.6rem;overflow:visible;max-width:none}
  .b-toolbar .btn,.b-toolbar .save-state{white-space:nowrap}
  /* Save comes right after Build / Preview so it is always in reach */
  .b-toolbar>div:not(.seg){display:contents}
  .b-toolbar form{display:inline-flex!important;flex:0 0 auto;order:3}
  .b-toolbar .seg{order:0}.b-toolbar #saveBtn{order:1;margin-left:0;flex:0 0 auto}
  .b-toolbar #settingsBtn{order:2;flex:0 0 auto}.b-toolbar .save-state{order:4;flex:0 0 auto;margin:0 .5rem 0 .75rem}
  .b-tools{opacity:1}
  .b-field{padding-top:2.6rem}.b-canvas{padding:.6rem}
  .section{padding:3rem 0}.section-title h2{font-size:1.6rem}.hero h1{font-size:2rem}.hero .lead{font-size:1rem}
  .manage-tabs{display:flex;overflow-x:auto;flex-wrap:nowrap;border-radius:16px}
  .share-box{max-width:none;width:100%}.q-card{padding:1.1rem}.survey-head{padding:1.25rem}.survey-head h1{font-size:1.4rem}
  .stars label{font-size:2rem}.footer-links a{margin:0 .6rem}.set-card{padding:1.1rem}
  .page-head h1{font-size:1.35rem}.auth-main{padding:1.5rem 1rem;align-items:flex-start}.auth{min-height:0}
.cta-band{padding:2.5rem 1.25rem}.product-card{padding:1.5rem}
  .survey-actions .btn{margin-bottom:.4rem}}
@media(max-width:400px){.scale label{flex-basis:2.1rem;font-size:.85rem;padding:.5rem 0}}
