/* ═══ Sotto Supreme Design System v2 ═══ */
/* Shared theme for panoramica.html and future v2 pages */

:root{
      --font-ui: "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      --font-serif: "Cormorant Garamond", Georgia, serif;

      --bg: #f0f6f8;
      --bg-2: #ecf2f4;
      --shell: #eef4f6;
      --panel: #fdfefe;
      --panel-2: #f4f9fb;
      --line: #d4e6ee;
      --line-strong: #bcd6e2;
      --text: #0f1c24;
      --text-soft: #3d5260;
      --text-faint: #71899e;
      --black-btn: #12222e;
      --black-btn-hover: #09141c;
      --active-nav: #e2ecf2;
      --teal: #0e7490;
      --teal-2: #06b6d4;
      --cyan: #06b6d4;
      --teal-3: #22d3ee;
      --teal-4: rgba(14,116,144,.15);
      --beige: #bcd6e2;
      --green: #0e7490;
      --green-hover: #0b5c74;
      --green-soft: rgba(14,116,144,.1);
      --blue: #06b6d4;
      --blue-hover: #0891b2;
      --amber: #d97706;
      --blue-soft: rgba(6,182,212,.1);
      --purple: #cffafe;
      --purple-soft: #ecfeff;
      --purple-line: #b8e8f0;
      --shadow-soft: 0 12px 28px rgba(30, 22, 14, .05);
      --shadow-card: 0 1px 0 rgba(255,255,255,.7), 0 10px 24px rgba(40,30,20,.04);

      --hero-overlay: rgba(4, 16, 24, .22);
      --hero-text: #d8eaf4;
      --hero-chip: rgba(216, 234, 244, .14);
      --hero-chip-strong: rgba(216, 234, 244, .22);
      --hero-chip-text: #d8eaf4;

      --radius-shell: 30px;
      --radius-card: 16px;
      --radius-btn: 15px;
      --radius-hero: 22px;
      --transition: 260ms cubic-bezier(.2, .8, .2, 1);
    }

    [data-theme="dark"]{
      --bg: #0b151c;
      --bg-2: #091118;
      --shell: #0a131a;
      --panel: #141e28;
      --panel-2: #18232e;
      --line: #253545;
      --line-strong: #2f4254;
      --text: #d8eaf4;
      --text-soft: #a0c0d4;
      --text-faint: #6b8a9e;
      --black-btn: #d8eaf4;
      --black-btn-hover: #e8f4f8;
      --active-nav: #1e2a38;
      --teal: #22d3ee;
      --teal-2: #38bdf8;
      --cyan: #06b6d4;
      --teal-3: #7dd3fc;
      --teal-4: rgba(34,211,238,.18);
      --beige: #3d4e5e;
      --green: #22d3ee;
      --green-hover: #67e8f9;
      --green-soft: rgba(34,211,238,.12);
      --blue: #38bdf8;
      --blue-hover: #7dd3fc;
      --blue-soft: rgba(56,189,248,.12);
      --amber: #f59e0b;
      --purple: #142836;
      --purple-soft: #1a3040;
      --purple-line: #2a4254;
      --shadow-soft: 0 12px 30px rgba(0,0,0,.38);
      --shadow-card: 0 12px 28px rgba(0,0,0,.25);

      --hero-overlay: rgba(2, 8, 14, .35);
      --hero-text: #d8eaf4;
      --hero-chip: rgba(216, 234, 244, .14);
      --hero-chip-strong: rgba(216, 234, 244, .22);
      --hero-chip-text: #d8eaf4;
    }

    *{box-sizing:border-box}
    html,body{height:100%}
    body{
      margin:0;min-height:100vh;
      background:radial-gradient(circle at top left,rgba(255,255,255,.35),transparent 32%),linear-gradient(180deg,var(--bg) 0%,var(--bg-2) 100%);
      color:var(--text);font-family:var(--font-ui);
      transition:background var(--transition),color var(--transition);
    }
    button,a{font:inherit}
    button{border:0;background:none;color:inherit;cursor:pointer}
    a{color:inherit;text-decoration:none}
    .icon{width:21px;height:21px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
    .app-shell{height:100vh;display:grid;grid-template-rows:72px 1fr;grid-template-columns:274px 1fr;gap:0}
    .topbar{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;padding:0 22px;height:72px}
    .topbar-brand{font-family:var(--font-ui);font-size:28px;font-weight:800;color:var(--text);text-decoration:none;letter-spacing:-.5px;display:flex;align-items:center;gap:0}
    .topbar-brand span{color:var(--blue)}
    [data-theme="dark"] .topbar-brand span{color:var(--blue)}
    .topbar-tools{display:flex;align-items:center;gap:10px}
    .topbar-nav{display:flex;align-items:center;gap:2px}
    .topbar-nav a{font-size:14px;font-weight:600;color:var(--text);text-decoration:none;padding:8px 16px;border-radius:10px;transition:all var(--transition)}
    .topbar-nav a:hover{background:rgba(0,0,0,.04)}
    [data-theme="dark"] .topbar-nav a:hover{background:rgba(255,255,255,.04)}
    .topbar-nav a.active{background:var(--purple)}
    .btn-start-session{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 22px;border-radius:14px;background:linear-gradient(135deg,var(--teal),var(--cyan));color:#fff;font-size:14px;font-weight:600;border:none;cursor:pointer;transition:transform .2s,box-shadow .2s;box-shadow:0 2px 10px rgba(6,182,212,.25)}
    .btn-start-session:hover{transform:translateY(-1px);box-shadow:0 4px 18px rgba(6,182,212,.35)}
    .btn-start-session:active{transform:translateY(0) scale(.97)}
    @keyframes btnBreathe{0%,100%{box-shadow:0 2px 10px rgba(6,182,212,.25)}50%{box-shadow:0 2px 18px rgba(6,182,212,.4)}}
    .sidebar{height:100%;overflow-y:auto;overflow-x:hidden;padding:14px 14px 14px;display:flex;flex-direction:column;justify-content:space-between;scrollbar-width:none;-ms-overflow-style:none}.sidebar::-webkit-scrollbar{display:none}
    .brand-row{display:flex;align-items:center;gap:14px;padding:2px 8px 22px}
    .brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:24px;letter-spacing:-.03em}
    .brand-bars{display:inline-flex;align-items:end;gap:3px;height:26px}
    .brand-bars i{display:block;width:4px;background:currentColor;border-radius:8px}
    .brand-bars i:nth-child(1){height:14px}.brand-bars i:nth-child(2){height:25px}.brand-bars i:nth-child(3){height:18px}.brand-bars i:nth-child(4){height:11px}.brand-bars i:nth-child(5){height:22px}
    .trial-pill{display:inline-flex;align-items:center;justify-content:center;background:var(--purple);border-radius:12px;padding:9px 12px;font-size:14px;line-height:1;font-weight:600;color:var(--text);transition:transform var(--transition),background var(--transition)}
    .side-nav{display:flex;flex-direction:column;gap:2px;flex-shrink:1;min-height:0}
    .nav-item{display:flex;align-items:center;gap:10px;min-height:0;height:auto;flex-shrink:1;border-radius:10px;padding:8px 10px;font-size:15px;color:var(--text);transition:background var(--transition),color var(--transition),transform var(--transition)}
    .nav-item:hover:not(.active){background:rgba(0,0,0,.035);transform:translateX(2px)}
    [data-theme="dark"] .nav-item:hover:not(.active){background:rgba(255,255,255,.04)}
    .nav-item.active{background:var(--purple)}
    .nav-item.active:hover{background:var(--purple);transform:none}
    .nav-item.teal{color:var(--teal)}
    .nav-item.teal.active{background:var(--teal);color:#fff}
    .nav-item.teal.active:hover{background:var(--teal);transform:none}
    /* Language toggle pill */
    .lang-section-label{font-size:10px;font-weight:600;color:var(--text-faint);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px;padding-left:2px}
    .lang-toggle{display:inline-flex;gap:0;background:var(--panel-2);border-radius:10px;padding:3px;margin-bottom:10px}
    .lang-opt{padding:6px 16px;border-radius:8px;font-size:12px;font-weight:700;border:none;background:transparent;color:var(--text-faint);cursor:pointer;font-family:var(--font-ui);transition:all var(--transition)}
    .lang-opt:hover{color:var(--text)}
    .lang-opt.active{background:var(--panel);color:var(--teal);box-shadow:0 1px 3px rgba(0,0,0,.06)}
    [data-theme="dark"] .lang-opt.active{box-shadow:0 1px 3px rgba(0,0,0,.3)}
    .sidebar-bottom{display:flex;flex-direction:column;gap:12px}
    .trial-card{background:var(--purple-soft);border:1px solid var(--purple-line);border-radius:16px;padding:10px 12px 8px;transition:transform var(--transition),border-color var(--transition),background var(--transition);flex-shrink:0}
    .trial-card:hover{transform:translateY(-2px)}
    .trial-card h3{margin:0 0 6px;font-size:16px;font-weight:500;letter-spacing:-.02em}
    .trial-card h3 span{color:var(--green);font-weight:700}
    [data-theme="dark"] .trial-card h3 span{color:var(--green)}
    .trial-card p{margin:0 0 12px;color:var(--text-soft);font-size:14px;line-height:1.5}
    .trial-btn{background:var(--black-btn);color:var(--panel);padding:13px 20px;border-radius:14px;font-weight:600;transition:transform var(--transition),background var(--transition),color var(--transition)}
    [data-theme="dark"] .trial-btn{color:#111}
    .trial-btn:hover{transform:translateY(-1px);background:var(--black-btn-hover)}
    .workspace{position:relative;padding:14px 18px 14px 0;height:100%;overflow:hidden}
    .top-tools{display:none}
    .icon-btn,.toolbar-btn,.row-icon-btn{display:inline-flex;align-items:center;justify-content:center;transition:transform var(--transition),color var(--transition),background var(--transition),border-color var(--transition),opacity var(--transition)}
    .icon-btn{width:36px;height:36px;color:var(--text);border-radius:999px;position:relative}
    .icon-btn:hover{transform:translateY(-1px);background:rgba(0,0,0,.045)}
    [data-theme="dark"] .icon-btn:hover{background:rgba(255,255,255,.06)}
    /* Dropdowns */
    .dropdown{position:absolute;top:44px;right:0;min-width:220px;background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:0 16px 40px rgba(0,0,0,.12);padding:8px;z-index:100;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity 220ms ease,transform 220ms ease,visibility 220ms}
    .dropdown.open{opacity:1;visibility:visible;transform:translateY(0)}
    .dropdown-item{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:10px;font-size:14px;color:var(--text);transition:background var(--transition);border:none;background:none;font-family:inherit;width:100%;cursor:pointer;text-align:left}
    .dropdown-item:hover{background:rgba(0,0,0,.04)}
    [data-theme="dark"] .dropdown-item:hover{background:rgba(255,255,255,.04)}
    .dropdown-div{height:1px;background:var(--line);margin:4px 0}
    .mobile-nav-item{display:none!important}
    .theme-toggle{height:38px;border-radius:999px;padding:0 14px;display:inline-flex;align-items:center;gap:8px;background:transparent;border:1px solid var(--line);color:var(--text);transition:transform var(--transition),background var(--transition),border-color var(--transition),color var(--transition)}
    .theme-toggle:hover{transform:translateY(-1px);background:rgba(0,0,0,.03)}
    [data-theme="dark"] .theme-toggle:hover{background:rgba(255,255,255,.04)}
    .theme-text{font-size:14px;font-weight:600}
    .theme-icon-moon{display:none}
    [data-theme="dark"] .theme-icon-sun{display:none}
    [data-theme="dark"] .theme-icon-moon{display:inline-block}
    .main-panel{height:100%;overflow-y:auto;overflow-x:hidden;background:var(--panel);border:2px solid var(--line-strong);border-radius:34px;box-shadow:0 4px 32px rgba(0,0,0,.06),0 0 0 1px rgba(0,0,0,.02);padding:46px 34px 38px;position:relative;transition:background var(--transition),border-color var(--transition),box-shadow var(--transition)}
    [data-theme="dark"] .main-panel{box-shadow:0 1px 4px rgba(0,0,0,.15),0 0 0 1px rgba(255,255,255,.03)}
    .panel-head{max-width:1020px;margin:0 auto 42px;display:flex;align-items:center;justify-content:space-between;gap:20px}
    .panel-head h2{margin:0;font-size:48px;line-height:1;letter-spacing:-.045em;font-weight:600}
    .primary-btn{min-width:120px;height:48px;padding:0 22px;border-radius:14px;background:var(--black-btn);color:var(--panel);font-size:17px;font-weight:600;box-shadow:var(--shadow-card);transition:transform var(--transition),background var(--transition),color var(--transition)}
    [data-theme="dark"] .primary-btn{color:#141210}
    .primary-btn:hover{transform:translateY(-2px);background:var(--black-btn-hover)}
    .panel-tabs{max-width:1020px;margin:0 auto 28px;display:flex;align-items:flex-end;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line)}
    .tabs{display:flex;gap:30px;align-items:flex-end}
    .tab-link{position:relative;padding:0 0 16px;font-size:18px;color:var(--text-soft);transition:color var(--transition),transform var(--transition)}
    .tab-link:hover{color:var(--text)}
    .tab-link.active{color:var(--text)}
    .tab-link::after{content:"";position:absolute;left:0;bottom:-1px;height:3px;width:0;border-radius:999px;background:currentColor;transition:width var(--transition)}
    .tab-link.active::after{width:24px}
    .tool-group{display:flex;align-items:center;gap:6px;padding-bottom:12px}
    .toolbar-btn{width:34px;height:34px;border-radius:10px;color:#b2aba4}
    .toolbar-btn:hover{color:var(--text);background:rgba(0,0,0,.045);transform:translateY(-1px)}
    [data-theme="dark"] .toolbar-btn:hover{background:rgba(255,255,255,.06)}
    .toolbar-btn:last-child:hover .icon{transform:rotate(45deg)}
    .toolbar-btn .icon{transition:transform var(--transition)}
    .tab-stage{max-width:1020px;margin:0 auto;position:relative}
    .content-panel{display:none;animation:paneOut 200ms ease forwards}
    .content-panel.active{display:block;animation:paneIn 340ms cubic-bezier(.2,.8,.2,1) forwards;overflow-x:hidden;max-width:100%}
    .subtab-pane{display:none}
    .subtab-pane.active{display:block;animation:paneIn 300ms cubic-bezier(.2,.8,.2,1) forwards}
    .plang-pane{display:none}
    .plang-pane.active{display:block}
    .tab-pane{display:none;animation:paneOut 200ms ease forwards}
    .tab-pane.active{display:block;animation:paneIn 340ms cubic-bezier(.2,.8,.2,1) forwards}
    @keyframes paneIn{from{opacity:0;transform:translateY(12px);filter:blur(4px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
    @keyframes paneOut{from{opacity:1}to{opacity:0}}

    /* Start Session split panel */
    .start-split{display:none;grid-template-columns:1fr 1fr;height:100%;gap:0;border-radius:32px;overflow:hidden}.start-split.active{display:grid}
    @media(max-width:760px){.start-split{grid-template-columns:1fr;grid-template-rows:auto;overflow-y:auto}.start-half{overflow:visible;min-height:0;flex-shrink:0}.main-panel{overflow-y:auto!important}}
    .start-half{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:36px 32px;transition:background .4s cubic-bezier(.4,0,.2,1);position:relative}
    .start-half.caption{background:rgba(6,182,212,.06);border-right:1px solid var(--line);border-radius:32px 0 0 32px}[data-theme="dark"] .start-half.caption{background:rgba(6,182,212,.03)}
    .start-half.translate{background:rgba(6,182,212,.04);border-radius:0 32px 32px 0}[data-theme="dark"] .start-half.translate{background:rgba(6,182,212,.02)}
    .start-half.caption:hover,.start-half.caption.spinner-open{background:rgba(6,182,212,.1)}[data-theme="dark"] .start-half.caption:hover,[data-theme="dark"] .start-half.caption.spinner-open{background:rgba(6,182,212,.08)}
    .start-half.translate:hover,.start-half.translate.spinner-open{background:rgba(6,182,212,.08)}[data-theme="dark"] .start-half.translate:hover,[data-theme="dark"] .start-half.translate.spinner-open{background:rgba(6,182,212,.06)}
    @media(max-width:760px){.start-half.caption{border-right:none}}
    @media(max-width:860px){.start-half.caption{border-right:none}}
    .start-icon{width:52px;height:52px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:24px;margin-bottom:14px;transition:transform .3s}.start-half:hover .start-icon{transform:scale(1.08)}.start-half.caption .start-icon{background:rgba(6,182,212,.12);color:var(--cyan)}.start-half.translate .start-icon{background:rgba(6,182,212,.1);color:var(--cyan)}
    .start-tag{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;padding:4px 12px;border-radius:999px;margin-bottom:12px}.start-half.caption .start-tag{background:rgba(6,182,212,.12);color:var(--cyan)}.start-half.translate .start-tag{background:rgba(6,182,212,.1);color:var(--cyan)}
    .start-half h3{font-size:28px;font-weight:600;letter-spacing:-.03em;margin:0 0 8px;text-align:center;line-height:1.15}.start-half h3 em{font-style:normal;font-weight:800;color:var(--cyan)}
    .start-half p{font-size:14px;color:var(--text-soft);text-align:center;max-width:280px;margin:0 0 22px;line-height:1.4}
    .start-flag{display:flex;align-items:center;gap:10px;padding:14px 20px;border-radius:14px;font-size:16px;font-weight:600;cursor:pointer;transition:all var(--transition);margin-bottom:16px}
    .start-half.caption .start-flag{background:rgba(6,182,212,.08);border:1px solid rgba(6,182,212,.12)}.start-half.caption .start-flag:hover{box-shadow:0 4px 16px rgba(6,182,212,.1);border-color:rgba(6,182,212,.25);transform:translateY(-1px)}
    .start-half.translate .start-flag{background:rgba(6,182,212,.06);border:1px solid rgba(6,182,212,.1)}.start-half.translate .start-flag:hover{box-shadow:0 4px 16px rgba(6,182,212,.08);border-color:rgba(6,182,212,.2);transform:translateY(-1px)}
    .start-flag .fl{font-size:30px}.start-flag .hint{font-size:10px;color:var(--text-faint);font-weight:400}
    .start-btn{min-height:48px;padding:0 28px;border-radius:14px;font-size:15px;font-weight:600;display:inline-flex;align-items:center;gap:8px;cursor:pointer;border:2px solid transparent;transition:all .3s cubic-bezier(.2,.8,.2,1);position:relative;overflow:hidden}.start-btn::after{content:'';position:absolute;inset:0;border-radius:12px;opacity:0;transition:opacity .3s}.start-btn:hover{transform:translateY(-2px)}.start-btn:active{transform:translateY(0)}.start-btn.cap{background:linear-gradient(135deg,#0895b0,var(--cyan));color:#fff;box-shadow:0 4px 14px rgba(6,182,212,.3)}.start-btn.cap:hover{background:linear-gradient(135deg,#06b6d4,#22d3ee);box-shadow:0 8px 24px rgba(6,182,212,.4);transform:translateY(-3px)}.start-btn.tr{background:linear-gradient(135deg,#0895b0,var(--cyan));color:#fff;box-shadow:0 4px 14px rgba(6,182,212,.3)}.start-btn.tr:hover{background:linear-gradient(135deg,#06b6d4,#22d3ee);box-shadow:0 8px 24px rgba(6,182,212,.4);transform:translateY(-3px)}

    .start-spinner{display:none;position:absolute;inset:0;z-index:50;background:rgba(0,0,0,.92);backdrop-filter:blur(16px);flex-direction:column;align-items:center;justify-content:center;padding:20px}.start-spinner.show{display:flex}body[data-theme="light"] .start-spinner{background:rgba(255,255,255,.94)}
    /* Left half spinner: round left corners, square right */
    .start-half.caption .start-spinner{border-radius:32px 0 0 32px}
    /* Right half spinner: square left corners, round right */
    .start-half.translate .start-spinner{border-radius:0 32px 32px 0}
    .start-spinner .sst{font-size:15px;font-weight:700;color:#f1f5f9;margin-bottom:14px}body[data-theme="light"] .start-spinner .sst{color:#0f172a}
    .start-spinner .ssg{display:grid;grid-template-columns:1fr 1fr;gap:7px;max-width:260px;margin-bottom:14px}
    .start-spinner .ssc{padding:11px 8px;border-radius:10px;font-size:13px;font-weight:600;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);color:#cbd5e1;cursor:pointer;transition:all .2s;font-family:inherit;text-align:center}body[data-theme="light"] .start-spinner .ssc{background:rgba(0,0,0,.02);border-color:rgba(0,0,0,.06);color:#334155}
    .start-spinner .ssc:hover{background:rgba(6,182,212,.15);border-color:rgba(6,182,212,.35);color:#fff;transform:translateY(-1px)}body[data-theme="light"] .start-spinner .ssc:hover{background:rgba(6,182,212,.1);color:#0f172a}
    .start-spinner .ssc.selected{background:rgba(6,182,212,.18);border-color:var(--cyan);color:var(--cyan);box-shadow:0 0 0 2px rgba(6,182,212,.2)}[data-theme="dark"] .start-spinner .ssc.selected{background:rgba(6,182,212,.18);border-color:var(--cyan);color:var(--cyan);box-shadow:0 0 0 2px rgba(6,182,212,.2)}
    @media(max-width:860px){.start-spinner .sst{font-size:13px}.start-spinner .ssg{max-width:220px;gap:5px}.start-spinner .ssc{font-size:11px;padding:9px 6px}.start-spinner .ssconfirm{font-size:12px;padding:9px 24px}}
    .start-spinner .ssconfirm{padding:11px 36px;border-radius:999px;font-size:14px;font-weight:700;background:var(--cyan);color:#fff;cursor:pointer;font-family:inherit;border:none;box-shadow:0 4px 16px rgba(6,182,212,.3);transition:all var(--transition)}.start-spinner .ssconfirm:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(6,182,212,.4)}

    .hero-banner{position:relative;overflow:hidden;min-height:278px;border-radius:var(--radius-hero);margin-bottom:40px;border:1px solid rgba(255,255,255,.12);box-shadow:var(--shadow-soft);background:linear-gradient(135deg,rgba(8,60,80,.92),rgba(6,95,115,.88) 42%,rgba(14,116,144,.86) 100%);transition:transform 420ms cubic-bezier(.2,.8,.2,1),opacity 280ms ease,max-height 420ms ease,margin var(--transition),border-color var(--transition)}
    .hero-banner:hover{transform:translateY(-2px)}
    .hero-banner::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.05),transparent 35%),linear-gradient(90deg,rgba(4,20,32,.18),transparent 30%,rgba(56,189,248,.08) 72%,rgba(8,40,56,.16) 100%),var(--hero-overlay);pointer-events:none}
    .hero-banner.is-closing{opacity:0;transform:translateY(-10px);max-height:0;margin-bottom:0}
    .hero-art{position:absolute;inset:0;overflow:hidden}
    .blob,.glow{position:absolute;display:block;border-radius:999px;filter:blur(24px);transform:translateZ(0);animation:floatSlow 11s ease-in-out infinite alternate}
    .blob-a{width:410px;height:250px;left:-20px;top:10px;background:radial-gradient(circle at 35% 40%,rgba(56,189,248,.45),transparent 55%),radial-gradient(circle at 60% 50%,rgba(14,116,144,.5),transparent 70%)}
    .blob-b{width:340px;height:340px;left:37%;top:-20px;background:radial-gradient(circle at 50% 50%,rgba(6,182,212,.55),transparent 48%),radial-gradient(circle at 62% 58%,rgba(8,145,178,.45),transparent 72%);animation-duration:14s}
    .blob-c{width:520px;height:330px;right:-90px;bottom:-30px;background:radial-gradient(circle at 45% 50%,rgba(34,211,238,.6),transparent 50%),radial-gradient(circle at 70% 60%,rgba(14,116,144,.5),transparent 78%);animation-duration:13s}
    .glow-a{width:180px;height:180px;left:26%;bottom:-22px;background:rgba(56,189,248,.18);animation-duration:9s}
    .glow-b{width:190px;height:190px;right:14%;top:20px;background:rgba(34,211,238,.14);animation-duration:12s}
    @keyframes floatSlow{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(10px,-8px,0) scale(1.04)}}

    .hero-close{position:absolute;top:16px;right:16px;z-index:2;width:34px;height:34px;border-radius:999px;color:rgba(255,248,241,.92);background:rgba(255,255,255,.12);backdrop-filter:blur(10px);transition:background var(--transition),transform var(--transition),color var(--transition)}
    .hero-close:hover{transform:rotate(90deg);background:rgba(255,255,255,.22)}
    .hero-content{position:relative;z-index:1;padding:42px 40px 40px;color:var(--hero-text)}
    .hero-content h2{margin:0 0 18px;font-family:var(--font-serif);font-size:60px;line-height:.95;font-weight:600;letter-spacing:-.04em}
    .hero-content h2 em{font-style:italic;font-weight:500}
    .hero-content p{max-width:860px;margin:0 0 22px;font-size:18px;line-height:1.55;color:rgba(255,249,243,.94)}
    .hero-content strong{font-weight:700}
    .hero-chips{display:flex;flex-wrap:wrap;gap:12px}
    .hero-chip{min-height:46px;padding:0 22px;border-radius:14px;background:var(--hero-chip);color:var(--hero-chip-text);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(12px);font-size:17px;font-weight:500;transition:transform var(--transition),background var(--transition),box-shadow var(--transition),border-color var(--transition)}
    .hero-chip.strong{background:var(--hero-chip-strong);font-weight:700}
    .hero-chip:hover{transform:translateY(-2px);box-shadow:0 10px 18px rgba(0,0,0,.12);border-color:rgba(255,255,255,.32)}

    .stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:22px;margin-bottom:30px}
    .metric-card{min-height:180px;padding:18px 18px 16px;border-radius:var(--radius-card);background:var(--panel-2);border:1px solid var(--line);box-shadow:var(--shadow-card);transition:transform var(--transition),background var(--transition),border-color var(--transition),box-shadow var(--transition)}
    .metric-card:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(0,0,0,.08);border-color:rgba(0,0,0,.06)}
    [data-theme="dark"] .metric-card:hover{box-shadow:0 8px 28px rgba(0,0,0,.4);border-color:rgba(255,255,255,.08)}
    .metric-value{font-size:28px;line-height:1;font-weight:700;letter-spacing:-.03em;margin-bottom:4px}
    .metric-label{color:var(--text);font-size:16px;font-weight:600;margin-bottom:8px}
    .metric-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:4px 12px;border-radius:999px;background:var(--teal-4);color:var(--teal)}
    /* Sparkline bars — added to existing metric cards */
    .sparkline{display:flex;align-items:end;gap:2px;height:40px;margin-top:10px}
    .sparkline .bar{flex:1;border-radius:2px 2px 0 0;background:var(--teal);opacity:.3;transition:opacity .2s;min-width:3px}
    .sparkline .bar:nth-child(odd){opacity:.45}
    .sparkline .bar:nth-child(3n){opacity:.6}
    .sparkline:hover .bar{opacity:.8}
    .prog{height:8px;border-radius:4px;background:var(--line);margin-top:10px;overflow:hidden}
    .prog-fill{height:100%;border-radius:4px;transition:width .6s cubic-bezier(.2,.8,.2,1)}
    .prog-fill.teal{background:var(--teal)}

    .q-row{display:flex;gap:5px;flex-wrap:wrap}
    .q-chip{display:inline-flex;align-items:center;padding:8px 16px;border-radius:10px;font-size:14px;font-weight:500;background:var(--bg);border:1px solid var(--line);color:var(--text-soft);cursor:pointer;transition:all var(--transition);user-select:none;font-family:inherit}
    .q-chip:hover{background:var(--panel-2);border-color:var(--purple);color:var(--text)}
    .q-chip.active{background:var(--black-btn);border-color:var(--black-btn);color:var(--panel)}
    [data-theme="dark"] .q-chip.active{color:#141210}
    .field{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}
    .field label{font-size:12px;font-weight:600;color:var(--text-soft);text-transform:uppercase;letter-spacing:.06em}
    .field input,.field select,.field textarea{width:100%;padding:10px 12px;background:var(--bg);border:1px solid var(--line);border-radius:10px;color:var(--text);font-size:14px;font-family:inherit;outline:none;transition:border-color var(--transition)}
    .field input:focus,.field select:focus,.field textarea:focus{border-color:var(--purple)}
    .field textarea{resize:vertical;min-height:60px}
    .lay-equal{display:grid;grid-template-columns:1fr 1fr;gap:12px}

    .habit-card{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius-card);padding:20px 22px;box-shadow:var(--shadow-card);transition:transform var(--transition),box-shadow var(--transition),border-color var(--transition)}
    .habit-card:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(0,0,0,.08)}
    [data-theme="dark"] .habit-card:hover{box-shadow:0 8px 28px rgba(0,0,0,.4)}
    .habit-card h3{margin:0 0 14px;font-size:24px;font-weight:600;letter-spacing:-.03em}
    .habit-chips{display:flex;flex-wrap:wrap;gap:10px}
    .habit-chip{display:flex;align-items:center;gap:8px;padding:10px 16px;border-radius:12px;background:var(--bg);border:1px solid var(--line);font-size:14px;transition:transform var(--transition),border-color var(--transition)}
    .habit-chip:hover{transform:translateY(-1px);border-color:rgba(0,0,0,.1)}
    [data-theme="dark"] .habit-chip:hover{border-color:rgba(255,255,255,.08)}
    .habit-chip .hv{font-weight:700;font-size:16px}
    .habit-chip .hl{color:var(--text-soft);font-size:12px}

    /* FAQ — smooth JS-animated accordion */
    .faq-list{counter-reset:faq;display:flex;flex-direction:column;gap:2px;max-width:720px}
    .faq-item{display:flex;gap:16px;padding:16px 0;border-bottom:1px solid var(--line);cursor:pointer;transition:border-color var(--transition),background .2s ease;border-radius:8px;padding-left:0;padding-right:8px;margin-left:0;margin-right:0}
    .faq-item:hover{background:rgba(0,0,0,.015);}
    [data-theme="dark"] .faq-item:hover{background:rgba(255,255,255,.02)}
    .faq-item:last-child{border-bottom:0}
    .faq-item::before{counter-increment:faq;content:"0"counter(faq);font-size:16px;font-weight:700;color:var(--teal);flex-shrink:0;width:28px;padding-top:1px;transition:color .25s ease}
    .faq-item:hover::before{color:var(--blue)}
    .faq-inner{flex:1;min-width:0}
    .faq-q{font-size:16px;font-weight:600;color:var(--text);line-height:1.5;transition:color .25s ease;background:none;border:none;padding:0;cursor:pointer;font-family:inherit;text-align:left;width:100%}
    .faq-item:hover .faq-q{color:var(--teal)}
    .faq-a-wrap{height:0;overflow:hidden;transition:height .4s cubic-bezier(.25,.1,.25,1)}
    .faq-a{font-size:15px;color:var(--text-soft);line-height:1.7;padding-top:10px}
    .with-info{display:flex;align-items:center;gap:5px}
    .tiny-icon{width:15px;height:15px;opacity:.65}
    .gauge-wrap{margin-top:10px}
    .gauge{width:100%;height:auto;display:block}
    .gauge-track{fill:none;stroke:var(--beige);stroke-width:14;stroke-linecap:round}
    .gauge-fill{fill:none;stroke:var(--teal);stroke-width:14;stroke-linecap:round;stroke-dasharray:78 100;stroke-dashoffset:100;transition:stroke-dashoffset 900ms cubic-bezier(.2,.8,.2,1) 180ms,stroke var(--transition)}
    body.is-ready .gauge-fill{stroke-dashoffset:22}
    .gauge-top{fill:var(--text-soft);font-size:12px;font-family:var(--font-ui)}
    .gauge-percent{fill:var(--text);font-size:16px;font-weight:700;font-family:var(--font-ui)}
    .metric-divider{height:1px;background:var(--line-strong);margin:14px 0 16px}
    .desktop-row{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:8px}
    .desktop-copy{display:flex;flex-direction:column;gap:4px}
    .desktop-line{display:flex;align-items:center;gap:8px;font-size:16px}
    .desktop-copy small{color:var(--text);font-size:14px}
    .secondary-btn{min-height:40px;padding:0 14px;border-radius:12px;background:rgba(255,255,255,.9);color:var(--text);border:1px solid var(--line);transition:transform var(--transition),background var(--transition),border-color var(--transition)}
    [data-theme="dark"] .secondary-btn{background:#26211d}
    .secondary-btn:hover{transform:translateY(-1px)}
    .dictionary-list-card{border-radius:18px;background:var(--panel-2);border:1px solid var(--line);box-shadow:var(--shadow-card);overflow:hidden;transition:transform var(--transition),background var(--transition),border-color var(--transition)}
    .dictionary-list-card:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(0,0,0,.08);border-color:rgba(0,0,0,.06)}
    [data-theme="dark"] .dictionary-list-card:hover{box-shadow:0 8px 28px rgba(0,0,0,.4);border-color:rgba(255,255,255,.08)}
    .tbl-head{display:flex;align-items:center;padding:10px 16px;font-size:11px;font-weight:600;color:var(--text-faint);text-transform:uppercase;letter-spacing:.08em;border-bottom:2px solid var(--line-strong);gap:8px}
    .tbl-head .th-action{width:72px;flex-shrink:0}
    .term-row{display:flex;align-items:center;padding:11px 16px;font-size:14px;border-bottom:1px solid var(--line);transition:background var(--transition);gap:8px}
    .term-row:last-child{border-bottom:0}
    .term-row:hover{background:rgba(0,0,0,.02)}
    [data-theme="dark"] .term-row:hover{background:rgba(255,255,255,.03)}
    .term-row .tr-meta{font-size:12px;color:var(--text-faint);margin-left:auto;flex-shrink:0}
    .term-row .tr-action{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:8px;flex-shrink:0;transition:background var(--transition)}
    .term-row .tr-action:hover{background:rgba(0,0,0,.05)}
    [data-theme="dark"] .term-row .tr-action:hover{background:rgba(255,255,255,.06)}
    .tr-fav{color:var(--text-faint);transition:color var(--transition)}
    .tr-fav:hover,.tr-fav.active{color:#e8b84b}

    /* 3-dot dropdown */
    .tr-menu{position:relative}
    .tr-dd{position:absolute;top:100%;right:0;min-width:160px;background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 32px rgba(0,0,0,.1);padding:6px;z-index:20;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity 200ms ease,transform 200ms ease,visibility 200ms}
    .tr-dd.open{opacity:1;visibility:visible;transform:translateY(0)}
    .tr-dd-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:8px;font-size:13px;color:var(--text);transition:background var(--transition);border:none;background:none;font-family:inherit;width:100%;cursor:pointer;text-align:left}
    .tr-dd-item:hover{background:rgba(0,0,0,.04)}
    [data-theme="dark"] .tr-dd-item:hover{background:rgba(255,255,255,.04)}
    .tr-dd-item.danger{color:#d14343}

    /* Outline teal button (goToReportBtn) */
    .btn-outline-teal{padding:8px 16px;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--teal);font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;transition:all var(--transition);margin-top:12px}
    .btn-outline-teal:hover{border-color:var(--teal);background:var(--teal-4)}

    /* Toast */
    .toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--black-btn);color:var(--panel);padding:12px 24px;border-radius:14px;font-size:14px;font-weight:600;z-index:100;opacity:0;visibility:hidden;transition:opacity var(--transition),transform var(--transition),visibility var(--transition);box-shadow:0 8px 24px rgba(0,0,0,.2)}
    [data-theme="dark"] .toast{color:#141210}
    .toast.show{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}

    /* Definition pairs (list box type D) */
    .def-list h3{font-size:24px;font-weight:600;letter-spacing:-.03em;margin:0 0 14px}
    .def-pair{margin-bottom:10px}
    .def-pair dt{font-size:12px;font-weight:600;color:var(--text-faint);text-transform:uppercase;letter-spacing:.08em;margin-bottom:2px}
    .def-pair dd{margin:0;font-size:15px;color:var(--text-soft)}

    /* Editable inline */
    .edit-row{display:flex;align-items:center;gap:10px;padding:6px 0}
    .edit-row .ed-val{font-size:15px;color:var(--text-soft);cursor:pointer;padding:4px 8px;border-radius:6px;transition:background var(--transition);flex:1}
    .edit-row .ed-val:hover{background:rgba(0,0,0,.03)}
    [data-theme="dark"] .edit-row .ed-val:hover{background:rgba(255,255,255,.03)}
    .edit-row .ed-val:focus{outline:none;background:var(--bg);box-shadow:0 0 0 2px var(--purple)}
    .edit-row .ed-icon{color:var(--text-faint);font-size:12px;opacity:0;transition:opacity var(--transition)}
    .edit-row:hover .ed-icon{opacity:1}
    .save-row{display:flex;align-items:center;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
    .save-row .saved-msg{font-size:12px;color:var(--teal);opacity:0;transition:opacity var(--transition)}
    .save-row .saved-msg.show{opacity:1}
    [data-theme="dark"] .row-icon-btn:hover{background:rgba(255,255,255,.06)}
    .alt-card-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-bottom:24px}
    .alt-card{min-height:200px;padding:22px;border-radius:18px;background:var(--panel-2);border:1px solid var(--line);box-shadow:var(--shadow-card);transition:transform var(--transition),background var(--transition),border-color var(--transition)}
    .alt-card:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(0,0,0,.08);border-color:rgba(0,0,0,.06)}
    [data-theme="dark"] .alt-card:hover{box-shadow:0 8px 28px rgba(0,0,0,.4);border-color:rgba(255,255,255,.08)}
    .alt-card h3{margin:0 0 12px;font-size:24px;letter-spacing:-.03em}
    .alt-card p,.alt-card li{color:var(--text-soft);font-size:16px;line-height:1.6}
    .alt-card ul{margin:0;padding-left:18px}
    .alt-list .term-row{min-height:72px}
    body.is-ready .metric-card,body.is-ready .dictionary-list-card,body.is-ready .alt-card{animation:liftIn 500ms cubic-bezier(.2,.8,.2,1) both}
    body.is-ready .metric-card:nth-child(1){animation-delay:.06s}
    body.is-ready .metric-card:nth-child(2){animation-delay:.12s}
    body.is-ready .metric-card:nth-child(3){animation-delay:.18s}
    @keyframes liftIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}

    /* ---------- Width cascade: sidebar + topbar progressively adapt ---------- */
    /* 1380px: slightly narrower sidebar, still full text */
    @media(max-width:1380px){.sidebar{width:234px}.app-shell{grid-template-columns:234px 1fr}.panel-head,.panel-tabs,.tab-stage{max-width:960px}.hero-content h2{font-size:52px}}
    /* 1160px: icon-only sidebar + hide topbar nav links, move to user dropdown */
    @media(max-width:1160px){
      .nav-item span{display:none}.nav-item{gap:0;padding:8px;justify-content:center}
      .sidebar{width:58px;padding:14px 8px}.app-shell{grid-template-columns:58px 1fr}
      .trial-card{display:none}.sidebar-bottom .nav-item span{display:none}.brand-row{display:none}
      .topbar-nav{display:none}
      .mobile-nav-item{display:flex!important}
    }
    /* 860px: tighter icon-only sidebar + stats stack to 2-col */
    @media(max-width:860px){.sidebar{width:48px;padding:10px 6px}.app-shell{grid-template-columns:48px 1fr}.nav-item{padding:6px}.icon{width:18px;height:18px}}
    .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
    .skip-link{top:10px;left:10px;z-index:9999;background:var(--black-btn);color:var(--panel);padding:10px 18px;border-radius:10px;text-decoration:none;font-weight:600}
    .skip-link:focus{width:auto;height:auto;clip:auto;margin:0;overflow:visible}
    /* 760px: phone — single-column, panel chrome shrinks */
    @media(max-width:760px){.main-panel{padding:32px 18px 32px;border-radius:24px}.panel-head{flex-direction:column;align-items:flex-start;margin-bottom:28px}.panel-head h2{font-size:38px}.panel-tabs{flex-direction:column;align-items:stretch;gap:10px}.tool-group{justify-content:flex-end}.hero-content{padding:30px 22px 26px}.hero-content h2{font-size:42px}.hero-content p{font-size:16px}.hero-chip{min-height:42px;padding:0 16px;font-size:15px}.desktop-row{flex-direction:column;align-items:flex-start}.stats-row{grid-template-columns:1fr}.alt-card-grid{grid-template-columns:1fr}}

    /* ---------- Height: icon-only when viewport is genuinely short ---------- */
    @media(max-height:620px){.nav-item span{display:none}.nav-item{gap:0;padding:8px;justify-content:center}.sidebar{width:58px;padding:14px 8px}.app-shell{grid-template-columns:58px 1fr}.trial-card{display:none}.sidebar-bottom .nav-item span{display:none}.brand-row{display:none}}
    @media(max-height:520px){.sidebar{width:48px;padding:10px 6px}.app-shell{grid-template-columns:48px 1fr}.nav-item{padding:6px}.icon{width:18px;height:18px}}

/* ── Table styles ── */
.tbl{width:100%;border-collapse:collapse;font-family:var(--font-ui);font-size:12px}
.tbl thead tr{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint)}
.tbl thead td{padding:6px 10px;border-bottom:2px solid var(--line-strong)}
.task-row td{padding:8px 10px;border-bottom:1px solid var(--line)}

