/* Prodano Studio — a real dashboard: sidebar shell, one create flow. */
:root{
  --bg:#F6F8FB; --panel:#FFFFFF; --ink:#0B1220; --mut:#697083; --line:#E6E9EF;
  --acc:#2B5CFF; --acc-dark:#1E44C8; --acc-soft:#EDF1FF;
  --ok:#15803D; --ok-soft:#E7F5EC; --bad:#B4383B; --bad-soft:#FBEDED;
  --chip:#EEF1F6; --side:#0C1330; --side-ink:#C7CEE4; --side-mut:#7A84A8;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  --shadow:0 1px 2px rgba(11,18,32,.04),0 10px 30px rgba(11,18,32,.06);
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);
     font:14.5px/1.6 "Inter",system-ui,sans-serif;-webkit-font-smoothing:antialiased}
h1{font-size:26px;font-weight:800;letter-spacing:-.025em;margin:0}
h2{font-size:16px;font-weight:700;letter-spacing:-.01em;margin:0 0 14px}
h3{font-size:15px;font-weight:700;margin:0}
.muted{color:var(--mut)}
svg{flex:none}

#topload{position:fixed;top:0;left:0;height:2.5px;width:0;background:var(--acc);
         z-index:200;transition:width .3s,opacity .4s;opacity:0}
#topload.on{opacity:1}

button{background:var(--acc);color:#fff;border:none;border-radius:10px;
       padding:10px 18px;font:600 14px/1 "Inter",sans-serif;cursor:pointer;
       transition:background .18s,transform .18s,opacity .18s}
