:root{--red:#E5383B;--red-bg:#FFF5F5;--blue:#2563EB;--blue-d:#1E40AF;--blue-bg:#F3F6FF;--ink:#0F172A;--slate:#475569;--muted:#64748B;--line:#E2E8F0;--bg:#F7F8FB;--ok:#16A34A;--ok-bg:#ECFDF3;--warn:#B45309;--warn-bg:#FFFBEB;--r:16px}
*{box-sizing:border-box}
html,body{margin:0}
body{font:15px/1.55 Inter,"Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}
a{color:var(--blue)}
button,input,select,textarea{font:inherit;color:inherit}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.muted{color:var(--muted)}
.err{color:var(--red);font-weight:600;margin:8px 0 0}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;padding:12px 22px;font-weight:700;cursor:pointer;text-decoration:none;transition:transform .12s,box-shadow .15s,background .15s}
.btn:hover{transform:translateY(-1px)}
.btn.red{background:var(--red);color:#fff;box-shadow:0 10px 22px -10px rgba(229,56,59,.7)}
.btn.blue{background:var(--blue);color:#fff;box-shadow:0 10px 22px -10px rgba(37,99,235,.7)}
.btn.ghost{background:#fff;color:var(--blue-d);border:1.5px solid #C7D5FF}
.btn.small{padding:8px 14px;font-size:13px}
.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none}
.langs{display:inline-flex;gap:4px}
.langs button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;color:var(--muted);cursor:pointer}
.langs button.on{background:var(--ink);color:#fff;border-color:var(--ink)}

/* login */
.login{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;background:radial-gradient(600px 380px at 90% 0%,rgba(37,99,235,.10),transparent 65%),radial-gradient(560px 360px at 0% 100%,rgba(229,56,59,.08),transparent 65%),#fff}
.login-card{width:100%;max-width:420px;background:#fff;border:1px solid var(--line);border-radius:24px;padding:32px;box-shadow:0 30px 60px -40px rgba(15,23,42,.45);position:relative}
.login-card .langs{position:absolute;top:24px;right:24px}
.login h1{margin:22px 0 6px;font-size:26px;letter-spacing:-.02em}
.login input{width:100%;margin:18px 0 0;padding:14px 16px;border:1.5px solid var(--line);border-radius:12px;font-size:16px;letter-spacing:.06em;text-transform:uppercase}
.login input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 4px rgba(37,99,235,.12)}
.login .btn{width:100%;margin-top:16px}
.login .back{display:block;margin-top:18px;font-size:13px;color:var(--muted);text-decoration:none}
.login .foot{color:var(--muted);font-size:12px;margin-top:20px}

/* top bar */
.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:20px;padding:12px 24px;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.top nav{display:flex;gap:4px;flex:1;overflow-x:auto;scrollbar-width:none}
.top nav a{padding:8px 12px;border-radius:999px;text-decoration:none;color:var(--slate);font-weight:600;font-size:14px;white-space:nowrap}
.top nav a.on{background:var(--blue-bg);color:var(--blue-d)}
.top .right{display:flex;align-items:center;gap:12px}
.logout{font-size:13px;color:var(--muted);text-decoration:none;font-weight:600}

main#app{max-width:1120px;margin:0 auto;padding:32px 24px 120px}
.ph{margin-bottom:22px}
.ph .eye{font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--red)}
.ph h1{margin:6px 0 6px;font-size:32px;letter-spacing:-.025em;line-height:1.15}
.ph p{margin:0;color:var(--slate);max-width:70ch}
.card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px;box-shadow:0 18px 40px -34px rgba(15,23,42,.5)}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.tile{display:flex;flex-direction:column;gap:6px;padding:22px;border-radius:20px;background:#fff;border:1px solid var(--line);text-decoration:none;color:var(--ink);cursor:pointer;transition:border-color .2s,box-shadow .2s,transform .2s;text-align:left}
.tile:hover{border-color:#C7D5FF;box-shadow:0 16px 34px -22px rgba(37,99,235,.55);transform:translateY(-2px)}
.tile .ic{width:44px;height:44px;border-radius:13px;display:flex;align-items:center;justify-content:center;background:var(--red);color:#fff;margin-bottom:8px}
.tile:nth-child(2n) .ic{background:var(--blue)}
.tile .ic svg{width:22px;height:22px}
.tile b{font-size:16px}
.tile span{color:var(--muted);font-size:13.5px}

/* steps */
.step{margin-top:22px}
.step h2{display:flex;align-items:center;gap:12px;margin:0 0 14px;font-size:20px;letter-spacing:-.01em}
.step h2 i{font-style:normal;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--red);color:#fff;font-size:14px;flex:none}
.step:nth-of-type(2n) h2 i{background:var(--blue)}
.sector{margin:14px 0 8px;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.apps{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.app{display:flex;gap:12px;align-items:flex-start;padding:14px;border-radius:14px;border:1.5px solid var(--line);background:#fff;cursor:pointer;text-align:left}
.app img{width:40px;height:40px;border-radius:10px;flex:none}
.app b{display:block;font-size:14.5px}
.app span{display:block;font-size:12.5px;color:var(--muted);line-height:1.4}
.app.on{border-color:var(--red);background:var(--red-bg);box-shadow:0 0 0 3px rgba(229,56,59,.12)}
.pkgs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.pkg{position:relative;padding:20px;border-radius:16px;border:1.5px solid var(--line);background:#fff;cursor:pointer;text-align:left}
.pkg b{font-size:18px}
.pkg .note{display:block;color:var(--muted);font-size:13px;margin:4px 0 12px}
.pkg .pr{font-size:13px;color:var(--slate)}
.pkg .pr strong{font-size:20px;color:var(--ink)}
.pkg.on{border-color:var(--blue);background:var(--blue-bg);box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.f{display:flex;flex-direction:column;gap:6px}
.f.full{grid-column:1/-1}
.f label{font-size:13px;font-weight:700;color:var(--slate)}
.f label em{color:var(--red);font-style:normal}
.f input,.f textarea,.f select{padding:11px 13px;border:1.5px solid var(--line);border-radius:10px;background:#fff;width:100%}
.f textarea{min-height:76px;resize:vertical}
.f .req{background:#FFFDF5;border-color:#F6D58A}
.f input:focus,.f textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 4px rgba(37,99,235,.10);background:#fff}
.f.bad input,.f.bad textarea{border-color:var(--red);background:var(--red-bg)}
.sum{display:grid;grid-template-columns:1fr auto;gap:8px 20px;padding:18px 20px;border-radius:14px;background:var(--blue-bg);border:1px solid #DCE5FF}
.sum .k{color:var(--slate)}
.sum .v{font-weight:700;text-align:right}
.sum .tot{border-top:1px solid #C9D6FF;padding-top:10px;font-size:17px}
.callout{padding:14px 16px;border-radius:12px;background:var(--warn-bg);border:1px solid #FDE68A;color:#78350F;font-size:14px}
.callout.ok{background:var(--ok-bg);border-color:#BBF7D0;color:#14532D}
.callout.blue{background:var(--blue-bg);border-color:#DCE5FF;color:var(--blue-d)}
.terms{max-height:420px;overflow:auto;padding:20px 22px;border:1px solid var(--line);border-radius:14px;background:#FCFCFD;font-size:14px;color:var(--slate)}
.terms h3{margin:16px 0 4px;font-size:14.5px;color:var(--ink)}
.terms h3:first-child{margin-top:0}
.terms p{margin:0 0 6px}
.check{display:flex;gap:10px;align-items:flex-start;margin:16px 0;font-weight:600}
.check input{width:20px;height:20px;margin-top:2px;accent-color:var(--red)}
.sigs{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.sigbox{border:1.5px dashed #C7D5FF;border-radius:14px;padding:14px;background:#fff}
.sigbox h4{margin:0 0 4px;font-size:14px}
.sigbox canvas{display:block;width:100%;height:170px;border-radius:10px;background:#FAFBFF;touch-action:none;cursor:crosshair;border:1px solid var(--line)}
.sigbox .row{display:flex;justify-content:space-between;align-items:center;margin-top:8px;font-size:12.5px;color:var(--muted)}
.sigbox.xone{display:flex;flex-direction:column;justify-content:center;background:#FCFCFD}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
table.list{width:100%;border-collapse:collapse;font-size:14px}
table.list th{text-align:left;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:10px;border-bottom:1px solid var(--line)}
table.list td{padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700}
.badge.signed{background:var(--blue-bg);color:var(--blue-d)}
.badge.paid{background:var(--ok-bg);color:#15803D}
.offices{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.office{padding:20px;border-radius:16px;background:#fff;border:1px solid var(--line);border-top:4px solid var(--red)}
.office:nth-child(2){border-top-color:var(--blue)}
.office b{font-size:17px}
.office p{margin:6px 0 10px;color:var(--slate);font-size:14px}
.office a{font-weight:700;text-decoration:none}
.bank{display:grid;grid-template-columns:auto 1fr;gap:6px 18px;font-size:14px}
.bank span{color:var(--muted)}
/* printable contract */
.doc{background:#fff;border:1px solid var(--line);border-radius:12px;padding:40px 44px;font-size:13.5px;color:#1F2937}
.doc .dh{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:3px solid var(--red);padding-bottom:14px;margin-bottom:18px}
.doc h2{margin:0;font-size:22px}
.doc table{width:100%;border-collapse:collapse;margin:8px 0 14px}
.doc td{padding:6px 8px;border-bottom:1px solid #EEF0F4;vertical-align:top}
.doc td:first-child{color:#64748B;width:38%}
.doc .sg{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}
.doc .sg div{border:1px solid #E5E7EB;border-radius:8px;padding:12px;min-height:150px}
.doc .sg img{max-width:100%;max-height:110px}
/* support */
.h2{margin:0 0 14px;font-size:20px;letter-spacing:-.01em}
.jencard{display:flex;align-items:center;gap:18px;padding:20px 22px;margin-bottom:18px;border-radius:20px;color:#fff;background:linear-gradient(120deg,#1E40AF 0%,#2563EB 55%,#E5383B 130%);box-shadow:0 22px 44px -30px rgba(37,99,235,.9)}
.jencard .jav{width:52px;height:52px;flex:none;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.35)}
.jencard .jav svg{width:26px;height:26px}
.jencard > div:nth-child(2){flex:1}
.jencard b{font-size:18px}
.jencard p{margin:2px 0 0;opacity:.88;font-size:14px}
.jencard .btn.red{background:#fff;color:var(--red);box-shadow:none}
.supgrid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:18px;align-items:start}
.prio{display:flex;flex-wrap:wrap;gap:8px}
.pp{position:relative;cursor:pointer}
.pp input{position:absolute;opacity:0}
.pp span{display:inline-block;padding:8px 14px;border-radius:999px;border:1.5px solid var(--line);font-size:13px;font-weight:700;color:var(--slate);background:#fff}
.pp input:checked + span{border-color:var(--blue);background:var(--blue-bg);color:var(--blue-d)}
.pp.urgent input:checked + span{border-color:var(--red);background:var(--red-bg);color:var(--red)}
.pp input:focus-visible + span{box-shadow:0 0 0 4px rgba(37,99,235,.15)}
.drop{display:flex;flex-direction:column;align-items:center;gap:4px;padding:22px;border:2px dashed #C7D5FF;border-radius:14px;background:#FAFBFF;color:var(--slate);text-align:center;cursor:pointer;transition:background .15s,border-color .15s}
.drop:hover,.drop.over{background:var(--blue-bg);border-color:var(--blue)}
.drop .dic{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--blue);color:#fff;margin-bottom:4px}
.drop .dic svg{width:19px;height:19px}
.drop u{color:var(--blue);font-weight:700}
.drop small{color:var(--muted);font-size:12px}
.flist{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}
.flist li{display:flex;align-items:center;gap:12px;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:#fff}
.flist img,.flist video,.flist .ext{width:46px;height:46px;border-radius:8px;object-fit:cover;flex:none;background:var(--blue-bg)}
.flist .ext{display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:var(--blue-d)}
.flist div{flex:1;min-width:0}
.flist b{display:block;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.flist span{font-size:12px;color:var(--muted)}
.flist button{border:0;background:var(--red-bg);color:var(--red);width:30px;height:30px;border-radius:50%;font-size:18px;cursor:pointer;flex:none}
.prog{position:relative;height:30px;margin-top:14px;border-radius:999px;background:var(--blue-bg);overflow:hidden}
.prog i{position:absolute;inset:0 auto 0 0;width:0;background:linear-gradient(90deg,var(--blue),var(--red));transition:width .2s}
.prog span{position:relative;display:block;text-align:center;line-height:30px;font-size:13px;font-weight:700;color:#fff;mix-blend-mode:difference}
.tickets{display:grid;gap:10px}
.tk{padding:14px 16px;border-radius:14px;background:#fff;border:1px solid var(--line);border-left:4px solid var(--blue)}
.tkh{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:14px}
.tks{margin:4px 0 2px;font-weight:600}
.tkm{font-size:12.5px;color:var(--muted)}
.pt.high,.pt.urgent{color:var(--red);font-weight:700}
.tkf{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.tkf a{display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:3px 10px;border-radius:999px;background:var(--blue-bg);font-size:12px;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tkf svg{width:12px;height:12px;flex:none}
.badge.open{background:var(--warn-bg);color:var(--warn)}
.badge.progress{background:var(--blue-bg);color:var(--blue-d)}
.badge.closed{background:var(--ok-bg);color:#15803D}
.codocs{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.codoc{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 18px 40px -34px rgba(15,23,42,.5)}
.codoc .cov{background:linear-gradient(135deg,#F3F6FF,#FFF1F1);padding:26px 26px 0;display:flex;justify-content:center;height:260px;overflow:hidden}
.codoc .cov img{width:78%;align-self:flex-start;border-radius:8px 8px 0 0;box-shadow:0 18px 40px -18px rgba(15,23,42,.45)}
.codoc.deck .cov{background:linear-gradient(135deg,#17153A,#2B2770);align-items:center;padding:26px}
.codoc.deck .cov img{width:92%;align-self:center;border-radius:8px}
.codoc .cob{padding:20px 24px 24px}
.codoc h2{margin:0 0 6px;font-size:20px}
.codoc p{margin:0;color:var(--slate);font-size:14.5px}
.codoc .actions{margin-top:16px}
.tkr{margin-top:10px;padding:10px 12px;border-radius:10px;background:var(--ok-bg);border:1px solid #BBF7D0;font-size:13px}.tkr span{color:var(--muted)}.tkr p{margin:4px 0 0;color:var(--ink)}
@media (max-width:860px){.codocs{grid-template-columns:1fr}.supgrid{grid-template-columns:1fr}.jencard{flex-wrap:wrap}.jencard .btn{width:100%}.pkgs,.offices,.sigs,.grid2,.doc .sg{grid-template-columns:1fr}.top{flex-wrap:wrap;padding:10px 14px}.top nav{order:3;flex-basis:100%}main#app{padding:22px 16px 120px}.ph h1{font-size:26px}.doc{padding:22px 18px}}
@media print{.top,.noprint,#jennifer-root{display:none!important}body{background:#fff}main#app{padding:0;max-width:none}.doc{border:0;padding:0}}
