/* Towo — page furniture for the Towo section of the admin app.
   Tokens + base components come from wf.css / app.css; these rules are scoped
   under .towo so they win over the shared defaults without touching them. */
.towo .card{background:var(--card-bg);border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--shadow-s)}
.towo .btn{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 15px;border-radius:var(--radius-s);border:1px solid var(--line-2);background:var(--fill-2);color:var(--ink);font-family:'Sora',sans-serif;font-size:13.5px;font-weight:600;cursor:pointer}
.towo .btn:hover{background:var(--fill-3);border-color:rgba(255,255,255,.22);box-shadow:none}
.towo .btn.pri{background:var(--grad);border:1px solid transparent;color:#fff;box-shadow:0 6px 20px rgba(123,110,240,.34)}
.towo .btn.pri:hover{filter:brightness(1.07)}
.towo .btn.sm{height:30px;padding:0 11px;font-size:12.5px;border-radius:8px}
.towo .btn.ghost{background:transparent;border-color:transparent;color:var(--ink-soft)}
.towo .btn.ghost:hover{background:var(--fill-3);color:var(--ink)}
.towo .btn.danger{color:var(--bad);border-color:rgba(255,111,97,.32);background:var(--bad-soft)}
.towo .chip{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 9px;border-radius:999px;font-size:11.5px;font-weight:600;border:1px solid var(--line);background:var(--fill-2);color:var(--ink-soft);white-space:nowrap}
.towo .chip .dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.towo .st-run{color:#8fd6fb;background:var(--info-soft);border-color:rgba(63,182,245,.28)}
.towo .st-run .dot{background:var(--info);animation:towo-pulse 2.4s infinite}
@keyframes towo-pulse{0%{box-shadow:0 0 0 0 rgba(63,182,245,.5)}70%{box-shadow:0 0 0 7px rgba(63,182,245,0)}100%{box-shadow:0 0 0 0 rgba(63,182,245,0)}}
.towo .st-ask{color:#d3c9ff;background:var(--hi-soft);border-color:rgba(123,110,240,.4)}
.towo .st-ask .dot{background:var(--hi)}
.towo .st-nap{color:#a9b0c7;background:rgba(123,110,240,.09);border-color:rgba(123,110,240,.22)}
.towo .st-nap .dot{background:#7f88a3}
.towo .st-err{color:#ffb3aa;background:var(--bad-soft);border-color:rgba(255,111,97,.3)}
.towo .st-err .dot{background:var(--bad)}
.towo .st-done{color:#8ee6c3;background:var(--ok-soft);border-color:rgba(45,212,154,.26)}
.towo .st-done .dot{background:var(--ok)}
.towo .lbl{font-size:10.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-dim)}
.towo .sub{color:var(--ink-soft);font-size:13px}
.towo .mono{font-family:'JetBrains Mono',monospace}
.towo .divider{height:1px;background:var(--line)}
.towo .sw{width:38px;height:21px;border-radius:999px;background:var(--fill-3);border:1px solid var(--line-2);position:relative;flex:none;cursor:pointer}
.towo .sw::after{content:"";position:absolute;width:15px;height:15px;border-radius:50%;background:#9aa0b4;top:2px;left:2px;transition:.18s}
.towo .sw.on{background:var(--hi-soft);border-color:rgba(123,110,240,.55)}
.towo .sw.on::after{left:19px;background:var(--hi)}
.towo .gauge{height:6px;border-radius:999px;background:var(--fill-3);overflow:hidden;border:none}
.towo .gauge i{display:block;height:100%;border-radius:999px;background:var(--grad)}
.towo .ws{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--ink-soft)}
.towo .ws b{color:var(--ink);font-weight:600;font-family:'JetBrains Mono',monospace;font-size:12px}
.towo .top{display:flex;align-items:flex-end;gap:16px;margin-bottom:22px}
.towo .top h1{font-size:2rem;margin:0}
/* forms */
.towo .field{display:flex;flex-direction:column;gap:7px;margin-bottom:0}
.towo .field>.lbl{color:var(--ink-soft)}
.towo .input,.towo .ta,.towo .sel{background:var(--fill-2);border:1px solid var(--line-2);border-radius:var(--radius-s);color:var(--ink);font-family:'Sora',sans-serif;font-size:13.5px;padding:10px 13px;width:100%}
.towo .ta{min-height:104px;resize:vertical;line-height:1.55}
.towo .input:focus,.towo .ta:focus{outline:none;border-color:rgba(123,110,240,.6);box-shadow:0 0 0 3px var(--hi-soft)}
.towo .hint{font-size:12.5px;color:var(--ink-soft);line-height:1.55}
.towo .seg{display:inline-flex;padding:3px;gap:3px;background:var(--fill-2);border:1px solid var(--line);border-radius:11px;overflow:visible}
.towo .seg button{height:30px;padding:0 13px;border:none;background:transparent;color:var(--ink-soft);font-family:'Sora',sans-serif;font-size:12.5px;font-weight:600;border-radius:8px;cursor:pointer}
.towo .seg button.on{background:var(--fill-3);color:var(--ink);box-shadow:var(--shadow-s)}
.towo .pickrow{display:flex;gap:10px}
.towo .pick{flex:1;padding:13px 14px;border-radius:12px;background:var(--fill-2);border:1px solid var(--line);cursor:pointer}
.towo .pick:hover{border-color:var(--line-2)}
.towo .pick.on{border-color:rgba(123,110,240,.55);background:rgba(123,110,240,.1)}
.towo .pick .t{font-size:13.5px;font-weight:600;display:flex;align-items:center;gap:8px}
.towo .pick .d{font-size:12px;color:var(--ink-soft);margin-top:5px;line-height:1.5}
.towo .code{font-family:'JetBrains Mono',monospace;font-size:13px;background:rgba(0,0,0,.36);border:1px solid var(--line);border-radius:10px;padding:13px 15px;color:#e6e1ff;line-height:1.6;overflow-x:auto;white-space:pre;-webkit-user-select:all;user-select:all}
/* modal stages */
.towo .scrim{position:absolute;inset:0;background:rgba(9,10,14,.66);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:8}
.towo .modal{position:absolute;z-index:9;width:560px;left:50%;transform:translateX(-50%);background:#232734;border:1px solid var(--line-2);border-radius:18px;box-shadow:0 30px 70px rgba(0,0,0,.6);overflow:hidden;display:block}
.towo .modal .mh{padding:19px 22px 0}
.towo .modal .mb{padding:17px 22px}
.towo .modal .mf{padding:15px 22px;border-top:1px solid var(--line);background:rgba(0,0,0,.16);display:flex;gap:9px;align-items:center}
/* list rows */
.towo .rows{display:flex;flex-direction:column;gap:8px}
.towo .rw{display:grid;align-items:center;gap:14px;padding:13px 16px;border-radius:12px;background:var(--fill-2);border:1px solid var(--line)}
.towo .rw:hover{border-color:var(--line-2);background:var(--fill)}
.towo .rw .ttl{font-size:14px;font-weight:600}
.towo .rw .meta{font-size:11.5px;color:var(--ink-dim);margin-top:3px;font-family:'JetBrains Mono',monospace}
.towo .ac{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--ink-soft)}
.towo .tag{display:inline-flex;height:21px;align-items:center;padding:0 8px;border-radius:6px;font-size:11px;font-weight:600;font-family:'JetBrains Mono',monospace;background:rgba(0,164,220,.13);border:1px solid rgba(0,164,220,.3);color:#8fd6fb}
/* phone frames */
.towo .phone{width:390px;height:844px;border-radius:44px;background:#0e1016;border:9px solid #23262f;box-shadow:0 26px 60px rgba(0,0,0,.55);position:relative;overflow:hidden;flex:none}
.towo .phone .sb{height:46px;display:flex;align-items:flex-end;justify-content:space-between;padding:0 26px 6px;font-size:13px;font-weight:600;color:#e8ebf5}
.towo .phone .nub{position:absolute;left:50%;transform:translateX(-50%);top:9px;width:104px;height:26px;border-radius:999px;background:#000;z-index:5}
.towo .phone .hb{position:absolute;bottom:8px;left:50%;transform:translateX(-50%);width:128px;height:5px;border-radius:999px;background:rgba(255,255,255,.28)}
.towo .pbody{padding:14px 16px 26px;height:calc(100% - 46px);overflow:hidden;position:relative}