button:hover{background:var(--acc-dark);transform:translateY(-1px)}
button:active{transform:none}
button:disabled{opacity:.5;cursor:default;transform:none}
button.ghost{background:var(--panel);color:var(--ink);border:1.5px solid var(--line)}
button.ghost:hover{background:var(--chip);border-color:#CBD2DE}
button.sm{padding:8px 14px;font-size:13px;border-radius:9px}
button.busy{position:relative;color:transparent !important}
button.busy::after{content:"";position:absolute;inset:0;margin:auto;width:15px;height:15px;
  border:2px solid #fff;border-radius:50%;border-right-color:transparent;animation:spin .7s linear infinite}
button.ghost.busy::after{border-color:var(--ink);border-right-color:transparent}
@keyframes spin{to{transform:rotate(360deg)}}
.iconbtn{background:none;color:var(--mut);padding:6px;border-radius:8px}
.iconbtn:hover{background:var(--chip);color:var(--ink);transform:none}
.iconbtn svg{width:20px;height:20px}

input,select,textarea{background:var(--bg);color:var(--ink);
   border:1.5px solid var(--line);border-radius:10px;padding:10px 13px;
   font:inherit;min-width:0;transition:border-color .18s,background .18s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--acc);background:#fff}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}

#auth{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.auth-card{background:var(--panel);border:1px solid var(--line);border-radius:20px;
           padding:34px;box-shadow:var(--shadow);width:min(410px,94vw)}
.auth-brand{display:flex;align-items:center;justify-content:center;gap:9px;
            font-weight:800;font-size:24px;letter-spacing:-.03em;margin-bottom:6px}
.auth-brand .mark{width:26px;height:26px;color:var(--acc)}
.auth-card .hint{text-align:center;color:var(--mut);font-size:13.5px;margin:2px 0 22px}
.auth-card input{width:100%;margin-bottom:11px}
.auth-actions{display:flex;gap:10px;margin-top:6px}
.auth-actions button{flex:1}

#shell{display:flex;min-height:100vh}
.side{width:230px;flex:none;background:var(--side);color:var(--side-ink);
      display:flex;flex-direction:column;padding:20px 14px;position:sticky;top:0;height:100vh}
.side-brand{display:flex;align-items:center;gap:9px;color:#fff;font-weight:800;
            font-size:21px;letter-spacing:-.03em;padding:6px 10px 22px}
.side-brand .mark{width:24px;height:24px;color:#6E8BFF}
.side-nav{display:flex;flex-direction:column;gap:3px;flex:1}
.navi{display:flex;align-items:center;gap:11px;background:none;color:var(--side-mut);
      justify-content:flex-start;padding:11px 12px;border-radius:10px;font-weight:600;
      font-size:14px;transition:background .16s,color .16s}
.navi svg{width:19px;height:19px}
.navi:hover{background:rgba(255,255,255,.06);color:#fff;transform:none}
.navi.on{background:var(--acc);color:#fff}
.side-foot{display:flex;align-items:center;gap:8px;padding:12px 10px 4px;
           border-top:1px solid rgba(255,255,255,.08);margin-top:8px}
#who{flex:1;font-size:12.5px;color:var(--side-mut);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#logout{background:none;color:var(--side-mut);padding:6px}
#logout:hover{color:#fff;background:rgba(255,255,255,.08);transform:none}
#logout svg{width:18px;height:18px}

.main{flex:1;min-width:0;padding:32px clamp(20px,4vw,46px) 80px;max-width:1100px}
.view .head{display:flex;align-items:center;justify-content:space-between;
            margin-bottom:22px;gap:16px;flex-wrap:wrap}
.head-actions{display:flex;gap:8px}

.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;
      padding:22px 24px;margin-bottom:16px;box-shadow:var(--shadow)}

.empty{text-align:center;padding:clamp(40px,9vw,90px) 20px;max-width:560px;margin:0 auto}
.empty .bigorb{width:96px;height:96px;border-radius:26px;margin:0 auto 26px;
  background:var(--acc-soft);color:var(--acc);display:flex;align-items:center;justify-content:center}
.empty .bigorb svg{width:46px;height:46px}
.empty h1{font-size:32px;margin-bottom:12px}
.empty p{color:var(--mut);font-size:16px;margin:0 auto 28px;max-width:44ch}
.empty button{padding:14px 30px;font-size:16px;border-radius:13px}

.agenthdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;gap:16px;flex-wrap:wrap}
.voices{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-bottom:18px}
.voice{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:var(--shadow)}
.voice .vh{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.vic{width:38px;height:38px;border-radius:10px;background:var(--acc-soft);color:var(--acc);display:flex;align-items:center;justify-content:center}
.voice .vic svg{width:20px;height:20px}
.voice b{font-size:15px;text-transform:capitalize}
.voice .vmeta{color:var(--mut);font-size:12.5px;margin-top:2px}
.voice .vpass{margin-top:12px;font-size:13px}

.statrow{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.stat{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px 18px;min-width:120px;box-shadow:var(--shadow)}
.stat b{display:block;font-size:24px;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.stat small{color:var(--mut)}

#drawer{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:24px}
.drawer-bg{position:absolute;inset:0;background:rgba(11,18,32,.45);backdrop-filter:blur(3px);animation:fade .2s ease}
@keyframes fade{from{opacity:0}}
.drawer-panel{position:relative;width:min(680px,100%);max-height:90vh;border-radius:20px;
  background:var(--bg);box-shadow:0 30px 90px rgba(11,18,32,.35);
  display:flex;flex-direction:column;overflow:hidden;animation:pop .26s cubic-bezier(.2,.8,.2,1)}
@keyframes pop{from{transform:scale(.96) translateY(8px);opacity:.5}}
.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:20px 26px;border-bottom:1px solid var(--line);background:var(--panel)}
.drawer-head h2{margin:0;font-size:19px}
.drawer-body{flex:1;overflow-y:auto;padding:24px 26px}
.drawer-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 26px;border-top:1px solid var(--line);background:var(--panel)}
.drawer-foot button{padding:12px 26px;font-size:15px}
.fld{display:block;font-size:12.5px;font-weight:600;color:var(--mut);margin-bottom:14px}
.fld input,.fld select{width:100%;margin-top:6px;font-weight:400;color:var(--ink)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.upnote{display:flex;gap:11px;align-items:flex-start;background:var(--acc-soft);border-radius:12px;
        padding:13px 15px;font-size:13.5px;color:var(--acc-dark);line-height:1.55;margin:8px 0 16px}
.upnote svg{width:18px;height:18px;margin-top:1px}

.upgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media (max-width:520px){.upgrid,.two{grid-template-columns:1fr}}
.drop{display:flex;flex-direction:column;gap:6px;border:1.5px dashed var(--line);border-radius:12px;
      padding:14px;background:var(--panel);cursor:pointer;transition:border-color .18s,background .18s}
.drop:hover,.drop.over{border-color:var(--acc);background:var(--acc-soft)}
.drop.has{border-style:solid;border-color:var(--acc)}
.drop .dt{display:flex;align-items:center;gap:8px;font-weight:600;font-size:13.5px}
.drop .dt svg{width:16px;height:16px;color:var(--acc)}
.drop small{color:var(--mut);font-size:12px}
.drop .fname{font-size:12px;color:var(--acc-dark);font-weight:500}
.drop input[type=file]{display:none}
.drop .brand{margin-top:2px;padding:6px 9px;font-size:12.5px}
#d-progress{margin-top:18px}
.pstep{display:flex;align-items:center;gap:10px;padding:8px 0;font-size:13.5px;border-bottom:1px solid var(--line)}
.pstep:last-child{border:none}
.pstep .pspin{width:14px;height:14px;border:2px solid var(--acc);border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite}
.pstep .pdone{color:var(--ok);font-weight:700}
.pstep .pwait{color:var(--mut)}

table{border-collapse:collapse;width:100%;font-size:13.5px}
th{color:var(--mut);text-align:left;font-weight:600;font-size:11px;text-transform:uppercase;
   letter-spacing:.07em;padding:9px 10px;border-bottom:1px solid var(--line)}
td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}
tr:last-child td{border-bottom:none}
tbody tr:hover{background:var(--bg)}
.tblwrap{overflow-x:auto;border-radius:10px}

.pill{display:inline-block;background:var(--chip);border-radius:999px;padding:2px 10px;font-size:12px;font-family:var(--mono)}
.pill.v{background:var(--ok-soft);color:var(--ok)}
.pill.b{background:var(--bad-soft);color:var(--bad)}
.ok{color:var(--ok);font-weight:700}.no{color:var(--bad);font-weight:700}
pre{background:#0C1428;color:#DCE4F5;border-radius:12px;padding:16px 18px;overflow-x:auto;
    font-family:var(--mono);font-size:12.5px;line-height:1.6;max-height:420px}
code,.mono{font-family:var(--mono);font-size:.93em}
.vrow{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid var(--line);font-size:14px}
.vrow:last-child{border-bottom:none}
details.det{margin-top:14px}
details.det summary{cursor:pointer;color:var(--acc-dark);font-weight:600;font-size:13.5px;padding:6px 0}

.camp{border:1px solid var(--line);border-radius:13px;padding:14px 16px;margin-bottom:12px;background:var(--bg)}
.camp .row{margin-top:8px}.camp input{width:70px;padding:7px 10px}.camp label{font-size:12px;color:var(--mut)}
.live-row{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid var(--line);font-size:14px}
.live-row:last-child{border-bottom:none}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--acc);margin-right:7px;animation:blink 1.2s infinite}
@keyframes blink{50%{opacity:.25}}
.turn{display:flex;gap:10px;margin:7px 0;font-size:14px}
.turn .who{min-width:66px;font-weight:700;color:var(--mut);font-size:11px;text-transform:uppercase;letter-spacing:.06em;padding-top:3px}
.turn.agent .who{color:var(--acc-dark)}
.turn .bubble{background:var(--chip);border-radius:12px;padding:8px 13px;flex:1}
.turn.tool .bubble{background:var(--acc-soft);color:var(--acc-dark);font-family:var(--mono);font-size:12px;flex:0 1 auto}

.toast{position:fixed;right:20px;bottom:20px;background:var(--ink);color:#fff;border-radius:12px;
       padding:12px 18px;font-weight:600;font-size:14px;opacity:0;transform:translateY(8px);
       transition:opacity .25s,transform .25s;pointer-events:none;max-width:70vw;box-shadow:var(--shadow);z-index:300}
.toast.show{opacity:1;transform:none}.toast.err{background:var(--bad)}
.hide{display:none !important}

@media (max-width:720px){
  .side{width:64px}.side-brand span,.navi span,#who{display:none}
  .side-brand,.navi{justify-content:center}
}
@media (prefers-reduced-motion:reduce){*{animation:none !important;transition:none !important}}

.opt{font-weight:500;color:var(--mut);font-size:11px;text-transform:none;
     background:var(--chip);border-radius:999px;padding:1px 7px;margin-left:6px}
.tonehint{color:var(--mut);font-size:12.5px;margin:-6px 0 16px;line-height:1.5}
/* nav items that are hidden until there's an agent */
.navi.locked{display:none}
