.portal-scope{--violet:#3e02b2;--purple:#6c17ce;--lime:#91e500;--lime-d:#4f7f00;--ink:#1a1a1a;--bg:#f5f2fb;--card:#ffffff;--muted:#6e6e7a;--lav:#ede6fb;--line:#e7e0f5;font-family:var(--font-avenir,"Avenir","Avenir Next"),system-ui,sans-serif;color:var(--ink);-webkit-font-smoothing:antialiased}.portal-scope *,.portal-scope :after,.portal-scope :before{box-sizing:border-box}.portal-scope h1,.portal-scope h2,.portal-scope h3{font-weight:800;letter-spacing:-.01em}.login{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;padding:24px;background:radial-gradient(1200px 700px at 15% -10%,#5a1ad6 0,transparent 55%),radial-gradient(1000px 700px at 110% 120%,#8a3cff 0,transparent 50%),linear-gradient(135deg,#3e02b2,#2a0180)}.login .blob{position:absolute;border-radius:50%;filter:blur(10px);opacity:.2}.login .blob.l{width:280px;height:280px;background:var(--lime);top:-70px;right:12%}.login .blob.p{width:340px;height:340px;background:#b06bff;bottom:-120px;left:6%;opacity:.28}.login-card{position:relative;z-index:2;width:min(430px,92vw);background:rgba(255,255,255,.98);border-radius:26px;padding:40px 40px 32px;box-shadow:0 30px 80px rgba(20,0,60,.45)}.login-logo{height:48px;width:auto;margin:0 auto 22px;display:block}.login-card h1{font-size:23px;color:var(--violet);text-align:center}.login-sub{text-align:center;color:var(--muted);font-size:14px;margin:8px 0 26px;line-height:1.5}.login-field label{display:block;font-size:12px;font-weight:800;color:var(--violet);letter-spacing:.04em;text-transform:uppercase;margin-bottom:7px}.login-field input{width:100%;padding:13px 15px;border:1.5px solid var(--line);border-radius:13px;font-size:15px;font-family:inherit;outline:none;transition:.15s;color:var(--ink)}.login-field input:focus{border-color:var(--purple);box-shadow:0 0 0 4px rgba(108,23,206,.12)}.login-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;width:100%;padding:14px;border-radius:13px;font-size:15px;font-weight:800;font-family:inherit;color:#fff;background:linear-gradient(135deg,var(--violet),var(--purple));margin-top:18px;transition:.18s;box-shadow:0 10px 24px rgba(62,2,178,.32)}.login-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 14px 30px rgba(62,2,178,.42)}.login-btn:disabled{opacity:.65;cursor:default}.magic-note{background:var(--lav);padding:14px 16px;color:var(--violet);margin-top:16px;line-height:1.5}.login-error,.magic-note{border-radius:12px;font-size:13px;text-align:center}.login-error{background:#ffe3e3;padding:12px 14px;color:#a11;margin-top:14px}.login-foot{text-align:center;margin-top:20px;font-size:12px;color:var(--muted)}.portal-min{min-height:100vh;background:var(--bg);padding:48px 24px}.portal-min .box{max-width:640px;margin:0 auto;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:32px;box-shadow:0 4px 18px rgba(40,0,90,.05)}.portal-min h1{font-size:22px;color:var(--violet);margin-bottom:6px}.portal-min .sub{color:var(--muted);font-size:14px;margin-bottom:22px}.portal-min .kv{display:grid;grid-template-columns:140px 1fr;gap:8px 16px;font-size:14px;margin-bottom:24px}.portal-min .kv dt{color:var(--muted);font-weight:700}.portal-min .kv dd{color:var(--ink);font-weight:700}.portal-min .phase{display:inline-block;font-size:12px;font-weight:800;background:var(--lime);color:#173300;border-radius:20px;padding:3px 12px}.portal-min .signout{font-family:inherit;font-size:14px;font-weight:800;color:var(--violet);background:var(--lav);border-radius:12px;padding:11px 18px;transition:.15s}.portal-min .signout:hover{background:#e0d4f7}.portal-scope .p-app{min-height:100vh;display:grid;grid-template-columns:248px 1fr;background:var(--bg)}.portal-scope .side{background:linear-gradient(180deg,#3e02b2,#530bc9 55%,#6c17ce);color:#fff;padding:24px 16px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.portal-scope .side-logo{margin:6px 8px 24px;display:block;max-width:100%;-o-object-fit:contain;object-fit:contain}.portal-scope .side .proj{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);border-radius:14px;padding:12px 13px;margin-bottom:22px}.portal-scope .side .proj .lbl{font-size:10px;letter-spacing:.08em;text-transform:uppercase;opacity:.7}.portal-scope .side .proj .nm{font-weight:800;font-size:14px;margin-top:3px;line-height:1.25}.portal-scope .side .proj .ph{display:inline-block;margin-top:8px;font-size:11px;font-weight:800;background:var(--lime);color:#173300;border-radius:20px;padding:3px 10px}.portal-scope .pswitch{position:relative}.portal-scope .pswitch-btn{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;margin-top:3px;padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);color:#fff;font-family:inherit;cursor:pointer;text-align:left;transition:.15s}.portal-scope .pswitch-btn:hover:not(:disabled){background:rgba(255,255,255,.18)}.portal-scope .pswitch-btn:disabled{opacity:.7;cursor:default}.portal-scope .pswitch-btn .nm{font-weight:800;font-size:14px;line-height:1.25;min-width:0}.portal-scope .pswitch-btn .nm small{font-weight:600;font-size:11px;opacity:.8}.portal-scope .pswitch-btn .chev{flex:none;font-size:12px;opacity:.9}.portal-scope .pswitch-menu{list-style:none;position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:25;background:#fff;border-radius:12px;box-shadow:0 16px 36px rgba(20,0,60,.28);padding:6px;display:grid;gap:2px;max-height:300px;overflow:auto}.portal-scope .pswitch-menu button{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;text-align:left;font-family:inherit;background:transparent;border-radius:8px;padding:9px 10px;cursor:pointer;color:var(--ink);transition:.12s}.portal-scope .pswitch-menu button.on,.portal-scope .pswitch-menu button:hover{background:var(--lav)}.portal-scope .pswitch-menu .pn{display:flex;flex-direction:column;font-weight:800;font-size:13px;min-width:0}.portal-scope .pswitch-menu .pn small{font-weight:600;font-size:11px;color:var(--muted)}.portal-scope .pswitch-menu .tick{flex:none;color:var(--violet);font-weight:800}.portal-scope .pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.portal-scope .pcard-form{margin:0}.portal-scope .pcard{display:block;width:100%;text-align:left;font-family:inherit;cursor:pointer;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:0 4px 18px rgba(40,0,90,.05);transition:.15s}.portal-scope .pcard:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(40,0,90,.12);border-color:#d7cbf0}.portal-scope .pcard.active{border-color:var(--violet);box-shadow:0 0 0 2px rgba(62,2,178,.12)}.portal-scope .pcard-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.portal-scope .pcard-name{font-size:15px;font-weight:800;color:var(--ink)}.portal-scope .pcard-client{font-size:12.5px;color:var(--muted);margin-top:2px}.portal-scope .pcard-phase{font-size:11px;font-weight:800;color:var(--violet);margin-top:10px}.portal-scope .pcard-bar{height:7px;border-radius:20px;background:#ece6f8;overflow:hidden;margin:10px 0 8px}.portal-scope .pcard-bar>i{display:block;height:100%;border-radius:20px;background:linear-gradient(90deg,var(--violet),var(--purple))}.portal-scope .pcard-foot{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:800;color:var(--muted)}.portal-scope .pcard-open{color:var(--violet)}.portal-scope .nav{display:flex;flex-direction:column;gap:4px}.portal-scope .nav a{display:flex;align-items:center;gap:12px;width:100%;padding:11px 13px;border-radius:11px;background:transparent;color:#fff;font-size:14px;font-weight:800;opacity:.85;text-align:left;text-decoration:none;transition:.15s}.portal-scope .nav a svg{width:19px;height:19px;flex:none;opacity:.9}.portal-scope .nav a:hover{background:rgba(255,255,255,.1);opacity:1}.portal-scope .nav a.active{background:#fff;color:var(--violet);opacity:1;box-shadow:0 6px 16px rgba(0,0,0,.16)}.portal-scope .side-foot{margin-top:auto;font-size:11px;opacity:.55;padding:8px}.portal-scope .main{display:flex;flex-direction:column;min-width:0}.portal-scope .topbar{min-height:64px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 28px;position:sticky;top:0;z-index:20}.portal-scope .crumb{font-size:13px;color:var(--muted);min-width:0}.portal-scope .crumb b{color:var(--ink)}.portal-scope .topbar-right{display:flex;align-items:center;gap:16px}.portal-scope .user{display:flex;align-items:center;gap:10px}.portal-scope .user .who{text-align:right;line-height:1.15}.portal-scope .user .who .n{font-weight:800;font-size:13px}.portal-scope .user .who .r{font-size:11px;color:var(--muted)}.portal-scope .avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--purple),var(--violet));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;flex:none}.portal-scope .topbar-logout{font-family:inherit;font-size:12px;font-weight:800;color:var(--violet);background:var(--lav);border-radius:10px;padding:8px 13px;transition:.15s}.portal-scope .topbar-logout:hover{background:#e0d4f7}.portal-scope .bell-wrap{position:relative}.portal-scope .bell{position:relative;display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:var(--lav);color:var(--violet);cursor:pointer;transition:.15s}.portal-scope .bell:hover{background:#e0d4f7}.portal-scope .bell svg{width:19px;height:19px}.portal-scope .bell-badge{position:absolute;top:-3px;right:-3px;min-width:18px;height:18px;padding:0 5px;border-radius:20px;background:var(--lime);color:#173300;font-size:11px;font-weight:800;line-height:18px;text-align:center;border:2px solid #fff;box-sizing:content-box}.portal-scope .bell-menu{position:absolute;right:0;top:calc(100% + 10px);z-index:40;width:min(360px,88vw);background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 44px rgba(40,0,90,.18);overflow:hidden}.portal-scope .bell-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line)}.portal-scope .bell-head b{font-size:14px;font-weight:800}.portal-scope .bell-markall{font-family:inherit;font-size:12px;font-weight:800;color:var(--violet);background:transparent;cursor:pointer;transition:.15s}.portal-scope .bell-markall:hover:not(:disabled){color:var(--purple);text-decoration:underline}.portal-scope .bell-markall:disabled{color:var(--muted);cursor:default}.portal-scope .bell-empty{text-align:center;padding:28px 20px;color:var(--muted);font-size:13px}.portal-scope .bell-empty .ico{font-size:26px;margin-bottom:8px}.portal-scope .bell-list{list-style:none;max-height:380px;overflow-y:auto;padding:4px}.portal-scope .bell-item{display:flex;align-items:flex-start;gap:10px;padding:12px;border-radius:11px;text-decoration:none;color:var(--ink);transition:.12s}.portal-scope .bell-item:hover{background:var(--bg)}.portal-scope .bell-item.unread{background:var(--lav)}.portal-scope .bell-item.unread:hover{background:#e4d8f9}.portal-scope .bell-dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--violet);margin-top:6px}.portal-scope .bell-body{display:flex;flex-direction:column;gap:2px;min-width:0}.portal-scope .bell-body .bt{font-size:13.5px;font-weight:800;line-height:1.35}.portal-scope .bell-body .bb{font-size:12.5px;color:var(--muted);line-height:1.4}.portal-scope .bell-body .btime{font-size:11px;color:var(--purple);font-weight:700;margin-top:2px}.portal-scope .content{padding:28px;max-width:1080px;width:100%}.portal-scope .page-title{font-size:22px;font-weight:800;color:var(--ink);margin-bottom:3px;letter-spacing:-.01em}.portal-scope .page-sub{color:var(--muted);font-size:14px;margin-bottom:22px}.portal-scope .grid{display:grid;gap:18px}.portal-scope .g3{grid-template-columns:repeat(3,1fr)}.portal-scope .g2{grid-template-columns:1.4fr 1fr}.portal-scope .card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:0 4px 18px rgba(40,0,90,.05)}.portal-scope .card h3{font-size:15px;font-weight:800;margin-bottom:14px}.portal-scope .kpi .v{font-size:30px;font-weight:800;color:var(--violet);line-height:1}.portal-scope .kpi .l{font-size:13px;color:var(--muted);margin-top:6px}.portal-scope .kpi .tag{display:inline-block;margin-top:10px;font-size:11px;font-weight:800;border-radius:20px;padding:3px 10px}.portal-scope .tag.lime{background:#eafccb;color:var(--lime-d)}.portal-scope .tag.viol{background:var(--lav);color:var(--violet)}.portal-scope .ring-wrap{display:flex;align-items:center;gap:20px}.portal-scope .ring{--p:0;width:104px;height:104px;flex:none;border-radius:50%;position:relative;background:conic-gradient(var(--lime) calc(var(--p) * 1%),#ece6f8 0);display:flex;align-items:center;justify-content:center}.portal-scope .ring:after{content:"";position:absolute;width:78px;height:78px;border-radius:50%;background:#fff}.portal-scope .ring b{position:relative;z-index:2;font-size:23px;font-weight:800;color:var(--violet)}.portal-scope .rt b{font-size:15px;font-weight:800}.portal-scope .rt p{font-size:13px;color:var(--muted);margin-top:3px;line-height:1.45}.portal-scope .steps{display:flex;flex-direction:column;gap:2px;margin-top:4px}.portal-scope .step{display:flex;gap:13px;align-items:flex-start}.portal-scope .step .dot{width:15px;height:15px;border-radius:50%;border:3px solid #d7cbf0;background:#fff;margin-top:3px;flex:none}.portal-scope .step.done .dot{background:var(--lime);border-color:var(--lime)}.portal-scope .step.now .dot{background:var(--violet);border-color:var(--violet);box-shadow:0 0 0 4px rgba(62,2,178,.15)}.portal-scope .step .bar{width:3px;flex:none;background:#e3daf4;margin:3px 0 0 6px;align-self:stretch}.portal-scope .step .tx b{font-size:14px;font-weight:800}.portal-scope .step .tx p{font-size:12px;color:var(--muted);margin:2px 0 14px}.portal-scope .step.now .tx b{color:var(--violet)}.portal-scope .rowlist{display:flex;flex-direction:column}.portal-scope .doc{display:flex;align-items:center;gap:14px;padding:14px 6px;border-bottom:1px solid var(--line)}.portal-scope .doc:last-child{border-bottom:none}.portal-scope .dico{width:42px;height:42px;border-radius:11px;flex:none;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:#fff}.portal-scope .dico.pdf{background:#c0392b}.portal-scope .dico.xls{background:#1e8e5a}.portal-scope .dico.doc{background:#2b5797}.portal-scope .dico.web{background:var(--purple)}.portal-scope .doc .dm{flex:1;min-width:0}.portal-scope .doc .dm .t{font-weight:800;font-size:14px}.portal-scope .doc .dm .s{font-size:12px;color:var(--muted);margin-top:2px}.portal-scope .badge{font-size:11px;font-weight:800;border-radius:20px;padding:4px 11px;white-space:nowrap}.portal-scope .b-sign{background:#fff4d6;color:#9a6b00}.portal-scope .b-sent{background:#e0edff;color:#245bb5}.portal-scope .b-new{background:#eafccb;color:var(--lime-d)}.portal-scope .b-ok{background:var(--lav);color:var(--violet)}.portal-scope .cat-h{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--purple);margin:22px 4px 6px}.portal-scope .mini{display:inline-flex;align-items:center;gap:6px;font-family:inherit;font-size:12px;font-weight:800;border-radius:9px;padding:8px 12px;background:var(--lav);color:var(--violet);text-decoration:none;transition:.15s}.portal-scope .mini:hover{background:#e0d4f7}.portal-scope .mini.solid{background:var(--violet);color:#fff}.portal-scope .mini.solid:hover{background:#530bc9}.portal-scope .act{display:flex;align-items:center;gap:6px}.portal-scope .nv-form{display:inline-flex;gap:6px;margin:0}.portal-scope .iconbtn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:var(--lav);color:var(--violet);cursor:pointer;border:none;font-family:inherit;font-weight:800;text-decoration:none;transition:.15s}.portal-scope .iconbtn:hover:not(:disabled){background:#e0d4f7}.portal-scope .iconbtn svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2}.portal-scope .iconbtn.solid{background:var(--violet);color:#fff}.portal-scope .iconbtn.solid:hover:not(:disabled){background:#530bc9}.portal-scope .iconbtn.danger{background:#fde8e8;color:#c0392b}.portal-scope .iconbtn.danger:hover:not(:disabled){background:#f9d2d2}.portal-scope .iconbtn:disabled{opacity:.5;cursor:default}.portal-scope .iconbtn:focus-visible{outline:2px solid var(--purple);outline-offset:2px}.portal-scope .iconbtn.nv-err{cursor:default}.portal-scope .iconbtn[data-tip]:after{content:attr(data-tip);bottom:calc(100% + 7px);background:#1a1a1a;color:#fff;font-size:11px;font-weight:700;white-space:nowrap;padding:5px 9px;border-radius:7px;z-index:50}.portal-scope .iconbtn[data-tip]:after,.portal-scope .iconbtn[data-tip]:before{position:absolute;left:50%;transform:translateX(-50%);opacity:0;pointer-events:none;transition:opacity .15s}.portal-scope .iconbtn[data-tip]:before{content:"";bottom:calc(100% + 2px);border:5px solid transparent;border-top-color:#1a1a1a}.portal-scope .iconbtn[data-tip]:focus-visible:after,.portal-scope .iconbtn[data-tip]:focus-visible:before,.portal-scope .iconbtn[data-tip]:hover:after,.portal-scope .iconbtn[data-tip]:hover:before{opacity:1}.portal-scope .filterbar{display:flex;gap:8px;margin:6px 0 14px}.portal-scope .chip{font-size:12.5px;font-weight:800;color:var(--violet);background:var(--lav);border-radius:20px;padding:7px 14px;text-decoration:none;transition:.15s}.portal-scope .chip:hover{background:#e0d4f7}.portal-scope .chip.active{background:var(--violet);color:#fff}.portal-scope .s code{font-size:11px;background:var(--lav);color:var(--violet);padding:1px 6px;border-radius:5px}.portal-scope .btn.danger{background:#c0392b;color:#fff}.portal-scope .btn.danger:hover:not(:disabled){background:#a93226}.portal-scope .cd-overlay{position:fixed;inset:0;z-index:60;background:rgba(20,0,50,.5);display:flex;align-items:center;justify-content:center;padding:20px}.portal-scope .cd-card{background:#fff;border-radius:18px;padding:26px 26px 20px;width:min(440px,92vw);box-shadow:0 24px 60px rgba(20,0,60,.4);text-align:center}.portal-scope .cd-ico{width:52px;height:52px;margin:0 auto 12px;border-radius:50%;background:#fde8e8;color:#c0392b;display:flex;align-items:center;justify-content:center}.portal-scope .cd-ico svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:2}.portal-scope .cd-card h3{font-size:18px;color:var(--ink);margin-bottom:8px}.portal-scope .cd-instr{font-size:13.5px;color:var(--muted);line-height:1.5}.portal-scope .cd-warn{font-size:13px;color:#b4530a;background:#fff1e0;border-radius:10px;padding:9px 12px;margin-top:10px;line-height:1.45}.portal-scope .cd-title{font-size:14px;font-weight:800;color:var(--violet);margin:12px 0 6px;word-break:break-word}.portal-scope .cd-input{width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;font-size:14px;font-family:inherit;outline:none;text-align:center}.portal-scope .cd-input:focus{border-color:#c0392b;box-shadow:0 0 0 4px rgba(192,57,43,.12)}.portal-scope .cd-err{color:#a11;font-size:12.5px;font-weight:700;margin-top:8px}.portal-scope .cd-actions{display:flex;gap:10px;justify-content:center;margin-top:18px}.portal-scope .pdf-frame{height:78vh;min-height:480px}.portal-scope .pdf-frame,.portal-scope .report-frame{width:100%;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 4px 18px rgba(40,0,90,.05)}.portal-scope .report-frame{height:84vh;min-height:560px;display:block}.portal-scope .p-form{margin-top:6px}.portal-scope .p-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.portal-scope .p-field{display:flex;flex-direction:column;gap:6px}.portal-scope .p-field.full{grid-column:1/-1}.portal-scope .p-field label{font-size:12px;font-weight:800;color:var(--violet);letter-spacing:.03em}.portal-scope .p-field input,.portal-scope .p-field select{width:100%;padding:11px 13px;border:1.5px solid var(--line);border-radius:12px;font-size:14px;font-family:inherit;background:#fff;color:var(--ink);outline:none;transition:.15s}.portal-scope .p-field input[type=file]{padding:9px 12px}.portal-scope .p-field input:focus,.portal-scope .p-field select:focus{border-color:var(--purple);box-shadow:0 0 0 4px rgba(108,23,206,.1)}.portal-scope .solidbtn{margin-top:14px;background:linear-gradient(135deg,var(--violet),var(--purple));color:#fff;font-weight:800;font-family:inherit;border-radius:12px;padding:12px 22px;font-size:14px;box-shadow:0 8px 20px rgba(62,2,178,.28);transition:.18s}.portal-scope .solidbtn:hover:not(:disabled){transform:translateY(-1px)}.portal-scope .solidbtn:disabled{opacity:.65;cursor:default}.portal-scope .p-msg{font-size:13px;font-weight:700;padding:10px 13px;border-radius:10px;margin-top:12px}.portal-scope .p-msg.ok{background:#eafccb;color:var(--lime-d)}.portal-scope .p-msg.err{background:#ffe3e3;color:#a11}.portal-scope .admin-doc{margin-bottom:12px;padding:16px 18px}.portal-scope .admin-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:10px;padding-top:12px;border-top:1px dashed var(--line)}.portal-scope .nv-form{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.portal-scope .nv-file{font-size:12px;max-width:230px}.portal-scope .nv-msg{margin-top:0;padding:6px 10px;font-size:12px}.portal-scope .admin-history{margin-top:12px}.portal-scope .admin-history summary{cursor:pointer;font-size:12px;font-weight:800;color:var(--purple)}.portal-scope .admin-history ul{list-style:none;padding:8px 0 0;display:grid;gap:6px}.portal-scope .admin-history li{font-size:12.5px;color:var(--muted)}.portal-scope .admin-history li b{color:var(--ink)}.portal-scope .empty{text-align:center;padding:30px 20px;color:var(--muted)}.portal-scope .empty .ico{font-size:28px;margin-bottom:8px}.portal-scope .empty b{display:block;color:var(--ink);font-size:14px;margin-bottom:4px}.portal-scope .empty p{font-size:13px}.portal-scope .soon{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--purple);background:var(--lav);border-radius:20px;padding:4px 12px;margin-bottom:14px}.portal-scope .skel{background:linear-gradient(90deg,#eee7f6 25%,#f4eefb 37%,#eee7f6 63%);background-size:400% 100%;animation:portalSkel 1.3s ease-in-out infinite;border-radius:10px}@keyframes portalSkel{0%{background-position:100% 50%}to{background-position:0 50%}}.portal-scope .quest-list{display:flex;flex-direction:column;gap:14px}.portal-scope .quest-card{padding:20px 22px}.portal-scope .quest-h{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.portal-scope .quest-t{font-size:16px;font-weight:800}.portal-scope .quest-d{font-size:13px;color:var(--muted);margin-top:4px;line-height:1.45}.portal-scope .q-bar,.portal-scope .quest-bar{height:8px;border-radius:20px;background:#ece6f8;overflow:hidden}.portal-scope .quest-bar{height:7px;margin:14px 0 4px}.portal-scope .q-bar>i,.portal-scope .quest-bar>i{display:block;height:100%;border-radius:20px;background:linear-gradient(90deg,var(--violet),var(--purple));transition:width .35s ease}.portal-scope .quest-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px}.portal-scope .quest-meta{font-size:12px;color:var(--muted);font-weight:700}.portal-scope .runner{max-width:680px;margin:0 auto}.portal-scope .runner-top{margin-bottom:18px}.portal-scope .runner-top .rt-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px}.portal-scope .q-count{font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--purple)}.portal-scope .q-index{position:relative}.portal-scope .q-index>summary{list-style:none;cursor:pointer;font-size:12px;font-weight:800;color:var(--violet);background:var(--lav);border-radius:9px;padding:7px 12px;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.portal-scope .q-index>summary::-webkit-details-marker{display:none}.portal-scope .q-index ul{list-style:none;position:absolute;right:0;top:calc(100% + 6px);z-index:15;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 30px rgba(40,0,90,.14);padding:6px;min-width:250px;max-height:320px;overflow:auto;display:grid;gap:2px}.portal-scope .q-index li button{width:100%;text-align:left;font-family:inherit;font-size:13px;font-weight:700;color:var(--ink);background:transparent;border-radius:8px;padding:9px 11px;cursor:pointer;transition:.12s}.portal-scope .q-index li button:hover{background:var(--lav)}.portal-scope .q-index li button.on{background:var(--violet);color:#fff}.portal-scope .q-card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:30px 32px;box-shadow:0 8px 30px rgba(40,0,90,.07)}.portal-scope .q-sec{font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--purple);margin-bottom:12px}.portal-scope .q-q{font-size:22px;font-weight:800;line-height:1.3;letter-spacing:-.01em;margin-bottom:20px;text-wrap:balance}.portal-scope .q-field{margin-bottom:6px}.portal-scope .q-input{width:100%;padding:14px 16px;border:1.5px solid var(--line);border-radius:13px;font-size:16px;font-family:inherit;background:#fff;color:var(--ink);outline:none;transition:.15s}.portal-scope textarea.q-input{resize:vertical;min-height:120px;line-height:1.5}.portal-scope .q-input:focus{border-color:var(--purple);box-shadow:0 0 0 4px rgba(108,23,206,.12)}.portal-scope .q-opts{display:flex;flex-direction:column;gap:10px}.portal-scope .q-opt{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1.5px solid var(--line);border-radius:13px;cursor:pointer;font-size:15px;font-weight:700;transition:.15s}.portal-scope .q-opt:hover{border-color:var(--purple);background:var(--lav)}.portal-scope .q-opt.on{border-color:var(--violet);background:var(--lav);box-shadow:0 0 0 3px rgba(108,23,206,.1)}.portal-scope .q-opt input{width:18px;height:18px;accent-color:var(--violet);flex:none}.portal-scope .q-hint{font-size:12px;color:var(--muted);margin-top:10px}.portal-scope .q-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:22px}.portal-scope .q-nav .left,.portal-scope .q-nav .right{display:flex;align-items:center;gap:10px}.portal-scope .q-save{font-size:12px;font-weight:700;color:var(--muted);min-width:78px;text-align:right}.portal-scope .q-save.saving{color:var(--purple)}.portal-scope .q-save.saved{color:var(--lime-d)}.portal-scope .q-save.error{color:#a11}.portal-scope .btn{font-family:inherit;font-weight:800;font-size:14px;border-radius:12px;padding:12px 20px;cursor:pointer;transition:.15s}.portal-scope .btn.ghost{background:var(--lav);color:var(--violet)}.portal-scope .btn.ghost:hover:not(:disabled){background:#e0d4f7}.portal-scope .btn.solid{background:linear-gradient(135deg,var(--violet),var(--purple));color:#fff;box-shadow:0 8px 20px rgba(62,2,178,.28)}.portal-scope .btn.solid:hover:not(:disabled){transform:translateY(-1px)}.portal-scope .btn:disabled{opacity:.5;cursor:default}.portal-scope .btn.link{background:transparent;color:var(--muted);padding:12px 10px}.portal-scope .btn.link:hover{color:var(--violet)}.portal-scope .rv-h{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--purple);margin:20px 0 8px}.portal-scope .rv-item{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:13px 0;border-bottom:1px solid var(--line)}.portal-scope .rv-item:last-child{border-bottom:none}.portal-scope .rv-q{font-size:13px;color:var(--muted);font-weight:700;margin-bottom:3px}.portal-scope .rv-a{font-size:14.5px;font-weight:700;color:var(--ink);white-space:pre-wrap}.portal-scope .rv-item.empty .rv-a{color:#b4530a}.portal-scope .rv-tag{display:inline-block;font-size:11px;font-weight:800;border-radius:20px;padding:3px 10px;background:#fff1e0;color:#b4530a}.portal-scope .rv-edit{flex:none}.portal-scope .rv-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:22px;padding-top:18px;border-top:1px dashed var(--line);flex-wrap:wrap}.portal-scope .rv-status{font-size:13px;font-weight:800}.portal-scope .rv-status.warn{color:#b4530a}.portal-scope .rv-status.ok{color:var(--lime-d)}.portal-scope .submitted-hero{text-align:center;padding:14px 10px 22px}.portal-scope .submitted-hero .ico{width:64px;height:64px;margin:0 auto 14px;border-radius:50%;background:var(--lime);display:flex;align-items:center;justify-content:center;color:#173300}.portal-scope .submitted-hero .ico svg{width:34px;height:34px;stroke-width:3}.portal-scope .submitted-hero h2{font-size:22px;color:var(--violet)}.portal-scope .submitted-hero p{font-size:14px;color:var(--muted);margin-top:6px}@media (max-width:820px){.portal-scope .p-app{grid-template-columns:1fr}.portal-scope .side{flex-direction:row;align-items:center;height:auto;position:sticky;top:0;padding:10px 14px;gap:14px;overflow-x:auto;z-index:30}.portal-scope .side-logo{margin:0}.portal-scope .side .proj,.portal-scope .side-foot{display:none}.portal-scope .nav{flex-direction:row;gap:6px}.portal-scope .nav a{white-space:nowrap;padding:9px 12px}.portal-scope .g2,.portal-scope .g3,.portal-scope .p-grid{grid-template-columns:1fr}.portal-scope .content{padding:20px 16px}.portal-scope .topbar{padding:0 16px}.portal-scope .user .who{display:none}.portal-scope .q-card{padding:22px 18px}.portal-scope .q-q{font-size:19px}.portal-scope .q-nav{flex-direction:column-reverse;align-items:stretch}.portal-scope .q-nav .left,.portal-scope .q-nav .right{justify-content:space-between}.portal-scope .q-nav .btn.solid{text-align:center}}@media (max-width:600px){.portal-scope .doc{flex-wrap:wrap}.portal-scope .doc .dm{min-width:calc(100% - 58px)}.portal-scope .act{width:100%;justify-content:flex-end;flex-wrap:wrap;margin-top:6px}.portal-scope .filterbar{flex-wrap:wrap}.portal-scope .cd-actions{flex-direction:column-reverse}.portal-scope .cd-actions .btn{width:100%}.portal-scope .bell-menu{width:min(340px,92vw)}}.portal-scope .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}.portal-scope .mx-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:12px}.portal-scope .mx-table{width:100%;border-collapse:collapse;font-size:14px}.portal-scope .mx-table th{text-align:left;font-size:12px;font-weight:800;letter-spacing:.02em;color:var(--violet);background:var(--lav);padding:9px 10px;white-space:nowrap;border-bottom:1px solid var(--line)}.portal-scope .mx-table td{padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:middle}.portal-scope .mx-table tr:last-child td{border-bottom:none}.portal-scope .mx-input{width:100%;min-width:130px;padding:9px 11px;border:1.5px solid var(--line);border-radius:9px;font-size:14px;font-family:inherit;background:#fff;color:var(--ink);outline:none;transition:.15s}.portal-scope .mx-input:focus{border-color:var(--purple);box-shadow:0 0 0 3px rgba(108,23,206,.12)}.portal-scope .mx-actions{width:44px;text-align:center}.portal-scope .mx-del{width:30px;height:30px;border-radius:8px;background:#fde8e8;color:#c0392b;font-weight:800;line-height:1;cursor:pointer;border:none;transition:.15s}.portal-scope .mx-del:hover{background:#f9d2d2}.portal-scope .mx-add{margin-top:12px;display:inline-flex;align-items:center;gap:6px;font-family:inherit;font-weight:800;font-size:14px;color:var(--violet);background:var(--lav);border:1.5px dashed #c9b8f0;border-radius:11px;padding:10px 16px;cursor:pointer;transition:.15s}.portal-scope .mx-add:hover{background:#e0d4f7;border-color:var(--purple)}.portal-scope .mx-table.read th{background:transparent;color:var(--purple)}.portal-scope .mx-table.read td{font-weight:700;color:var(--ink);padding:8px 10px}