  *{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
  :root{
    color-scheme:light;
    --bg:#FFFFFF; --bg2:#F4F7FB; --text:#0E2138; --muted:#5a6675;
    --accent:#005BFF; --accent2:#0A6CFF;
    --herobg:#FFFFFF; --herotext:#0E2138;
    --card:#FFFFFF; --cardbd:#eef2f8; --ic:#e6f0ff;
    --chipbg:#F4F8FF; --chipbd:#e2ebfa;
    --cta:linear-gradient(145deg,#0A6CFF,#005BFF); --ctashadow:rgba(0,91,255,.28);
    --field:#F6F8FC; --fieldbd:#e4eaf3;
    --ok:#0FA958; --okbg:#e8f8ef;
  }
  [data-theme="dark"]{
    color-scheme:dark;
    --bg:#0A1426; --bg2:#0E1B33; --text:#E3ECF9; --muted:#92a2bd;
    --accent:#4FA0FF; --accent2:#2E90FA;
    --herobg:linear-gradient(160deg,#0E1B33,#0A1426); --herotext:#EAF1FF;
    --card:#0F1B30; --cardbd:rgba(255,255,255,.08); --ic:rgba(46,144,250,.18);
    --chipbg:rgba(255,255,255,.05); --chipbd:rgba(46,144,250,.3);
    --cta:linear-gradient(145deg,#2E90FA,#0A6CFF); --ctashadow:rgba(46,144,250,.4);
    --field:rgba(255,255,255,.05); --fieldbd:rgba(255,255,255,.1);
    --ok:#3ddc84; --okbg:rgba(61,220,132,.12);
  }
  html,body{background:var(--bg2)}
  body{font-family:-apple-system,"SF Pro Display","Helvetica Neue",Inter,Arial,sans-serif;
    color:var(--text);min-height:100vh;line-height:1.45;
    -webkit-font-smoothing:antialiased;overscroll-behavior-y:none}
  button,a,input,textarea,select{touch-action:manipulation}
  button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{
    outline:3px solid var(--accent);outline-offset:2px}
  .app-view:focus{outline:none}
  .sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
  .wrap{max-width:560px;margin:0 auto;min-height:100vh;background:var(--bg);
    display:flex;flex-direction:column;box-shadow:0 0 60px rgba(15,22,34,.06)}

  /* HERO */
  .hero{background:var(--herobg);color:var(--herotext);padding:max(18px,env(safe-area-inset-top)) 22px 20px}
  .brand{display:flex;align-items:center;gap:11px;margin-bottom:16px}
  .emb{width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;
    font-size:22px;background:linear-gradient(145deg,#0A6CFF,#005BFF);color:#fff;flex:none}
  [data-theme="dark"] .emb{background:linear-gradient(145deg,#2E90FA,#005BFF)}
  .nm{font-size:21px;font-weight:800;letter-spacing:.3px;line-height:1}
  .sub{font-size:10px;font-weight:700;color:var(--muted);margin-top:4px;letter-spacing:.5px;text-transform:uppercase}
  .htitle{font-size:21px;font-weight:800;line-height:1.22;letter-spacing:-.2px;text-wrap:balance}
  .hsub{font-size:13px;opacity:.72;margin-top:9px;line-height:1.45}

  /* BODY */
  .body{flex:1;padding:18px 18px max(40px,env(safe-area-inset-bottom))}
  .seg{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.7px;margin:4px 2px 12px}
  .seg-pro,.seg-history,.seg-fields{margin-top:18px}
  .seg-docs{margin-top:6px}
  .ways{font-size:12.5px;color:var(--muted);margin:2px 2px 18px;line-height:1.5}

  .grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}
  .tile{border-radius:18px;padding:14px;display:flex;flex-direction:column;gap:7px;
    background:var(--card);border:1px solid var(--cardbd);cursor:pointer;
    transition:transform .12s ease, box-shadow .12s ease;color:var(--text);font-family:inherit;text-align:left}
  .tile:active{transform:scale(.97)}
  .tile .ic{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;
    justify-content:center;font-size:19px;background:var(--ic)}
  .tile .t{font-size:13.5px;font-weight:700}
  .tile .s{font-size:11px;color:var(--muted)}

  /* BUTTONS */
  .cta{width:100%;border:0;border-radius:16px;padding:17px;text-align:center;font-size:15.5px;
    font-weight:800;background:var(--cta);color:#fff;box-shadow:0 12px 26px var(--ctashadow);cursor:pointer;
    transition:transform .12s ease;font-family:inherit}
  .cta:active{transform:scale(.98)}
  .cta[disabled]{opacity:.5;box-shadow:none}
  .ghost{width:100%;border:1px solid var(--cardbd);border-radius:16px;padding:15px;text-align:center;
    font-size:14.5px;font-weight:700;background:transparent;color:var(--text);cursor:pointer;font-family:inherit}
  .back{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:700;color:var(--accent);
    background:none;border:0;cursor:pointer;margin-bottom:14px;padding:4px 0;font-family:inherit}

  /* FORMS */
  textarea,input{width:100%;font-family:inherit;font-size:15px;color:var(--text);background:var(--field);
    border:1px solid var(--fieldbd);border-radius:14px;padding:13px 14px;outline:none}
  textarea{min-height:130px;resize:vertical;line-height:1.5}
  textarea:focus,input:focus,select:focus{border-color:var(--accent)}
  .pill{display:inline-flex;align-items:center;gap:7px;background:var(--chipbg);border:1px solid var(--chipbd);
    color:var(--accent);font-size:13px;font-weight:700;border-radius:999px;padding:7px 13px;margin-bottom:16px}
  .attach{display:flex;gap:9px;margin-top:14px}
  .attbtn{flex:1;border:1px solid var(--chipbd);background:var(--chipbg);color:var(--accent);font-weight:700;
    font-size:13px;border-radius:12px;padding:12px;cursor:pointer;font-family:inherit;transition:transform .12s}
  .attbtn:active{transform:scale(.97)}
  .attbtn.rec{background:#ffe9e9;border-color:#ffb3b3;color:#d33}
  [data-theme="dark"] .attbtn.rec{background:rgba(255,80,80,.16);border-color:rgba(255,80,80,.4);color:#ff8a8a}
  .attstatus{font-size:12px;color:var(--muted);margin-top:9px}

  /* CARDS / ANALYSIS */
  .card{background:var(--card);border:1px solid var(--cardbd);border-radius:18px;padding:16px;margin-bottom:14px}
  .card h3{font-size:13px;font-weight:800;margin-bottom:9px;display:flex;align-items:center;gap:8px}
  .card p{font-size:14px;color:var(--text);opacity:.9;white-space:pre-wrap}
  .steps{list-style:none;counter-reset:s}
  .steps li{counter-increment:s;position:relative;padding:8px 0 8px 38px;font-size:14px;border-top:1px solid var(--cardbd)}
  .steps li:first-child{border-top:0}
  .steps li::before{content:counter(s);position:absolute;left:0;top:7px;width:26px;height:26px;border-radius:9px;
    background:var(--ic);color:var(--accent);font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center}

  .lawref{padding:11px 0;border-top:1px solid var(--cardbd)}
  .lawref:first-child{border-top:0;padding-top:2px}
  .lawref .lr-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
  .lawref .lr-code{font-size:12px;font-weight:800;color:var(--accent);background:var(--chipbg);
    border:1px solid var(--chipbd);border-radius:8px;padding:2px 8px;white-space:nowrap}
  .lawref .lr-title{font-size:13px;font-weight:700}
  .lawref .lr-sum{font-size:12.5px;color:var(--muted);margin-top:5px;line-height:1.45}
  .lawref .lr-vf{font-size:10.5px;color:var(--muted);opacity:.85;margin-top:4px}

  .doctypes{display:flex;flex-direction:column;gap:9px;margin-bottom:6px}
  .doc{display:flex;align-items:center;gap:11px;border:1px solid var(--cardbd);border-radius:14px;
    padding:13px 14px;cursor:pointer;background:var(--card);transition:border-color .12s;
    width:100%;color:var(--text);font-family:inherit;text-align:left}
  .doc.sel{border-color:var(--accent);background:var(--chipbg)}
  .doc .radio{width:20px;height:20px;border-radius:50%;border:2px solid var(--fieldbd);flex:none;position:relative}
  .doc.sel .radio{border-color:var(--accent)}
  .doc.sel .radio::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--accent)}
  .doc .dt{font-size:14px;font-weight:700}

  .lbl{font-size:13px;font-weight:700;margin:14px 2px 7px;display:block}
  .hint{font-size:12px;color:var(--muted);margin-top:5px}
  .hint-counter{text-align:right;margin-top:2px}
  .hint-counter.limit,.hint.error{color:var(--accent)}
  .hint-centered{text-align:center;margin-top:8px}
  .hint-pay-intro{margin-bottom:16px}
  .hint-pane{margin-bottom:10px}
  .hint-calc{margin:-2px 0 8px}
  .spacer-18{height:18px}
  .spacer-20{height:20px}
  .view-title{font-size:20px;font-weight:800;margin-bottom:6px}
  .view-title-roomy{margin-bottom:10px}
  .view-title-pro{margin-bottom:8px}
  .verified-badge{display:inline-block;margin:0 0 14px;padding:6px 12px;border-radius:999px;background:rgba(16,160,90,.12);color:#10A05A;font-weight:700;font-size:13px}

  .disc{font-size:11.5px;color:var(--muted);text-align:center;margin-top:20px;line-height:1.5;padding:0 8px}

  .consent-gate{position:fixed;left:max(14px,env(safe-area-inset-left));
    right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));
    z-index:45;max-width:540px;margin:0 auto;padding:18px;background:var(--card);
    border:1px solid var(--accent);border-radius:18px;box-shadow:0 18px 54px rgba(5,12,26,.28)}
  .consent-gate h2{font-size:17px;margin-bottom:7px}
  .consent-gate p{font-size:13px;line-height:1.45;color:var(--muted);margin-bottom:14px}
  .consent-gate .cta{padding:13px;font-size:14px}
  .consent-gate .consent-retry{margin-top:8px;padding:11px;font-size:13px}
  .telegram-gate-backdrop{position:fixed;inset:0;background:rgba(8,14,26,.55);z-index:44}
  .telegram-gate{z-index:46;bottom:auto;top:50%;transform:translateY(-50%)}
  .telegram-gate a.cta{display:block;text-align:center;text-decoration:none;color:#fff}

  /* RESULT */
  .okwrap{text-align:center;padding:30px 10px 10px}
  .okcircle{width:76px;height:76px;border-radius:50%;background:var(--okbg);color:var(--ok);font-size:38px;
    display:flex;align-items:center;justify-content:center;margin:0 auto 18px}
  .okwrap h2{font-size:21px;font-weight:800}
  .okwrap p{font-size:14px;color:var(--muted);margin-top:8px}
  .fname{display:inline-flex;align-items:center;gap:8px;background:var(--chipbg);border:1px solid var(--chipbd);
    border-radius:12px;padding:10px 14px;font-size:13px;font-weight:700;color:var(--accent);margin:18px 0}
  .dlrow{display:flex;gap:11px;margin-bottom:11px}
  .dlrow .cta{flex:1;padding:15px}

  /* LOADING */
  .overlay{position:fixed;inset:0;background:rgba(8,14,26,.45);backdrop-filter:blur(3px);
    display:none;align-items:center;justify-content:center;z-index:50;overscroll-behavior:contain}
  .overlay.on{display:flex}
  .spinbox{background:var(--card);border-radius:18px;padding:24px 28px;text-align:center;color:var(--text)}
  .spin{width:34px;height:34px;border:3px solid var(--cardbd);border-top-color:var(--accent);border-radius:50%;
    margin:0 auto 12px;animation:r .8s linear infinite}
  @keyframes r{to{transform:rotate(360deg)}}
  .spinbox p{font-size:13px;font-weight:600}

  /* pointer-events:none — тост не интерактивен; без этого погасший (opacity:0)
     фикс-блок вечно перехватывал тапы по нижней части экрана */
  .toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);background:#1a2536;color:#fff;
    font-size:13px;font-weight:600;padding:12px 18px;border-radius:12px;z-index:60;opacity:0;transition:opacity .25s;
    max-width:90%;text-align:center;pointer-events:none}
  .toast.on{opacity:1}
  .proentry{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--cardbd);border-radius:16px;background:var(--card);cursor:pointer;width:100%;color:var(--text);font-family:inherit;text-align:left}
  .proentry .ic{font-size:24px}
  .proentry .t{font-weight:800}
  .proentry .s{font-size:13px;color:var(--muted)}
  .proentry .arr{margin-left:auto;color:var(--accent);font-weight:800;font-size:18px}
  .data-entry{margin-top:10px}
  .consent-card{padding:17px;border:1px solid var(--cardbd);border-radius:16px;background:var(--card);margin-bottom:12px}
  .consent-card h3{margin:0 0 8px;font-size:17px}
  .consent-card p{font-size:13px;color:var(--muted);line-height:1.5;margin:0 0 15px}
  .danger-card{padding:17px;border:1px solid #e3a4a4;border-radius:16px;background:var(--card)}
  .danger-card h3{margin:0 0 8px;font-size:17px}
  .danger-card p{font-size:13px;color:var(--muted);line-height:1.5;margin:0 0 15px}
  .danger-card .data-hint{margin:8px 0 14px}
  .cta-danger{background:#b42318;box-shadow:0 6px 18px rgba(180,35,24,.2)}
  .data-confirm{margin-top:12px;padding:13px;border-radius:13px;background:var(--field)}
  .data-confirm p{margin-bottom:11px}
  .data-actions{display:flex;gap:9px}
  .data-actions .cta,.data-actions .ghost{flex:1;padding:12px 10px;font-size:13px}
  .data-status{min-height:20px;margin-top:12px;font-size:13px;line-height:1.45;color:var(--muted)}
  .data-status.success{color:var(--ok);font-weight:700}
  .data-status.error{color:#b42318;font-weight:700}
  .history-note{font-size:13px;color:var(--muted);line-height:1.5;margin:0 0 14px}
  .history-list{display:flex;flex-direction:column;gap:10px}
  .history-item{padding:14px 15px;border:1px solid var(--cardbd);border-radius:15px;background:var(--card)}
  .history-head{display:flex;align-items:flex-start;gap:9px;font-size:14px;font-weight:800}
  .history-date{margin-left:auto;color:var(--muted);font-size:11px;font-weight:600;white-space:nowrap}
  .history-preview{font-size:13px;color:var(--muted);line-height:1.5;margin-top:7px;overflow-wrap:anywhere}
  .history-empty{padding:20px 16px;text-align:center;color:var(--muted);background:var(--field);border-radius:15px;font-size:13px;line-height:1.5}
  .prosearch{display:flex;gap:8px;margin:4px 0 14px}
  .prosearch input{flex:1}
  .cta-compact{width:auto;padding:0 18px}
  .codechips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}
  .codechip{padding:7px 12px;border:1px solid var(--cardbd);border-radius:999px;background:var(--card);font-size:13px;font-weight:700;cursor:pointer}
  button.codechip{color:var(--text);font-family:inherit}
  .pro-stats{width:100%;color:var(--muted);font-size:12px;margin-bottom:2px}
  .tocrow{padding:11px 2px;border-bottom:1px solid var(--cardbd);cursor:pointer;font-size:14px}
  button.tocrow{display:block;width:100%;background:none;border:0;text-align:left;color:var(--text);font-family:inherit}
  .tocrow-static{cursor:default}
  .tocrow b{color:var(--accent)}
  .artbox{white-space:pre-wrap;line-height:1.55;font-size:15px;color:var(--text);overflow-wrap:anywhere}
  .lawmeta{font-size:12px;color:var(--muted);margin-top:12px;line-height:1.5}
  .copybtn{font-size:13px;font-weight:700;color:var(--accent);background:none;border:1px solid var(--cardbd);border-radius:10px;padding:6px 12px;cursor:pointer;margin-top:10px}
  .copybtn-spaced{margin-right:8px}
  .article-title{margin:6px 0 4px}
  /* вкладки Pro не переносятся на 2 строки: одна строка + горизонтальный скролл */
  .protabs{display:flex;flex-wrap:nowrap;gap:8px;margin-bottom:12px;overflow-x:auto;
    -webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px}
  .protabs::-webkit-scrollbar{display:none}
  .protab{min-width:88px;white-space:nowrap}
  .protab{flex:1 0 auto;padding:10px;border:1px solid var(--cardbd);border-radius:12px;background:var(--card);font-weight:800;font-size:14px;cursor:pointer;color:var(--muted)}
  .protab.on{border-color:var(--accent);color:var(--accent)}
  .codechip.on{border-color:var(--accent);color:var(--accent)}
  .bfrow{display:flex;flex-direction:column;align-items:stretch;gap:4px;margin-bottom:10px}
  .bfrow label{font-size:13px;color:var(--muted)}
  .bfrow input{padding:9px 10px;border:1px solid var(--cardbd);border-radius:10px;background:var(--bg);color:var(--text);font-size:14px}
  .long-field{min-height:80px}
  .blank-step-title{font-weight:800;margin-bottom:8px}
  .cta-spaced{margin-top:8px}
  #posInput{width:100%;box-sizing:border-box;padding:11px;border:1px solid var(--cardbd);border-radius:12px;background:var(--bg);color:var(--text);font-size:15px;font-family:inherit;margin-bottom:10px}
  .posh{font-weight:800;font-size:14px;margin:12px 0 4px}
  .posh-top{margin-top:0}
  .position-text{line-height:1.55}
  .posul{margin:0;padding-left:18px}
  .posul li{margin-bottom:5px;line-height:1.5}
  .vbadge{display:inline-block;background:rgba(40,170,90,.15);color:#1f9d55;border-radius:8px;padding:3px 9px;font-size:13px;font-weight:700;margin-bottom:8px}
  .card.calc h3{margin:0 0 10px;font-size:16px}
  .calcrow{display:flex;align-items:center;gap:10px;margin-bottom:9px}
  .calcrow label{flex:0 0 42%;font-size:13px;color:var(--muted)}
  .calcrow input,.calcrow select{flex:1;padding:9px 10px;border:1px solid var(--cardbd);border-radius:10px;background:var(--bg);color:var(--text);font-size:14px;min-width:0}
  /* строки с select: лейбл сверху, селект на всю ширину — на 320px текст опций не режется */
  .calcrow.stack{flex-wrap:wrap}
  .calcrow.stack label{flex:0 0 100%}
  .calcrow.stack select{flex:1 0 100%;width:100%}
  .card.calc .cta{margin-top:4px}
  .calcres{margin-top:12px;padding-top:12px;border-top:1px solid var(--cardbd)}
  .calcbig{font-size:24px;font-weight:800;color:var(--accent);font-variant-numeric:tabular-nums}
  .calcsteps{font-size:13px;color:var(--text);line-height:1.5;margin-top:6px;white-space:pre-wrap}
  .calctbl{width:100%;font-size:12px;margin-top:8px;border-collapse:collapse}
  .calctbl td,.calctbl th{padding:4px 6px;border-bottom:1px solid var(--cardbd);text-align:left}
  .lawmeta-bottom{margin-bottom:8px}
  .lawmeta-feed{margin-top:8px}
  .change-text{color:var(--text);font-size:13px;line-height:1.5;margin-top:3px}
  .pay-check{margin-top:11px}
  .pay-stars{margin-top:14px}
  .pay-agency{margin-top:16px}
  .pay-agency p{font-size:13px;color:var(--muted)}
  .pay-plan-body{flex:1}
  .pay-plan-description{font-size:12px;color:var(--muted);margin-top:2px}
  .pay-plan-price{font-weight:800;color:var(--accent);white-space:nowrap;margin-left:6px}
  .hidden{display:none!important}

  @media(prefers-reduced-motion:reduce){
    *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  }
