:root{--priao-blue:#25a9e0;--priao-blue-dark:#1c87b4;--priao-black:#231f20;--bg:#eef4f8;--card:#fff;--muted:#6b7280;--border:#e6ebf1;--blue:#25a9e0;--blue-d:#1b7fb0;--ink:#20293a;--ink2:#6b7688;--mut:#9aa4b2;--soft:#f3f6fa;--danger:#e5484d}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%}body{font-family:Sarabun,Segoe UI,system-ui,-apple-system,sans-serif;color:var(--ink);background-color:#f4f7fb;background-image:linear-gradient(180deg,#e8f5fd,rgba(244,247,251,0) 360px);background-repeat:no-repeat;-webkit-font-smoothing:antialiased}a{color:var(--priao-blue)}.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;position:relative;overflow:hidden}.auth-wrap:after,.auth-wrap:before{content:"";position:absolute;border-radius:50%;filter:blur(80px);z-index:0;pointer-events:none}.auth-wrap:before{width:460px;height:460px;background:radial-gradient(circle,rgba(37,169,224,.4),transparent 70%);top:-140px;left:-110px}.auth-wrap:after{width:380px;height:380px;background:radial-gradient(circle,rgba(37,169,224,.22),transparent 70%);bottom:-150px;right:-90px}.auth-card{position:relative;z-index:1;background:var(--card);border-radius:24px;padding:46px 40px 40px;width:100%;max-width:410px;box-shadow:0 24px 60px rgba(28,135,180,.18),0 2px 10px rgba(31,45,64,.06);text-align:center;overflow:hidden}.auth-card:before{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:linear-gradient(90deg,var(--blue),var(--blue-d))}.brand-logo{width:138px;height:auto;display:block;margin:6px auto 16px}.welcome{font-size:22px;font-weight:800;color:var(--ink);margin:0 0 4px}.subtitle{color:var(--ink2);font-size:15px;margin:0 0 28px;line-height:1.6}.ms-btn{display:flex;align-items:center;justify-content:center;gap:11px;width:100%;padding:14px 18px;background:linear-gradient(135deg,var(--blue),var(--blue-d));color:#fff;border:none;border-radius:13px;font-size:16px;font-weight:700;font-family:inherit;cursor:pointer;box-shadow:0 10px 22px rgba(37,169,224,.32);transition:transform .14s ease,box-shadow .14s ease,filter .14s ease}.ms-btn svg{background:#fff;border-radius:5px;padding:3px;width:26px;height:26px}.ms-btn:hover{transform:translateY(-2px);box-shadow:0 14px 28px rgba(37,169,224,.42);filter:brightness(1.04)}.ms-btn:active{transform:translateY(0)}.err{background:#fdecec;color:#c0392b;font-size:14px;padding:10px 14px;border-radius:10px;margin-bottom:20px}.denied-badge{width:60px;height:60px;border-radius:50%;background:#fdecec;color:#e24b4a;font-size:30px;line-height:60px;margin:0 auto 18px}.foot{color:var(--mut);font-size:13px;margin-top:26px}.pm{position:relative}.pm-chip{display:flex;align-items:center;gap:10px;max-width:280px;background:#fff;border:1px solid var(--border);border-radius:999px;padding:6px 14px 6px 6px;cursor:pointer;font-family:inherit;box-shadow:0 4px 14px rgba(31,45,64,.08);transition:box-shadow .14s ease}.pm-chip:hover{box-shadow:0 6px 18px rgba(31,45,64,.14)}.pm-ava{width:34px;height:34px;border-radius:50%;object-fit:cover;flex:none;font-size:13px}.pm-ini{display:grid;place-items:center;color:#fff;font-weight:800}.pm-nm{font-size:14px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pm-caret{color:var(--mut);font-size:11px;flex:none;transition:transform .14s ease}.pm-caret.up{transform:rotate(180deg)}.pm-pop{position:absolute;top:calc(100% + 10px);right:0;width:300px;background:#fff;border-radius:18px;box-shadow:0 18px 50px rgba(31,45,64,.2);padding:18px;z-index:50;animation:pm-in .14s ease}@keyframes pm-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.pm-head{display:flex;align-items:center;gap:13px;padding-bottom:14px;border-bottom:1px solid var(--soft)}.pm-photo{width:52px;height:52px;border-radius:50%;object-fit:cover;flex:none;font-size:18px}.pm-h-t{min-width:0}.pm-h-name{font-size:15px;font-weight:800;color:var(--ink)}.pm-h-pos{font-size:13px;color:var(--blue);font-weight:700}.pm-rows{margin:14px 0;display:flex;flex-direction:column;gap:9px}.pm-rows>div{display:flex;justify-content:space-between;gap:12px;font-size:13px}.pm-rows dt{color:var(--mut);flex:none}.pm-rows dd{margin:0;color:var(--ink);font-weight:600;text-align:right;word-break:break-word}.pm-logout{display:block;width:100%;padding:10px;border:1px solid var(--border);background:var(--soft);color:var(--ink2);border-radius:11px;font-family:inherit;font-size:14px;font-weight:700;text-align:center;text-decoration:none;cursor:pointer;transition:background .14s ease,color .14s ease,border-color .14s ease}.pm-logout:hover{background:#fdecec;color:var(--danger);border-color:#f5c6c6}.wrap{max-width:960px;margin:0 auto;padding:26px 20px 64px}.head{justify-content:space-between;gap:16px;margin-bottom:28px}.head,.hl{display:flex;align-items:center}.hl{gap:14px}.blob{width:52px;height:52px;border-radius:16px;background:linear-gradient(135deg,#25a9e0,#1b7fb0);color:#fff;font-size:26px;display:grid;place-items:center;box-shadow:0 10px 22px rgba(37,169,224,.4)}.blob,.head h1{font-weight:800}.head h1{font-size:23px;margin:0}.head p{color:var(--ink2);font-size:13px;margin:0}.huser{gap:12px}.chipuser,.huser{display:flex;align-items:center}.chipuser{gap:9px;background:#fff;border-radius:999px;padding:6px 16px 6px 6px;box-shadow:0 4px 14px rgba(31,45,64,.08);font-size:13px;font-weight:600}.ava{width:34px;height:34px;border-radius:50%;color:#fff;font-weight:700;display:grid;place-items:center;background:linear-gradient(135deg,#25a9e0,#1b7fb0)}.ava,.logout{font-size:13px}.logout{background:none;border:none;color:var(--ink2);font-family:inherit;text-decoration:none;cursor:pointer}.logout:hover{color:var(--blue)}.banner{margin:0 0 16px;padding:12px 16px;border-radius:12px;font-size:14px;cursor:pointer}.banner-err{background:#fdecec;color:#c0392b;border:1px solid #f4cbcb}.banner-ok{background:#e9faf0;color:#12844a;border:1px solid #c3ecd3}.sec-head{margin:4px 4px 14px}.sec-head .t{display:flex;align-items:center;gap:9px;font-size:15px;font-weight:800}.count{background:#fff;color:var(--blue-d);font-size:12px;font-weight:800;padding:2px 10px;border-radius:999px;box-shadow:0 2px 8px rgba(31,45,64,.08)}.apps{display:grid;grid-template-columns:repeat(auto-fill,minmax(224px,1fr));grid-gap:16px;gap:16px}.acard{background:#fff;border:none;border-radius:20px;padding:20px;box-shadow:0 8px 24px rgba(31,45,64,.07);text-align:left;font-family:inherit;cursor:pointer;transition:transform .14s ease,box-shadow .14s ease}.acard:not(.add):hover{transform:translateY(-3px);box-shadow:0 14px 32px rgba(31,45,64,.12)}.aicon{width:46px;height:46px;border-radius:14px;color:#fff;font-weight:800;font-size:22px;display:grid;place-items:center;margin-bottom:12px}.aicon.lg{width:56px;height:56px;font-size:26px;border-radius:17px}.anm{font-size:16px;font-weight:800}.akey{color:var(--mut);font-size:12px;font-family:ui-monospace,monospace}.ameta{margin-top:9px;color:var(--ink2);font-size:12.5px}.acount{margin-top:14px;padding-top:12px;border-top:1px solid #eef2f6;display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:700}.acard.add,.acount .go{color:var(--blue)}.acard.add{border:2px dashed #cfe3f2;background:#fbfdff;font-weight:700;font-size:15px;display:grid;place-items:center;min-height:158px}.acard.add:hover{border-color:var(--blue);background:#f2f9ff}.launch{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:16px;gap:16px}.lcard{background:#fff;border-radius:20px;padding:22px 20px;box-shadow:0 8px 24px rgba(31,45,64,.07);text-decoration:none;color:var(--ink);display:flex;flex-direction:column;align-items:flex-start;gap:4px;transition:transform .14s ease,box-shadow .14s ease}.lcard:hover{transform:translateY(-3px);box-shadow:0 14px 32px rgba(31,45,64,.12)}.lcard.off{opacity:.6;cursor:default}.lcard.off:hover{transform:none;box-shadow:0 8px 24px rgba(31,45,64,.07)}.licon{width:50px;height:50px;border-radius:15px;color:#fff;font-size:24px;display:grid;place-items:center;margin-bottom:12px}.licon,.lname{font-weight:800}.lname{font-size:16px}.lrole{font-size:11px;font-weight:800;color:var(--blue);background:#eaf6fc;border-radius:999px;padding:3px 10px;text-transform:uppercase;letter-spacing:.03em}.lnourl{font-size:11px;color:var(--mut);margin-top:2px}.rolechips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.rc{font-size:11.5px;background:#eef6fd;color:var(--blue-d);padding:3px 11px;border-radius:999px;font-weight:600}.rc.base{background:#eafaf0;color:#12844a}.rc.off{background:#f1f2f4;color:#8a929b}.back{background:none;border:none;color:var(--ink2);font-family:inherit;font-size:14px;font-weight:600;cursor:pointer;padding:4px 0;margin-bottom:14px}.back:hover{color:var(--blue)}.apphead{display:flex;align-items:center;gap:16px;background:#fff;border-radius:20px;padding:20px 22px;box-shadow:0 8px 24px rgba(31,45,64,.07);margin-bottom:22px}.apphead-t{flex:1 1;min-width:0}.apphead-t h2{font-size:20px;font-weight:800;margin:0}.apphead-t .akey{display:inline-block;margin:2px 0 4px}.toolbar{gap:12px;margin-bottom:16px;flex-wrap:wrap}.search,.toolbar{display:flex;align-items:center}.search{flex:1 1;min-width:220px;background:#fff;border-radius:14px;padding:11px 18px;box-shadow:0 4px 14px rgba(31,45,64,.06);gap:10px}.search input{background:none;outline:none;width:100%;color:var(--ink)}.add-btn,.search input{border:none;font-family:inherit;font-size:14px}.add-btn{background:linear-gradient(135deg,#25a9e0,#1b7fb0);color:#fff;border-radius:14px;padding:12px 20px;font-weight:700;box-shadow:0 8px 18px rgba(37,169,224,.35);cursor:pointer;transition:transform .06s ease,box-shadow .14s ease}.add-btn:hover{box-shadow:0 10px 22px rgba(37,169,224,.45)}.add-btn:active{transform:translateY(1px)}.listsum{margin:2px 4px 12px;color:var(--ink2);font-size:13px;font-weight:600}.listsum b{color:var(--blue);font-weight:800}.glist{gap:12px}.glist,.growwrap{display:flex;flex-direction:column}.growwrap{background:#fff;border-radius:18px;box-shadow:0 6px 18px rgba(31,45,64,.06);transition:box-shadow .14s ease}.growwrap:hover{box-shadow:0 10px 24px rgba(31,45,64,.1)}.grow{padding:14px 20px;display:flex;align-items:center;gap:16px}.memcount{flex:none;background:var(--soft);color:var(--ink2);border-radius:999px;padding:5px 13px;font-size:12px;font-weight:700;white-space:nowrap}.members{padding:2px 20px 14px 77px;display:flex;flex-wrap:wrap;gap:8px}.mchip{display:inline-flex;align-items:center;gap:7px;background:var(--soft);border-radius:999px;padding:4px 13px 4px 4px;font-size:12.5px;font-weight:600;color:var(--ink)}.mav{width:24px;height:24px;border-radius:50%;color:#fff;font-size:9.5px;font-weight:700;display:grid;place-items:center;flex:none}.who{display:flex;align-items:center;gap:13px;flex:1 1;min-width:0}.uav{border-radius:14px;color:#fff;font-weight:700;font-size:13px;place-items:center}.deptb,.uav{width:44px;height:44px;flex:none;display:grid}.deptb{border-radius:13px;background:#eef3f9;place-items:center;font-size:19px}.idcol{min-width:0}.grow .nm{font-weight:700;font-size:14.5px}.grow .em,.grow .nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grow .em{color:var(--mut);font-size:12px}.tg{font-size:10px;font-weight:800;background:#f1eaff;color:#6b4fd0;padding:2px 8px;border-radius:999px;margin-left:8px}.roleb{background:#e9faf0;color:#12a150;padding:6px 14px;border-radius:999px}.edb,.roleb{font-size:12.5px;font-weight:700;flex:none}.edb{border:none;background:#f3f6fa;color:#5a6473;border-radius:11px;padding:9px 16px;font-family:inherit;cursor:pointer;transition:background .12s ease,color .12s ease}.edb:hover{background:#e9eef4;color:var(--blue)}.gmeta{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex:none;text-align:right}.gnote{font-size:12px;color:var(--ink2);max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gseen{font-size:11.5px;color:var(--mut)}.openlink{border:1px solid var(--border);background:#fff;color:var(--blue);border-radius:11px;padding:9px 14px;font-size:12.5px;font-weight:700;text-decoration:none;flex:none}.openlink:hover{border-color:var(--blue);background:#f2f9ff}.glist-empty{background:#fff;border-radius:18px;padding:40px 16px;text-align:center;color:var(--ink2);font-size:14px;box-shadow:0 6px 18px rgba(31,45,64,.06)}.overlay{position:fixed;inset:0;background:rgba(20,28,40,.42);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid;place-items:center;padding:20px;z-index:50}.modal{background:#fff;border-radius:22px;width:100%;max-width:470px;box-shadow:0 30px 70px rgba(20,28,40,.3);overflow:hidden;animation:pop .13s ease-out}@keyframes pop{0%{transform:translateY(10px) scale(.98);opacity:0}to{transform:none;opacity:1}}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;border-bottom:1px solid #eef2f6;font-weight:800;font-size:16px}.modal-head .x{background:none;border:none;font-size:16px;color:var(--ink2);cursor:pointer;padding:4px;border-radius:8px}.modal-head .x:hover{background:var(--soft)}.modal-body{padding:20px 22px;gap:15px}.modal-body,.modal-body label{display:flex;flex-direction:column}.modal-body label{gap:6px;font-size:13px;color:var(--ink2);font-weight:600}.modal-body input,.modal-body select{padding:11px 13px;border:1px solid var(--border);border-radius:12px;font-family:inherit;font-size:14px;color:var(--ink);background:#fff}.modal-body input:focus,.modal-body select:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(37,169,224,.15)}.modal-body input:disabled{background:var(--soft);color:var(--ink2)}.modal-body .two{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.modal-body .chk{flex-direction:row;align-items:center;gap:8px;font-weight:500;color:var(--ink)}.seg{display:inline-flex;background:var(--soft);border-radius:12px;padding:4px;gap:4px;align-self:flex-start}.seg button{border:none;background:none;font-family:inherit;font-size:13px;padding:7px 20px;border-radius:9px;cursor:pointer;color:var(--ink2);font-weight:700}.seg button.on{background:#fff;color:var(--blue);box-shadow:0 2px 6px rgba(31,45,64,.12)}.modal-hint{font-size:12px;color:var(--ink2);margin:0;background:var(--soft);padding:9px 12px;border-radius:10px;line-height:1.5}.tagbox{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:8px 10px;border:1px solid var(--border);border-radius:12px;background:#fff}.tagbox:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px rgba(37,169,224,.15)}.tagr{display:inline-flex;align-items:center;gap:6px;background:#eef6fd;color:var(--blue-d);border-radius:8px;padding:4px 6px 4px 11px;font-size:13px;font-weight:600}.tagr button{border:none;background:none;color:#8bb8d6;cursor:pointer;font-size:11px;padding:0 2px;line-height:1}.tagr button:hover{color:var(--danger)}.modal-body .tagbox input{border:none;box-shadow:none;padding:4px 2px;flex:1 1;min-width:90px}.modal-body .tagbox input:focus{box-shadow:none}.combo{position:relative}.combo input{width:100%}.combo-list{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 14px 34px rgba(20,28,40,.18);max-height:260px;overflow-y:auto;z-index:5;padding:6px}.combo-item{display:flex;flex-direction:column;gap:1px;width:100%;text-align:left;border:none;background:none;padding:8px 10px;border-radius:9px;cursor:pointer;font-family:inherit}.combo-item:hover{background:var(--soft)}.combo-item b{font-size:13.5px;font-weight:700;color:var(--ink)}.combo-item span{font-size:12px;color:var(--mut)}.combo-empty{padding:14px;text-align:center;color:var(--ink2);font-size:13px}.modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:15px 22px;border-top:1px solid #eef2f6;background:#fafcfe}.modal-foot.between{justify-content:space-between}.btn-ghost{background:#fff;border:1px solid var(--border);border-radius:12px;padding:10px 18px;font-family:inherit;font-size:13.5px;font-weight:700;color:var(--ink2);cursor:pointer}.btn-ghost:hover{border-color:var(--blue);color:var(--blue)}.btn-del{background:#fff;border:1px solid #f4cbcb;color:var(--danger);border-radius:12px;padding:10px 18px;font-family:inherit;font-size:13.5px;font-weight:700;cursor:pointer}.btn-del:hover{background:#fdecec}.acard:disabled,.add-btn:disabled,.btn-del:disabled,.btn-ghost:disabled,.edb:disabled{opacity:.55;cursor:default}@media (max-width:620px){.head{flex-direction:column;align-items:flex-start}.apps{grid-template-columns:1fr}.apphead{flex-wrap:wrap}.modal-body .two{grid-template-columns:1fr}.grow{gap:10px;padding:13px 16px}.gmeta{display:none}}