/* ================= PORTAL ================= */
.portal{--brand:#1d2b5f;--accent:#b98a2f;display:flex;flex-direction:column;flex:1;background:var(--bg);font-size:15px}
.p-head{background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:14px;padding:12px 28px}
.plogo{display:flex;align-items:center;gap:9px;color:var(--brand);font-weight:700;font-size:19px;letter-spacing:-.02em}
.plogo svg{width:30px;height:30px}.plogo img{max-height:36px;max-width:170px}
.p-nav{display:flex;gap:4px;margin-left:18px}
.p-nav button{border:0;background:none;padding:7px 12px;color:var(--mut);font-weight:500}
.p-nav button.on{color:var(--brand);box-shadow:inset 0 -2px 0 var(--brand)}
.lang{border:1px solid var(--line);background:#fff;border-radius:6px;padding:5px 9px;font-size:13px;color:var(--mut)}
.avatar{width:32px;height:32px;border-radius:50%;background:var(--brand,var(--cardif));color:#fff;display:grid;place-items:center;font-weight:600;font-size:12px;flex:none}
.p-main{padding:28px;flex:1}
.hero{background:var(--brand);color:#fff;border-radius:10px;padding:28px 32px}
.hero.img{display:grid;grid-template-columns:minmax(0,1fr) 40%;padding:0;overflow:hidden}.hero.img .tx{padding:28px 32px}.hero .pic{background-size:cover;background-position:center;min-height:170px}
.login .side{background-size:cover;background-position:center}.side-pv{background-size:cover;background-position:center;background-color:var(--brand);color:#fff;border-radius:8px;height:110px;display:flex;align-items:flex-end;padding:10px 12px;font-size:12px;font-weight:600;margin-bottom:10px}
.frame.full{min-height:100vh}
.edtab .demobar,.edtab .c-top,.edtab .c-side,.edtab .c-main>.ph{display:none!important}.edtab .c-body{grid-template-columns:1fr}.edtab .frame{min-height:100vh}.edtab .stage .frame:not(.mobile){--stk:0px}.edtab .c-main{padding:16px 20px 30px}
.hero h1{font-size:24px;letter-spacing:-.01em}.hero p{opacity:.85;margin-top:6px}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.chip{border-radius:4px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.28);padding:3px 10px;font-size:12.500px}
.sec{display:flex;justify-content:space-between;align-items:baseline;margin:26px 0 12px;gap:10px}
.sec h2{font-size:17px}.sec span{color:var(--mut);font-size:13px}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.svc{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:20px;text-align:left;display:flex;flex-direction:column;gap:8px;transition:.15s}
.svc:hover{border-color:var(--brand);box-shadow:0 2px 10px rgba(16,22,29,.08)}.svc.down{opacity:.6}
.ico{width:40px;height:40px;border-radius:8px;background:#fff;border:1px solid var(--line);color:var(--brand);display:grid;place-items:center;font-size:19px;flex:none}
.svc h3{font-size:15px}.svc p{color:var(--mut);font-size:13.500px}
.svc .meta{display:flex;gap:6px;align-items:center;margin-top:auto;padding-top:6px;font-size:12px;color:var(--mut)}
.offer{margin-top:22px;border-radius:var(--r);padding:18px 22px;display:flex;align-items:center;gap:16px;justify-content:space-between;background:#fff;border:1px solid var(--line);border-left:3px solid var(--accent)}
.p-foot{border-top:1px solid var(--line);background:#fff;padding:14px 28px;display:flex;align-items:center;gap:12px;color:var(--mut);font-size:12.500px;flex-wrap:wrap}
.login{display:grid;grid-template-columns:1.100fr 1fr;flex:1}
.login .side{background:var(--brand);color:#fff;padding:48px;display:flex;flex-direction:column;justify-content:center;gap:14px}
.login .side h1{font-size:28px;letter-spacing:-.02em;line-height:1.200}
.login .side li{margin:6px 0;opacity:.9}
.login .side{--mk:var(--brand)}
.login .form{padding:40px 48px;background:#fff;display:flex;flex-direction:column;justify-content:center;gap:14px}
.tabs{display:flex;border-bottom:1px solid var(--line);gap:20px}
.tabs button{border:0;background:none;padding:8px 0;color:var(--mut);font-weight:600;border-bottom:2px solid transparent}
.tabs button.on{color:var(--brand);border-color:var(--brand)}
.persona{display:flex;align-items:center;gap:10px;border:1px dashed #c6ced7;background:#fafbfc;border-radius:6px;padding:8px 10px;text-align:left;font-size:13px;width:100%}
.persona:hover{border-color:var(--brand)}
.note{border-radius:6px;padding:10px 12px;font-size:13.500px}
.note.bad{background:#fef1f0;color:#8a1f1f}.note.info{background:#eef3fb;color:#1f4fa8}.note.ok{background:#ecf7f1;color:#0e6b4b}
.back{border:0;background:none;color:var(--mut);padding:0;margin-bottom:14px}
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:22px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.steps{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}
.steps li{display:flex;gap:10px;align-items:flex-start;color:var(--mut)}
.steps li i{width:20px;height:20px;border-radius:50%;border:2px solid #cfd6de;flex:none;display:grid;place-items:center;font-style:normal;font-size:11px}
.steps li.done{color:var(--ink)}.steps li.done i{background:var(--ok);border-color:var(--ok);color:#fff}
.steps li.now i{border-color:var(--brand);border-right-color:transparent;animation:sp .8s linear infinite}
.wbox{border:1px dashed #b3bcc7;border-radius:var(--r);padding:18px;background:#fafbfc;position:relative}
.wbox:before{content:attr(data-l);position:absolute;top:-9px;left:14px;background:#4a5562;color:#fff;font-size:10.500px;font-weight:600;padding:1px 8px;border-radius:3px}
.coupon{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}
.code{font-family:ui-monospace,Menlo,Consolas,monospace;background:#111827;color:#fff;padding:4px 10px;border-radius:4px;font-size:13px}
.browser{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.bbar{background:#eceff3;padding:8px 12px;display:flex;gap:8px;align-items:center;font-size:12.500px;color:var(--mut)}
.bbar .url{background:#fff;border-radius:99px;padding:4px 12px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.prov-head{color:#fff;padding:16px 22px;display:flex;justify-content:space-between;align-items:center;font-weight:600}
.kv td{padding:9px 6px;border-bottom:1px solid var(--line2)}
/* ---- portal v3: visual moderno ---- */
.portal{background:#f6f7f9;--tint:color-mix(in srgb,var(--brand) 8%,#fff);--tint2:color-mix(in srgb,var(--brand) 15%,#fff)}
.stage .frame:not(.mobile):not(.full){--stk:0px}
.portal .btn{border-radius:10px;padding:10px 18px}.portal .btn.sm{padding:6px 12px;border-radius:8px}
.portal .in{border-radius:10px;padding:11px 13px;border-color:#d7dce2}
.portal .badge{border-radius:999px;padding:2px 9px}
.portal .avatar{background:var(--tint2);color:var(--brand)}
.p-head{position:sticky;top:var(--stk,0px);z-index:4;background:rgba(255,255,255,.88);backdrop-filter:saturate(1.400) blur(10px);border-bottom:1px solid #eceef1;padding:12px max(28px,calc((100% - 1180px)/2))}
.cs .p-head{position:static}
.p-nav{gap:2px;background:#f1f3f5;border-radius:999px;padding:3px;margin-left:22px}
.p-nav button{border-radius:999px;padding:6px 14px;font-size:14px}
.p-nav button.on{background:#fff;box-shadow:0 1px 2px rgba(16,24,40,.14);color:var(--brand)}
.p-main{max-width:1236px;width:100%;margin:0 auto;padding:28px}
.p-foot{border:0;background:transparent;padding:18px max(28px,calc((100% - 1180px)/2))}
.hero{border-radius:20px;padding:34px 36px;background:linear-gradient(135deg,var(--brand),color-mix(in srgb,var(--brand) 70%,#000));position:relative;overflow:hidden}
.hero:not(.img):before{content:"";position:absolute;right:-90px;top:-140px;width:440px;height:440px;border-radius:50%;background:radial-gradient(closest-side,color-mix(in srgb,var(--accent) 60%,transparent),transparent);opacity:.400}
.hero>*{position:relative}
.hero h1{font-size:30px;letter-spacing:-.025em}.hero p{font-size:16px}
.hero.img{grid-template-columns:minmax(0,1fr) 42%}.hero.img .tx{padding:34px 36px}
.chip{border-radius:999px;padding:4px 12px;background:rgba(255,255,255,.150);border:0}
.sec{margin:30px 0 14px}.sec h2{font-size:20px;letter-spacing:-.015em}
.cats{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.cats button{border:1px solid #e3e6ea;background:#fff;border-radius:999px;padding:6px 14px;font-size:13.500px;color:var(--ink2);transition:.15s}
.cats button:hover{border-color:var(--brand)}.cats button.on{background:var(--brand);border-color:var(--brand);color:#fff}
.grid{gap:16px}
.svc{border:1px solid #eceef1;border-radius:16px;padding:22px;box-shadow:0 1px 2px rgba(16,24,40,.04);position:relative;gap:10px}
.svc:hover{border-color:color-mix(in srgb,var(--brand) 35%,#fff);box-shadow:0 14px 30px -14px color-mix(in srgb,var(--brand) 50%,transparent);transform:translateY(-2px)}
.svc .go{position:absolute;top:24px;right:20px;color:#c5cad1;transition:.15s;font-size:17px}.svc:hover .go{color:var(--brand);transform:translateX(3px)}
.ico{width:46px;height:46px;border-radius:13px;border:0;background:var(--tint);font-size:21px}
.svc h3{font-size:16px;letter-spacing:-.01em}
.svc .meta{border-top:1px solid #f0f1f3;padding-top:12px}
.offer{border:0;border-radius:18px;padding:22px 26px;background:linear-gradient(100deg,var(--tint2),#fff 72%);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brand) 14%,#fff)}
.panel{border-radius:16px;border-color:#eceef1;box-shadow:0 1px 2px rgba(16,24,40,.04);padding:24px}
.wbox,.browser{border-radius:16px}
.login{grid-template-columns:1.150fr 1fr;background:#fff}
.login .side{margin:14px;border-radius:22px;padding:56px;background:linear-gradient(150deg,var(--brand),color-mix(in srgb,var(--brand) 66%,#000));position:relative;overflow:hidden;justify-content:flex-end;gap:18px;min-height:560px}
.login .side .plogo{position:absolute;top:44px;left:56px}
.login .side h1{font-size:38px;line-height:1.100;letter-spacing:-.03em;max-width:540px}
.login .side ul{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.login .side li{display:flex;gap:10px;align-items:center;margin:0;opacity:.92}
.login .form{padding:48px clamp(28px,8%,96px);gap:18px}
.login .form>*{max-width:440px;width:100%;margin-left:auto;margin-right:auto}
.ftitle{font-size:26px;letter-spacing:-.02em}.fsub{color:var(--mut);margin-top:4px;font-size:14.500px}
.tabs{border:0;background:#f1f3f5;border-radius:12px;padding:4px;gap:4px}
.tabs button{border:0;border-radius:9px;padding:8px 16px;flex:1}
.tabs button.on{background:#fff;color:var(--brand);box-shadow:0 1px 2px rgba(16,24,40,.14)}
.persona{border:1px solid #eceef1;background:#fafbfc;border-radius:12px;padding:10px 12px}
@container (max-width:600px){.login .side{margin:10px;border-radius:16px;min-height:150px;justify-content:center}.login .side .plogo{position:static}.p-nav{margin-left:0}.hero.img .tx{padding:22px}.hero h1{font-size:23px}.svc:hover{transform:none}}
.cal{border:1px solid #e3e6ea;border-radius:14px;padding:12px;max-width:340px;background:#fff}
.calh{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.calh b{font-weight:600;font-size:14.500px}
.calh button{border:0;background:#f1f3f5;border-radius:8px;width:30px;height:30px;font-size:17px;line-height:1;color:var(--ink2)}.calh button:disabled{opacity:.35;cursor:default}
.calg{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;text-align:center}
.calg .wk{font-size:11px;color:var(--mut);padding:4px 0;text-transform:uppercase;letter-spacing:.03em}
.calg button{border:0;background:none;border-radius:9px;aspect-ratio:1;font-size:13.500px;font-variant-numeric:tabular-nums;color:var(--ink)}
.calg button:hover:not(:disabled){background:var(--tint2)}.calg button:disabled{color:#c3c8cf;cursor:default}.calg button.out{visibility:hidden}
.calg button.today{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brand) 45%,#fff)}
.calg button.sel{background:var(--brand);color:#fff;font-weight:600}
.slots{display:grid;grid-template-columns:1fr 1fr;gap:10px;max-width:340px}
.slots button{border:1px solid #e3e6ea;background:#fff;border-radius:12px;padding:10px 12px;text-align:left;display:grid;gap:1px}
.slots button b{font-weight:600;font-size:14.500px}.slots button span{color:var(--mut);font-size:12.500px}
.slots button:hover{border-color:var(--brand)}.slots button.on{border-color:var(--brand);background:var(--tint);box-shadow:inset 0 0 0 1px var(--brand)}
.two.api{align-items:start}.mapp{position:sticky;top:calc(var(--stk,0px) + 76px)}
.map{position:relative;height:440px;border-radius:12px;overflow:hidden;background:#eef0f3;display:grid;place-items:center}
.map span{color:var(--mut);font-size:13px;padding:20px;text-align:center}.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.sum{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:14px 0 18px;font-size:14px}.sum dt{color:var(--mut)}.sum dd{margin:0;font-weight:500}
@container (max-width:900px){.mapp{position:static}.map{height:260px}}
.prov{min-height:100vh;background:#f6f7f9;font-size:15px;--brand:var(--pc);display:flex;flex-direction:column}
.pbanner{background:#111827;color:#cfd6de;font-size:12px;text-align:center;padding:5px 12px}
.pwait{flex:1;display:grid;place-items:center;padding:24px}.pwait .panel{width:100%;max-width:460px}
.pl{display:flex;gap:9px;align-items:center;font-weight:700;font-size:19px;letter-spacing:-.01em}
.phead{background:var(--pc);color:#fff;display:flex;align-items:center;gap:12px;padding:16px max(24px,calc((100% - 960px)/2))}
.puser{font-size:13.500px;background:rgba(255,255,255,.160);border-radius:999px;padding:5px 12px;display:flex;gap:6px;align-items:center}
.pmain{width:100%;max-width:1008px;margin:0 auto;padding:40px 24px}
.pmain h1{font-size:30px;letter-spacing:-.025em}.pk{color:var(--pc);font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}
.plead{color:var(--mut);margin:8px 0 26px;font-size:16px;max-width:640px}
.pgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:28px}.pgrid p{color:var(--mut);font-size:13.500px;margin-top:4px}
.faq{display:grid;gap:8px}
.fq{background:#fff;border:1px solid #eceef1;border-radius:14px;overflow:hidden}
.fq>button{width:100%;border:0;background:none;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 18px;text-align:left;font-weight:600;font-size:15px}
.fq>button svg{color:#9aa3ad;transition:.15s;flex:none}.fq.open>button svg{transform:rotate(180deg);color:var(--brand)}
.fq p{padding:0 18px 16px;color:var(--ink2);font-size:14.500px;line-height:1.550}
.portal.editing .svc,.portal.editing .btn:not(.faqadd):not(.ghost),.portal.editing .p-nav,.portal.editing .cats,.portal.editing .form,.portal.editing .offer,.portal.editing .lang,.portal.editing .avatar{pointer-events:none}
.portal.editing .p-head .btn{pointer-events:none}
.portal.editing [data-ed]{outline:1.500px dashed color-mix(in srgb,currentColor 50%,transparent);outline-offset:4px;cursor:pointer;border-radius:6px;transition:outline-color .15s}
.portal.editing [data-ed]:hover{outline-color:currentColor}
.portal.editing [contenteditable]{cursor:text}.portal.editing [contenteditable]:focus{outline:2px solid currentColor;background:rgba(127,127,127,.12)}
.portal.editing .hero[data-ed],.portal.editing .side[data-ed]{outline-offset:-8px;outline-color:rgba(255,255,255,.55)}
.portal.editing .hero[data-ed]:hover,.portal.editing .side[data-ed]:hover{outline-color:#fff}
.svc .sim{margin:-22px -22px 4px;height:130px;background-size:cover;background-position:center;border-radius:15px 15px 0 0;background-color:#eef1f4}
.svc.hasimg .go{color:#fff;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5))}
.svc .sim.empty{display:grid;place-items:center;color:#9aa3ad;font-size:13px;font-weight:600;border-bottom:1px dashed #d5dae0}
.portal.editing .svc .sim{pointer-events:auto}
.faq .fq{background:var(--fq-bg,#fff);color:var(--fq-tx,inherit)}.faq .fq p{color:var(--fq-tx,var(--ink2));opacity:.92}
.faq .fq.open{box-shadow:inset 0 0 0 1.500px var(--fq-ac,var(--brand))}.faq .fq.open>button svg{color:var(--fq-ac,var(--brand))}
.fq.fqed{padding:12px 16px}.fq.fqed.off .fqq,.fq.fqed.off .fqa{opacity:.45;text-decoration:line-through}
.fqrow{display:flex;gap:12px;align-items:flex-start;justify-content:space-between}.fqq{font-weight:600;font-size:15px;flex:1;min-width:0;padding:2px 4px}
.fqc{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.fqc .iconbtn{width:28px;height:28px;font-size:13px}.fqc .iconbtn:disabled{opacity:.35;cursor:default}
.fqq:empty:before,.fqa:empty:before{content:attr(data-ph);color:#9aa3ad;font-weight:400}
.fq.fqed .fqa{padding:2px 4px;margin-top:8px;min-height:1.400em}
