.pm-portal{--bg:#f4f6f8;--surface:#fff;--surface-2:#fafbfc;--surface-3:#f2f5f8;--border:#e7ebf0;--border-strong:#d7dde6;--overlay:#0f172957;--text:#0f1729;--text-soft:#586173;--text-faint:#8c95a6;--text-on:#fff;--brand:#0ea371;--brand-deep:#0b855c;--brand-700:#096b4b;--brand-tint:#e6f6ef;--brand-tint-2:#d6f0e4;--accent:#4263eb;--accent-deep:#3550c8;--accent-tint:#eaeefe;--ok:#15a05b;--ok-tint:#e5f5ec;--warn:#c77f12;--warn-tint:#fbf0da;--danger:#e14b4b;--danger-tint:#fbe7e7;--info:#4263eb;--info-tint:#eaeefe;--neutral:#94a0b4;--neutral-tint:#eef1f5;--violet:#7a5af8;--violet-tint:#efebfe;--r-xs:8px;--r-sm:10px;--r:13px;--r-lg:16px;--r-xl:20px;--r-2xl:26px;--sh-xs:0 1px 2px #0f17290d;--sh-sm:0 1px 3px #0f17290f, 0 1px 2px #0f17290a;--sh:0 4px 16px -6px #0f17291f, 0 2px 6px -2px #0f17290f;--sh-lg:0 24px 60px -18px #0f172947, 0 8px 24px -12px #0f172929;--sh-drawer:-18px 0 50px -24px #0f172947;--sidebar-w:256px;--sidebar-w-collapsed:74px;--topbar-h:64px;--ff:"Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--mono:"IBM Plex Mono", ui-monospace, monospace;font-family:var(--ff);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;letter-spacing:-.006em;height:100%;font-size:15px;line-height:1.5;display:flex;overflow:hidden}.pm-portal *{box-sizing:border-box}.pm-portal button{cursor:pointer;font-family:inherit}.pm-portal input,.pm-portal select,.pm-portal textarea{font-family:inherit}.pm-portal a{color:inherit;text-decoration:none}.pm-portal h1,.pm-portal h2,.pm-portal h3,.pm-portal h4{letter-spacing:-.03em;margin:0;font-weight:800;line-height:1.1}.pm-portal p{margin:0}.pm-portal ::selection{background:var(--brand-tint-2)}.pm-portal .mono{font-family:var(--mono);font-feature-settings:"tnum"}.pm-portal .tnum{font-variant-numeric:tabular-nums}.pm-portal *{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}.pm-portal ::-webkit-scrollbar{width:8px;height:8px}.pm-portal ::-webkit-scrollbar-thumb{background:var(--border-strong);border:2px solid var(--bg);border-radius:8px}.pm-portal ::-webkit-scrollbar-thumb:hover{background:var(--text-faint)}.pm-portal .ic{stroke:currentColor;stroke-width:1.85px;fill:none;stroke-linecap:round;stroke-linejoin:round;flex:none;width:20px;height:20px}.pm-portal .sidebar{width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex:none;transition:width .22s cubic-bezier(.4,0,.2,1);display:flex;overflow:hidden}.pm-portal .sidebar.collapsed{width:var(--sidebar-w-collapsed)}.pm-portal .sb-top{align-items:center;gap:11px;padding:18px 16px 12px;display:flex}.pm-portal .sb-logo{background:var(--brand);border-radius:11px;flex:none;justify-content:center;align-items:center;width:38px;height:38px;display:flex;box-shadow:0 4px 12px -4px #0ea3718c}.pm-portal .sb-brand{flex-direction:column;min-width:0;display:flex;overflow:hidden}.pm-portal .sb-brand .nm{letter-spacing:-.03em;white-space:nowrap;font-size:17px;font-weight:800}.pm-portal .sb-brand .sub{letter-spacing:.12em;text-transform:uppercase;color:var(--brand-deep);white-space:nowrap;font-size:10px;font-weight:700}.pm-portal .sb-collapse{border:1px solid var(--border);background:var(--surface);width:26px;height:26px;color:var(--text-faint);border-radius:7px;flex:none;justify-content:center;align-items:center;margin-left:auto;transition:all .15s;display:flex}.pm-portal .sb-collapse:hover{color:var(--text);border-color:var(--border-strong)}.pm-portal .sidebar.collapsed .sb-collapse{transform:rotate(180deg)}.pm-portal .sb-cta{margin:6px 16px 10px}.pm-portal .sb-cta .btn{width:100%}.pm-portal .sidebar.collapsed .sb-cta .btn{justify-content:center;padding-left:0;padding-right:0}.pm-portal .sidebar.collapsed .sb-cta .btn span{display:none}.pm-portal .sb-scroll{flex:1;padding:6px 12px 12px;overflow:hidden auto}.pm-portal .sb-label{letter-spacing:.13em;text-transform:uppercase;color:var(--text-faint);padding:14px 10px 7px;font-size:10.5px;font-weight:700;transition:opacity .2s}.pm-portal .sidebar.collapsed .sb-label{opacity:0;height:8px;padding:0}.pm-portal .nav-item{border-radius:var(--r-sm);color:var(--text-soft);white-space:nowrap;text-align:left;cursor:pointer;appearance:none;background:0 0;border:none;align-items:center;gap:12px;width:100%;margin-bottom:2px;padding:9.5px 11px;font-size:14.5px;font-weight:600;transition:background .14s,color .14s;display:flex;position:relative}.pm-portal .nav-item .ic{flex:none;width:19px;height:19px}.pm-portal .nav-item:hover{background:var(--surface-3);color:var(--text)}.pm-portal .nav-item.active{background:var(--brand-tint);color:var(--brand-deep)}.pm-portal .nav-item.active .ic{color:var(--brand)}.pm-portal .nav-item .badge-mini{background:var(--danger);color:#fff;border-radius:10px;justify-content:center;align-items:center;min-width:19px;height:19px;margin-left:auto;padding:0 5px;font-size:11px;font-weight:700;display:flex}.pm-portal .sidebar.collapsed .nav-item{justify-content:center;padding:10px 0}.pm-portal .sidebar.collapsed .nav-item .lbl,.pm-portal .sidebar.collapsed .nav-item .badge-mini{display:none}.pm-portal .sb-bottom{border-top:1px solid var(--border);flex:none;padding:12px}.pm-portal .sb-user{border-radius:var(--r-sm);align-items:center;gap:11px;padding:8px 10px;transition:all .14s;display:flex}.pm-portal .sb-user:hover{background:var(--surface-3)}.pm-portal .sb-user .meta{min-width:0;overflow:hidden}.pm-portal .sb-user .nm{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:700;overflow:hidden}.pm-portal .sb-user .em{color:var(--text-faint);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.pm-portal .sidebar.collapsed .sb-user .meta,.pm-portal .sidebar.collapsed .sb-logout .lbl,.pm-portal .sidebar.collapsed .lang-seg{display:none}.pm-portal .sb-logout{border-radius:var(--r-sm);color:var(--text-soft);background:0 0;border:none;align-items:center;gap:12px;width:100%;margin-top:4px;padding:9px 11px;font-size:14px;font-weight:600;display:flex}.pm-portal .sb-logout:hover{background:var(--danger-tint);color:var(--danger)}.pm-portal .sidebar.collapsed .sb-logout{justify-content:center}.pm-portal .main{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.pm-portal .topbar{height:var(--topbar-h);-webkit-backdrop-filter:saturate(160%)blur(10px);backdrop-filter:saturate(160%)blur(10px);border-bottom:1px solid var(--border);background:#ffffffd9;flex:none;align-items:center;gap:16px;padding:0 26px;display:flex}.pm-portal .tb-context{color:var(--text-faint);align-items:center;gap:9px;font-size:13.5px;font-weight:600;display:flex}.pm-portal .tb-context b{color:var(--text)}.pm-portal .tb-right{align-items:center;gap:12px;margin-left:auto;display:flex}.pm-portal .tb-org{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text);cursor:pointer;align-items:center;gap:8px;padding:7px 12px;font-size:13.5px;font-weight:700;display:flex}.pm-portal .tb-org:hover{border-color:var(--border-strong)}.pm-portal .tb-icon-btn{border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface);width:38px;height:38px;color:var(--text-soft);justify-content:center;align-items:center;display:flex;position:relative}.pm-portal .tb-icon-btn:hover{color:var(--text);border-color:var(--border-strong)}.pm-portal .tb-icon-btn .dot{background:var(--danger);border:1.5px solid var(--surface);border-radius:50%;width:7px;height:7px;position:absolute;top:8px;right:9px}.pm-portal .content{flex:1;overflow:hidden auto}.pm-portal .page{flex-direction:column;max-width:1320px;min-height:100%;margin:0 auto;padding:30px 34px 64px;display:flex}.pm-portal .page.wide{max-width:none}.pm-portal .page>:last-child{flex-direction:column;flex:1;min-height:0;display:flex}.pm-portal .page>:last-child>:last-child{flex:1;min-height:0}.pm-portal .page-head{align-items:flex-start;gap:16px;margin-bottom:26px;display:flex}.pm-portal .page-head .ph-main{flex:1;min-width:0}.pm-portal .eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--brand-deep);margin-bottom:8px;font-size:11px;font-weight:700}.pm-portal .page-title{letter-spacing:-.035em;font-size:30px}.pm-portal .page-sub{color:var(--text-soft);margin-top:7px;font-size:15px}.pm-portal .page-head .ph-actions{flex:none;align-items:center;gap:10px;margin-left:auto;display:flex}.pm-portal .btn{letter-spacing:-.01em;border-radius:var(--r-sm);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-size:14px;font-weight:700;transition:transform .12s,background .15s,border-color .15s,box-shadow .15s,color .15s;display:inline-flex}.pm-portal .btn:active{transform:translateY(1px)}.pm-portal .btn .ic{width:17px;height:17px}.pm-portal .btn-primary{background:var(--brand);color:#fff;box-shadow:0 4px 12px -5px #0ea37199}.pm-portal .btn-primary:hover{background:var(--brand-deep);box-shadow:0 8px 18px -6px #0ea37199}.pm-portal .btn-accent{background:var(--accent);color:#fff;box-shadow:0 4px 12px -5px #4263eb99}.pm-portal .btn-accent:hover{background:var(--accent-deep)}.pm-portal .btn-dark{background:var(--text);color:#fff}.pm-portal .btn-dark:hover{background:#1d283d}.pm-portal .btn-ghost{background:var(--surface);color:var(--text);border-color:var(--border)}.pm-portal .btn-ghost:hover{border-color:var(--border-strong);background:var(--surface-2)}.pm-portal .btn-soft{background:var(--brand-tint);color:var(--brand-deep)}.pm-portal .btn-soft:hover{background:var(--brand-tint-2)}.pm-portal .btn-danger-ghost{background:var(--surface);color:var(--danger);border-color:var(--border)}.pm-portal .btn-danger-ghost:hover{background:var(--danger-tint);border-color:#0000}.pm-portal .btn-sm{padding:7px 12px;font-size:13px}.pm-portal .btn-lg{padding:13px 22px;font-size:15px}.pm-portal .btn-icon{width:38px;height:38px;padding:0}.pm-portal .btn-block{width:100%}.pm-portal .seg{background:var(--surface-3);border-radius:var(--r-sm);gap:2px;padding:3px;display:inline-flex}.pm-portal .seg button{color:var(--text-soft);background:0 0;border:none;border-radius:8px;align-items:center;gap:7px;padding:7px 14px;font-size:13.5px;font-weight:700;transition:all .15s;display:flex}.pm-portal .seg button .ic{width:16px;height:16px}.pm-portal .seg button.on{background:var(--surface);color:var(--text);box-shadow:var(--sh-xs)}.pm-portal .lang-seg{background:var(--surface-3);border-radius:9px;padding:3px;display:inline-flex}.pm-portal .lang-seg button{color:var(--text-soft);background:0 0;border:none;border-radius:7px;padding:5px 12px;font-size:12.5px;font-weight:700;transition:all .15s}.pm-portal .lang-seg button.on{background:var(--surface);color:var(--brand-deep);box-shadow:var(--sh-xs)}.pm-portal .card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg)}.pm-portal .card-pad{padding:22px}.pm-portal .stat-grid{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.pm-portal .stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:18px 20px;transition:box-shadow .18s,transform .18s,border-color .18s}.pm-portal .stat:hover{box-shadow:var(--sh);border-color:#0000}.pm-portal .stat .st-top{justify-content:space-between;align-items:center;gap:10px;display:flex}.pm-portal .stat .st-label{letter-spacing:.07em;text-transform:uppercase;color:var(--text-faint);font-size:12px;font-weight:700}.pm-portal .stat .st-ic{border-radius:11px;flex:none;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.pm-portal .stat .st-ic .ic{width:20px;height:20px}.pm-portal .stat .st-val{letter-spacing:-.04em;align-items:baseline;gap:7px;margin-top:14px;font-size:30px;font-weight:800;display:flex}.pm-portal .stat .st-val small{color:var(--text-faint);font-size:14px;font-weight:700}.pm-portal .stat .st-delta{align-items:center;gap:4px;margin-top:5px;font-size:12.5px;font-weight:700;display:flex}.pm-portal .st-ic.ok{background:var(--ok-tint);color:var(--ok)}.pm-portal .st-ic.warn{background:var(--warn-tint);color:var(--warn)}.pm-portal .st-ic.danger{background:var(--danger-tint);color:var(--danger)}.pm-portal .st-ic.info{background:var(--info-tint);color:var(--info)}.pm-portal .st-ic.brand{background:var(--brand-tint);color:var(--brand)}.pm-portal .st-ic.violet{background:var(--violet-tint);color:var(--violet)}.pm-portal .st-ic.neutral{background:var(--neutral-tint);color:var(--text-soft)}.pm-portal .badge{letter-spacing:-.005em;white-space:nowrap;border-radius:8px;align-items:center;gap:6px;padding:4px 10px;font-size:12.5px;font-weight:700;display:inline-flex}.pm-portal .badge .dot{background:currentColor;border-radius:50%;width:6px;height:6px}.pm-portal .badge.ok{background:var(--ok-tint);color:var(--ok)}.pm-portal .badge.warn{background:var(--warn-tint);color:var(--warn)}.pm-portal .badge.danger{background:var(--danger-tint);color:var(--danger)}.pm-portal .badge.info{background:var(--info-tint);color:var(--info)}.pm-portal .badge.neutral{background:var(--neutral-tint);color:var(--text-soft)}.pm-portal .badge.brand{background:var(--brand-tint);color:var(--brand-deep)}.pm-portal .badge.violet{background:var(--violet-tint);color:var(--violet)}.pm-portal .avatar{background:var(--brand);color:#fff;letter-spacing:-.02em;border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:700;display:flex}.pm-portal .avatar.sq{border-radius:11px}.pm-portal .avatar.c2{background:var(--accent)}.pm-portal .avatar.c3{background:var(--violet)}.pm-portal .avatar.c4{background:#0ea0a3}.pm-portal .field{flex-direction:column;gap:7px;display:flex}.pm-portal .field-label{letter-spacing:.05em;text-transform:uppercase;color:var(--text-faint);font-size:12px;font-weight:700}.pm-portal .input,.pm-portal .select{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);width:100%;color:var(--text);padding:11px 14px;font-size:14.5px;font-weight:500;transition:border-color .15s,box-shadow .15s}.pm-portal .input::placeholder{color:var(--text-faint)}.pm-portal .input:focus,.pm-portal .select:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-tint);outline:none}.pm-portal .input-wrap{align-items:center;display:flex;position:relative}.pm-portal .input-wrap .ic{color:var(--text-faint);pointer-events:none;width:18px;height:18px;position:absolute;left:13px}.pm-portal .input-wrap .input{padding-left:40px}.pm-portal .select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238C95A6' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 13px center;background-repeat:no-repeat;padding-right:38px}.pm-portal .table-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);flex-direction:column;display:flex;overflow:hidden}.pm-portal .tbl-wrap{overflow-x:auto}.pm-portal table.tbl{border-collapse:collapse;width:100%}.pm-portal .tbl thead th{letter-spacing:.07em;text-transform:uppercase;color:var(--text-faint);text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:14px 18px;font-size:11.5px;font-weight:700}.pm-portal .tbl tbody td{border-bottom:1px solid var(--border);vertical-align:middle;padding:16px 18px;font-size:14px}.pm-portal .tbl tbody tr:last-child td{border-bottom:none}.pm-portal .tbl tbody tr{transition:background .12s}.pm-portal .tbl tbody tr:hover{background:var(--surface-2)}.pm-portal .tbl .t-right{text-align:right}.pm-portal .cell-strong{font-weight:700}.pm-portal .cell-sub{color:var(--text-faint);margin-top:2px;font-size:12.5px}.pm-portal .row-actions{justify-content:flex-end;align-items:center;gap:7px;display:flex}.pm-portal .icon-act{border:1px solid var(--border);background:var(--surface);width:34px;height:34px;color:var(--text-soft);border-radius:9px;justify-content:center;align-items:center;transition:all .14s;display:flex}.pm-portal .icon-act:hover{color:var(--text);border-color:var(--border-strong);background:var(--surface-2)}.pm-portal .icon-act.danger:hover{color:var(--danger);background:var(--danger-tint);border-color:#0000}.pm-portal .icon-act .ic{width:16px;height:16px}.pm-portal .chip-row{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.pm-portal .chip{border:1px solid var(--border);background:var(--surface);color:var(--text-soft);border-radius:100px;align-items:center;gap:8px;padding:8px 14px;font-size:13.5px;font-weight:700;transition:all .15s;display:inline-flex}.pm-portal .chip .cnt{background:var(--surface-3);color:var(--text-soft);text-align:center;border-radius:100px;min-width:20px;padding:1px 8px;font-size:12px}.pm-portal .chip:hover{border-color:var(--border-strong);color:var(--text)}.pm-portal .chip.on{background:var(--text);color:#fff;border-color:var(--text)}.pm-portal .chip.on .cnt{color:#fff;background:#ffffff38}.pm-portal .chip.on.tickets{background:var(--danger);border-color:var(--danger)}.pm-portal .chip.on.debt{background:var(--warn);border-color:var(--warn)}.pm-portal .chip.on.app{background:var(--accent);border-color:var(--accent)}.pm-portal .legend{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.pm-portal .legend .lg{color:var(--text-soft);align-items:center;gap:7px;font-size:13px;font-weight:600;display:flex}.pm-portal .legend .sw{border-radius:4px;width:12px;height:12px}.pm-portal .tabs{border-bottom:1px solid var(--border);gap:4px;display:flex}.pm-portal .tabs button{color:var(--text-faint);background:0 0;border:none;padding:12px 14px;font-size:14.5px;font-weight:700;transition:color .15s;position:relative}.pm-portal .tabs button:hover{color:var(--text-soft)}.pm-portal .tabs button.on{color:var(--text)}.pm-portal .tabs button.on:after{content:"";background:var(--brand);border-radius:3px;height:2.5px;position:absolute;bottom:-1px;left:10px;right:10px}.pm-portal .empty{text-align:center;color:var(--text-faint);flex-direction:column;flex:1;justify-content:center;align-items:center;padding:64px 20px;display:flex}.pm-portal .empty .e-ic{background:var(--surface-3);border-radius:18px;justify-content:center;align-items:center;width:60px;height:60px;margin-bottom:16px;display:flex}.pm-portal .empty .e-ic .ic{width:28px;height:28px;color:var(--text-faint)}.pm-portal .empty h3{color:var(--text-soft);font-size:17px;font-weight:700}.pm-portal .empty p{max-width:340px;margin-top:6px;font-size:14px}.pm-portal .scrim{background:var(--overlay);opacity:0;pointer-events:none;z-index:60;transition:opacity .25s;position:fixed;inset:0}.pm-portal .scrim.show{opacity:1;pointer-events:auto}.pm-portal .drawer{background:var(--surface);width:440px;max-width:92vw;height:100%;box-shadow:var(--sh-drawer);z-index:61;flex-direction:column;transition:transform .3s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;top:0;right:0;transform:translate(100%)}.pm-portal .drawer.show{transform:none}.pm-portal .drawer-head{border-bottom:1px solid var(--border);align-items:flex-start;gap:12px;padding:22px 24px 18px;display:flex}.pm-portal .drawer-head .dh-title{letter-spacing:-.03em;font-size:21px;font-weight:800}.pm-portal .drawer-head .dh-sub{color:var(--text-faint);margin-top:3px;font-size:13.5px}.pm-portal .drawer-close{border:1px solid var(--border);background:var(--surface);width:34px;height:34px;color:var(--text-soft);border-radius:9px;flex:none;justify-content:center;align-items:center;margin-left:auto;display:flex}.pm-portal .drawer-close:hover{background:var(--surface-2);color:var(--text)}.pm-portal .drawer-body{flex:1;padding:20px 24px;overflow-y:auto}.pm-portal .drawer-foot{border-top:1px solid var(--border);gap:10px;padding:16px 24px;display:flex}.pm-portal .dsection{margin-bottom:22px}.pm-portal .dsection-h{letter-spacing:.02em;color:var(--text);align-items:center;gap:9px;margin-bottom:12px;font-size:13px;font-weight:800;display:flex}.pm-portal .dsection-h .ic{width:17px;height:17px;color:var(--text-faint)}.pm-portal .dsection-h .add{border:1px solid var(--border);width:26px;height:26px;color:var(--text-soft);border-radius:7px;justify-content:center;align-items:center;margin-left:auto;display:flex}.pm-portal .dsection-h .add:hover{background:var(--surface-2)}.pm-portal .kv{justify-content:space-between;align-items:center;padding:9px 0;font-size:14px;display:flex}.pm-portal .kv+.kv{border-top:1px solid var(--border)}.pm-portal .kv .k{color:var(--text-soft)}.pm-portal .kv .v{font-weight:700}.pm-portal .dfield{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:11px 14px}.pm-portal .dfield .dk{letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);font-size:10.5px;font-weight:700}.pm-portal .dfield .dv{margin-top:3px;font-size:15px;font-weight:700}.pm-portal .dgrid2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.pm-portal .person-card{border:1px solid var(--border);border-radius:var(--r);align-items:center;gap:12px;padding:13px 14px;display:flex}.pm-portal .mini-ticket{border:1px solid var(--border);border-radius:var(--r);padding:13px 14px}.pm-portal .mini-ticket+.mini-ticket{margin-top:10px}.pm-portal .mini-ticket .mt-text{color:var(--text-soft);margin-top:8px;font-size:13.5px;line-height:1.45}.pm-portal .mini-ticket .mt-meta{color:var(--text-faint);font-size:12px;font-family:var(--mono);margin-top:8px}.pm-portal .map-toolbar{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:18px;display:flex}.pm-portal .map-stage{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:26px;overflow:auto}.pm-portal .map-stage-empty{flex-direction:column;display:flex}.pm-portal .fm-schema{flex-direction:column;gap:6px;min-width:max-content;display:flex}.pm-portal .fm-row{align-items:center;gap:14px;display:flex}.pm-portal .fm-floor-no{text-align:right;width:26px;color:var(--text-faint);flex:none;font-size:13px;font-weight:700}.pm-portal .fm-sections{gap:34px;display:flex}.pm-portal .fm-section{gap:8px;display:flex}.pm-portal .fm-cell{border:1.5px solid var(--border);background:var(--surface);width:62px;height:54px;color:var(--text);border-radius:11px;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:14px;font-weight:800;transition:transform .12s,box-shadow .12s,border-color .12s;display:flex;position:relative}.pm-portal .fm-cell:hover{box-shadow:var(--sh);z-index:2;transform:translateY(-2px)}.pm-portal .fm-cell .sub{color:var(--text-faint);letter-spacing:-.02em;font-size:9.5px;font-weight:600}.pm-portal .fm-cell .pip{border-radius:50%;width:7px;height:7px;position:absolute;top:6px;right:6px}.pm-portal .fm-section-labels{gap:34px;margin-top:10px;padding-left:40px;display:flex}.pm-portal .fm-section-label{color:var(--text-faint);text-align:center;font-size:12px;font-weight:700}.pm-portal .s-sold{background:var(--ok-tint);color:var(--ok);border-color:#bfe6ce}.pm-portal .s-reserved,.pm-portal .s-open{background:var(--warn-tint);color:var(--warn);border-color:#ebd3a0}.pm-portal .s-emergency,.pm-portal .s-overdue{background:var(--danger-tint);color:var(--danger);border-color:#f0bdbd}.pm-portal .s-paid{background:var(--ok-tint);color:var(--ok);border-color:#bfe6ce}.pm-portal .s-app{background:var(--accent-tint);color:var(--accent);border-color:#c3cefb}.pm-portal .s-dim{opacity:.5}.pm-portal .pip.p-open{background:var(--warn)}.pm-portal .pip.p-emergency,.pm-portal .pip.p-overdue{background:var(--danger)}.pm-portal .pip.p-app{background:var(--accent)}.pm-portal .fm-list{flex-direction:column;gap:12px;display:flex}.pm-portal .fm-floor{border:1px solid var(--border);border-radius:var(--r);overflow:hidden}.pm-portal .fm-floor-head{background:var(--surface-2);border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:12px 16px;display:flex}.pm-portal .fm-floor-head .fno{background:var(--surface);border:1px solid var(--border);width:34px;height:34px;color:var(--brand-deep);border-radius:10px;justify-content:center;align-items:center;font-weight:800;display:flex}.pm-portal .fm-floor-head .ftitle{font-weight:700}.pm-portal .fm-floor-head .fmeta{color:var(--text-faint);font-size:12.5px}.pm-portal .fm-floor-head .fbar{background:var(--surface-3);border-radius:4px;width:130px;height:7px;margin-left:auto;display:flex;overflow:hidden}.pm-portal .fm-units{flex-wrap:wrap;gap:10px;padding:14px 16px;display:flex}.pm-portal .fm-unit{border:1.5px solid var(--border);border-radius:var(--r-sm);background:var(--surface);cursor:pointer;min-width:108px;padding:11px 13px;transition:transform .12s,box-shadow .12s,border-color .12s;position:relative}.pm-portal .fm-unit:hover{box-shadow:var(--sh);transform:translateY(-2px)}.pm-portal .fm-unit .u-no{align-items:center;gap:6px;font-size:15px;font-weight:800;display:flex}.pm-portal .fm-unit .u-sub{color:var(--text-faint);margin-top:3px;font-size:11.5px}.pm-portal .fm-unit .u-pip{border-radius:50%;width:8px;height:8px;margin-left:auto}.pm-portal .td-grid{grid-template-columns:1fr 380px;align-items:start;gap:22px;display:grid}.pm-portal .td-field-row{grid-template-columns:170px 1fr;gap:16px;padding:13px 0;font-size:14.5px;display:grid}.pm-portal .td-field-row+.td-field-row{border-top:1px solid var(--border)}.pm-portal .td-field-row .k{color:var(--text-soft);font-weight:600}.pm-portal .td-field-row .v{font-weight:600}.pm-portal .hint{border-radius:var(--r);gap:11px;padding:13px 16px;font-size:13.5px;line-height:1.45;display:flex}.pm-portal .hint .ic{flex:none;width:19px;height:19px;margin-top:1px}.pm-portal .hint.info{background:var(--brand-tint);color:var(--brand-700)}.pm-portal .hint.warn{background:var(--warn-tint);color:#8a5a08}.pm-portal .hint b{font-weight:800}.pm-portal .comments-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);flex-direction:column;height:100%;display:flex}.pm-portal .comment-box{border:1px solid var(--border);border-radius:var(--r);padding:12px 14px}.pm-portal .comment-box textarea{resize:none;width:100%;min-height:48px;color:var(--text);background:0 0;border:none;outline:none;font-size:14px}.pm-portal .comment-tools{color:var(--text-faint);align-items:center;gap:10px;margin-top:8px;display:flex}.pm-portal .comment-tools .send{background:var(--brand);color:#fff;border:none;border-radius:9px;justify-content:center;align-items:center;width:34px;height:34px;margin-left:auto;display:flex}.pm-portal .proj-grid{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.pm-portal .proj-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);cursor:pointer;padding:22px;transition:box-shadow .18s,transform .18s,border-color .18s}.pm-portal .proj-card:hover{box-shadow:var(--sh);border-color:#0000;transform:translateY(-3px)}.pm-portal .proj-card .pc-top{align-items:center;gap:12px;margin-bottom:16px;display:flex}.pm-portal .proj-card .pc-ic{background:var(--brand-tint);width:44px;height:44px;color:var(--brand);border-radius:12px;justify-content:center;align-items:center;display:flex}.pm-portal .proj-card h3{font-size:18px}.pm-portal .proj-card .pc-loc{color:var(--text-faint);align-items:center;gap:5px;margin-top:3px;font-size:13px;font-weight:600;display:flex}.pm-portal .proj-card .pc-loc .ic{width:14px;height:14px}.pm-portal .proj-mini{grid-template-columns:1fr 1fr;gap:10px;margin-top:6px;display:grid}.pm-portal .proj-mini .pm{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:12px 14px}.pm-portal .proj-mini .pm .pml{letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);align-items:center;gap:6px;font-size:11px;font-weight:700;display:flex}.pm-portal .proj-mini .pm .pml .ic{width:14px;height:14px}.pm-portal .proj-mini .pm .pmv{letter-spacing:-.03em;margin-top:5px;font-size:24px;font-weight:800}.pm-portal .bld{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);overflow:hidden}.pm-portal .bld-head{cursor:pointer;align-items:center;gap:14px;padding:16px 18px;display:flex}.pm-portal .bld-head .b-ic{background:var(--brand-tint);width:42px;height:42px;color:var(--brand);border-radius:12px;justify-content:center;align-items:center;display:flex}.pm-portal .bld-head .b-title{font-size:16px;font-weight:800}.pm-portal .bld-head .b-sub{color:var(--text-faint);font-size:13px}.pm-portal .bld-stats{gap:22px;padding:0 18px 16px;display:flex}.pm-portal .bld-stat .bs-v{font-size:15px;font-weight:800}.pm-portal .bld-stat .bs-l{color:var(--text-faint);font-size:12px}.pm-portal .fab{background:var(--accent);color:#fff;z-index:40;border:none;border-radius:16px;justify-content:center;align-items:center;width:52px;height:52px;transition:transform .15s;display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 12px 28px -8px #4263eb99}.pm-portal .fab:hover{transform:translateY(-2px)}.pm-portal .fab .ic{width:24px;height:24px}.pm-portal[data-theme=dark]{--bg:#0e141b;--surface:#161f2a;--surface-2:#1b2530;--surface-3:#222e3b;--border:#2a3744;--border-strong:#3a4956;--overlay:#00000094;--text:#e9eef3;--text-soft:#9daab8;--text-faint:#697787;--brand:#19c08c;--brand-deep:#46d8a6;--brand-700:#63e2b7;--brand-tint:#19c08c26;--brand-tint-2:#19c08c42;--accent:#6e8bff;--accent-deep:#8aa0ff;--accent-tint:#6e8bff2e;--ok:#3fd183;--ok-tint:#3fd18329;--warn:#e3a53c;--warn-tint:#e3a53c2b;--danger:#f47171;--danger-tint:#f471712b;--info:#6e8bff;--info-tint:#6e8bff29;--neutral:#9daab8;--neutral-tint:#9daab824;--violet:#9d86ff;--violet-tint:#9d86ff2e;--sh-xs:0 1px 2px #0006;--sh:0 6px 20px -8px #0009;--sh-lg:0 28px 64px -20px #000000bf;--sh-drawer:-18px 0 50px -24px #0009}.pm-portal[data-theme=dark] .topbar{background:#161f2ad9}.pm-portal[data-theme=dark] .select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23697787' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")}.pm-portal[data-theme=dark] .btn-dark{background:var(--surface-3);color:var(--text)}.pm-portal[data-theme=dark] .s-sold,.pm-portal[data-theme=dark] .s-paid,.pm-portal[data-theme=dark] .s-reserved,.pm-portal[data-theme=dark] .s-open,.pm-portal[data-theme=dark] .s-emergency,.pm-portal[data-theme=dark] .s-overdue,.pm-portal[data-theme=dark] .s-app{border-color:#0000}@media (width<=1140px){.pm-portal .stat-grid,.pm-portal .proj-grid{grid-template-columns:1fr 1fr}.pm-portal .td-grid{grid-template-columns:1fr}}@media (width<=860px){.pm-portal .sidebar{z-index:70;height:100%;transition:transform .25s;position:fixed;transform:translate(-100%)}.pm-portal .sidebar.mobile-open{transform:none}.pm-portal .page{padding:22px 18px 56px}.pm-portal .stat-grid,.pm-portal .proj-grid{grid-template-columns:1fr}.pm-portal .topbar{padding:0 16px}}