/* ── Add-row form ── */
.addRow{display:none;align-items:center;gap:8px;padding:8px 10px;background:var(--bg);border-radius:10px;border:1px dashed var(--line)}
.addRow.visible{display:flex}

/* ── Word bank expand ── */
.wb-expand{display:none;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.wb-row{display:flex;align-items:flex-start;gap:10px;padding:4px 0}

/* ── Stat row/item ── */
.stat-row{display:flex;gap:1rem;flex-wrap:wrap;margin:12px 0}
.stat-item{display:flex;flex-direction:column;gap:2px;min-width:80px}

/* ── Sidebar lower nav ── */
.side-nav.lower{margin-top:auto;padding-top:.5rem;border-top:1px solid var(--line)}

/* ── Hide content until JS renders (no flash of mock data) ── */
.main-panel.js-loading .content-panel{opacity:0}
.main-panel.js-ready .content-panel{opacity:1;transition:opacity .2s ease}

/* ═══ House Style: Underline form elements (D3 selects + I2 inputs) ═══ */
select.sott-select, input.sott-input {
  padding: 5px 4px;
  border: none;
  border-bottom: 2px solid var(--line);
  border-radius: 0;
  background: transparent;
  color: var(--text);
  font-weight: 500;
  font-family: inherit;
  font-size: 13px;
  outline: none;
  cursor: pointer;
  transition: border-color .2s;
}
select.sott-select:hover, input.sott-input:hover { border-bottom-color: var(--text-faint); }
select.sott-select:focus, input.sott-input:focus { border-bottom-color: var(--teal); }
input.sott-input { cursor: text; }
input.sott-input::placeholder { color: var(--text-faint); font-style: italic; }
