.p2p-app{display:grid;grid-template-columns:240px 1fr;height:100vh;overflow:hidden;background:var(--surface-base)}.p2p-app[data-density=comfortable]{--row-h:40px}.p2p-app[data-sidebar=compact]{grid-template-columns:64px 1fr}.p2p-app[data-sidebar=compact] .p2p-sidebar{padding:12px 8px}.p2p-app[data-sidebar=compact] .p2p-nav-item .p2p-nav-badge,.p2p-app[data-sidebar=compact] .p2p-nav-item span,.p2p-app[data-sidebar=compact] .p2p-nav-section,.p2p-app[data-sidebar=compact] .p2p-sidebar>.p2p-cta .kbd,.p2p-app[data-sidebar=compact] .p2p-sidebar>.p2p-cta span,.p2p-app[data-sidebar=compact] .p2p-sidebar>.p2p-search,.p2p-app[data-sidebar=compact] .p2p-sidebar__foot,.p2p-app[data-sidebar=compact] .p2p-sidebar__head>div:first-child>span:last-child{display:none}@media (max-width:900px){.p2p-app{grid-template-columns:1fr}}.p2p-mark{width:22px;height:22px;border-radius:6px;background:linear-gradient(135deg,var(--brand-400),var(--brand-700));position:relative;flex-shrink:0}.p2p-mark:after{content:"";position:absolute;inset:5px;background:var(--surface-base);border-radius:2px;clip-path:polygon(0 100%,0 60%,35% 60%,35% 30%,70% 30%,70% 0,100% 0,100% 100%)}.p2p-sidebar{display:flex;flex-direction:column;gap:4px;padding:16px 12px;background:var(--surface-elevated);border-right:1px solid var(--border-subtle);height:100vh;overflow-y:auto;transition:width .3s cubic-bezier(.16,1,.3,1),padding .3s cubic-bezier(.16,1,.3,1);overflow:hidden}.p2p-sidebar__head{display:flex;align-items:center;padding:4px 6px 12px}.p2p-sidebar__head>div:first-child{flex:1}.p2p-sidebar__close{display:none;background:none;border:0;color:var(--fg-secondary);padding:4px}.p2p-cta{display:flex;align-items:center;gap:8px;height:36px;padding:0 12px;background:var(--brand-500);color:var(--fg-on-brand);border:0;border-radius:8px;font:500 13px/1 var(--font-sans);margin:0 0 8px}.p2p-cta:hover{background:var(--brand-400)}.p2p-cta .kbd{background:var(--brand-800);color:var(--brand-50);border-color:transparent;opacity:.85}.p2p-search{display:flex;align-items:center;gap:8px;height:32px;padding:0 10px;background:var(--surface-inset);color:var(--fg-tertiary);border:1px solid var(--border-subtle);border-radius:8px;font:13px/1 var(--font-sans);margin-bottom:12px}.p2p-search:hover{border-color:var(--border-default);color:var(--fg-secondary)}.p2p-nav{display:flex;flex-direction:column;gap:2px}.p2p-nav-section{font:500 11px/1 var(--font-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--fg-quaternary);padding:16px 8px 6px}.p2p-nav-item{display:flex;align-items:center;gap:10px;height:32px;padding:0 10px;background:transparent;border:0;color:var(--fg-secondary);border-radius:8px;font:500 13px/1 var(--font-sans);cursor:pointer;text-align:left;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.p2p-nav-item.is-active,.p2p-nav-item:hover{background:var(--surface-popover);color:var(--fg-primary)}.p2p-nav-item.is-active{box-shadow:inset 2px 0 0 var(--brand-500)}.p2p-nav-item.is-child{padding-left:28px;color:var(--fg-tertiary);font-weight:400}.p2p-nav-item.is-child:before{content:"";position:absolute}.p2p-nav-item span:first-of-type{flex:1}.p2p-nav-badge{background:var(--brand-700);color:var(--brand-100);font:500 11px/1 var(--font-mono);padding:2px 6px;border-radius:999px}.p2p-sidebar__foot{margin-top:auto;padding-top:12px}.p2p-plan-card{background:var(--surface-popover);border:1px solid var(--border-subtle);border-radius:10px;padding:12px}.p2p-plan-row{display:flex;align-items:center;justify-content:space-between}.p2p-plan-meter{height:4px;margin-top:10px;background:var(--border-subtle);border-radius:2px;overflow:hidden}.p2p-plan-bar{height:100%;background:linear-gradient(90deg,var(--brand-600),var(--brand-400))}.p2p-link{background:none;border:0;color:var(--brand-300);font:500 12px/1 var(--font-sans);cursor:pointer;padding:0}.p2p-link:hover{color:var(--brand-200)}.p2p-content-area{display:flex;flex-direction:column;min-width:0;height:100vh;overflow:hidden}.p2p-topbar{display:flex;align-items:center;gap:8px;padding:10px 20px;border-bottom:1px solid var(--border-subtle);background:var(--surface-base);flex-shrink:0;height:56px}.p2p-mobile-menu{display:none}.p2p-crumbs{font:var(--text-body-sm);color:var(--fg-secondary)}.p2p-crumbs strong{color:var(--fg-primary);font-weight:600}.p2p-crumbs .sep{color:var(--fg-quaternary);margin:0 8px}.p2p-search-tb{display:flex;align-items:center;gap:8px;height:30px;padding:0 10px;background:var(--surface-elevated);color:var(--fg-secondary);border:1px solid var(--border-subtle);border-radius:8px;font:13px/1 var(--font-sans)}.p2p-search-tb:hover{border-color:var(--border-default)}.p2p-icon-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:0;border-radius:8px;color:var(--fg-secondary)}.p2p-icon-btn:hover{background:var(--surface-elevated);color:var(--fg-primary)}.p2p-badge-dot{position:absolute;top:6px;right:6px;width:7px;height:7px;border-radius:50%;background:var(--status-warn-dot);border:2px solid var(--surface-base)}.p2p-avatar{width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,var(--brand-700),oklch(48% .1 280));font:600 11px/26px var(--font-sans);color:var(--fg-primary);text-align:center}.p2p-scroll{flex:1;overflow-y:auto;padding:24px 32px 64px}@media (max-width:900px){.p2p-scroll{padding:16px}}.p2p-banner{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:10px;background:var(--surface-elevated);border:1px solid var(--border-subtle);margin-bottom:20px}.p2p-banner--warn{border-color:oklch(40% .1 80/.5);background:oklch(20% .04 80)}.p2p-banner--danger{border-color:oklch(40% .1 22/.6);background:oklch(20% .05 22)}.p2p-banner--info{border-color:oklch(40% .07 245/.6);background:oklch(20% .04 245)}.p2p-banner__body{flex:1;font:13px/20px var(--font-sans)}.p2p-banner__body strong{color:var(--fg-primary);font-weight:600}.p2p-scrim{position:fixed;inset:0;background:rgba(0,0,0,.5);opacity:0;pointer-events:none;transition:opacity var(--dur) var(--ease-out);z-index:80}.p2p-scrim.is-open{opacity:1;pointer-events:auto}.p2p-drawer{position:fixed;top:0;right:0;bottom:0;width:420px;max-width:100%;background:var(--surface-elevated);border-left:1px solid var(--border-subtle);box-shadow:var(--shadow-popover);transform:translateX(100%);transition:transform var(--dur-slow) var(--ease-out);z-index:90;display:flex;flex-direction:column}.p2p-drawer.is-open{transform:translateX(0)}.p2p-drawer__head{display:flex;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-subtle)}.p2p-drawer__head h2{font:600 16px/1 var(--font-sans);margin:0;flex:1;display:flex;align-items:center;gap:10px}.p2p-drawer__sub{padding:12px 20px;font:var(--text-body-sm);border-bottom:1px solid var(--border-subtle)}.p2p-inbox-list{padding:8px 0;overflow-y:auto;flex:1}.p2p-inbox-item{display:flex;gap:12px;padding:14px 20px;border-bottom:1px solid var(--border-subtle)}.p2p-inbox-item header{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.p2p-inbox-item header strong{font:500 13px/1.2 var(--font-sans)}.p2p-inbox-item p{font:var(--text-body-sm);color:var(--fg-secondary);margin:4px 0 8px}.p2p-inbox-item.is-read{opacity:.55}.p2p-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:48px 24px;background:var(--surface-elevated);border:1px dashed var(--border-default);border-radius:16px}.p2p-empty__icon{width:56px;height:56px;border-radius:14px;display:grid;place-items:center;background:color-mix(in srgb,var(--brand-600) 30%,var(--surface-elevated));color:var(--brand-300);margin-bottom:16px}.p2p-empty h3{font:600 18px/24px var(--font-sans);margin:0 0 6px}.p2p-empty p{font:var(--text-body);color:var(--fg-secondary);max-width:50ch;margin:0 0 16px}.p2p-card{background:var(--surface-elevated);border:1px solid var(--border-subtle);border-radius:14px}.p2p-card__head{display:flex;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-subtle)}.p2p-card__head h3{font:600 14px/1 var(--font-sans);margin:0;flex:1}.p2p-card__body{padding:16px 20px}.p2p-card__body--flush{padding:0}.p2p-page-head{margin-bottom:24px}.p2p-page-head h1{font:600 24px/32px var(--font-sans);letter-spacing:-.01em;margin:0 0 4px}.p2p-page-head p{font:var(--text-body);color:var(--fg-secondary);margin:0}.p2p-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:20px}.p2p-kpi{background:var(--surface-elevated);border:1px solid var(--border-subtle);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:8px}.p2p-kpi__label{font:500 12px/1 var(--font-sans);color:var(--fg-tertiary);letter-spacing:.04em;text-transform:uppercase}.p2p-kpi__row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.p2p-kpi__value{font:600 26px/1 var(--font-sans);letter-spacing:-.02em;font-feature-settings:"tnum" 1}.p2p-kpi__delta{font:500 12px/1 var(--font-mono)}.p2p-kpi__delta.up{color:var(--status-success-fg)}.p2p-kpi__delta.down{color:var(--status-danger-fg)}.p2p-hero{display:grid;grid-template-columns:1fr auto;background:linear-gradient(135deg,var(--surface-elevated),var(--surface-popover));border:1px solid var(--border-subtle);border-radius:16px;padding:24px 28px;gap:32px;margin-bottom:20px;position:relative;overflow:hidden}.p2p-hero:before{content:"";position:absolute;right:-80px;top:-80px;width:280px;height:280px;background:radial-gradient(circle,color-mix(in srgb,var(--brand-500) 20%,transparent),transparent 60%);pointer-events:none}.p2p-hero__eyebrow{font:var(--text-mono-sm);color:var(--brand-300);letter-spacing:.04em;text-transform:uppercase}.p2p-hero h2{font:600 22px/28px var(--font-sans);letter-spacing:-.01em;margin:6px 0 8px;max-width:32ch}.p2p-hero__meta{display:flex;flex-wrap:wrap;gap:8px 16px;font:var(--text-body-sm);color:var(--fg-secondary)}.p2p-hero__meta b{color:var(--fg-primary);font-weight:500}.p2p-hero__cta{display:flex;flex-direction:column;gap:8px;align-items:stretch;min-width:180px}.p2p-2col{display:grid;grid-template-columns:2fr 1fr;gap:16px}@media (max-width:1100px){.p2p-2col{grid-template-columns:1fr}}.p2p-opp{display:flex;align-items:center;gap:14px;padding:14px 20px;border-bottom:1px solid var(--border-subtle)}.p2p-opp:last-child{border-bottom:0}.p2p-opp:hover,.p2p-opp__score{background:var(--surface-popover)}.p2p-opp__score{width:38px;height:38px;border-radius:10px;border:1px solid var(--border-subtle);display:grid;place-items:center;font:600 14px/1 var(--font-mono);color:var(--fg-primary);flex-shrink:0;font-feature-settings:"tnum" 1}.p2p-opp__score--hot{background:color-mix(in srgb,var(--brand-600) 35%,var(--surface-elevated));color:var(--brand-300);border-color:var(--brand-700)}.p2p-opp__main{flex:1;min-width:0}.p2p-opp__title{font:500 14px/20px var(--font-sans);color:var(--fg-primary);margin-bottom:2px}.p2p-opp__sub{font:var(--text-caption);color:var(--fg-tertiary);display:flex;gap:12px}.p2p-opp__pills{display:flex;gap:6px;flex-wrap:wrap}.p2p-settings{display:grid;grid-template-columns:220px 1fr;gap:24px;align-items:start}@media (max-width:900px){.p2p-settings{grid-template-columns:1fr}}.p2p-settings-nav{display:flex;flex-direction:column;gap:2px;position:sticky;top:0}.p2p-settings-nav button{display:flex;align-items:center;gap:10px;height:32px;padding:0 12px;background:transparent;border:0;color:var(--fg-secondary);border-radius:8px;font:500 13px/1 var(--font-sans);text-align:left;cursor:pointer}.p2p-settings-nav button.is-active,.p2p-settings-nav button:hover{background:var(--surface-elevated);color:var(--fg-primary)}.p2p-settings-nav button.is-active{box-shadow:inset 2px 0 0 var(--brand-500)}.p2p-settings-nav .group{font:500 11px/1 var(--font-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--fg-quaternary);padding:16px 12px 6px}.p2p-settings-content{display:flex;flex-direction:column;gap:16px;min-width:0}.p2p-row{display:flex;align-items:center;gap:16px;padding:14px 20px;border-top:1px solid var(--border-subtle)}.p2p-row:first-of-type{border-top:0}.p2p-row__label{width:200px;flex-shrink:0}.p2p-row__label strong{display:block;font:500 14px/1.2 var(--font-sans);color:var(--fg-primary)}.p2p-row__label p{font:var(--text-caption);color:var(--fg-tertiary);margin:4px 0 0}.p2p-row__control{flex:1;gap:8px;flex-wrap:wrap}.p2p-row__control,.p2p-stepper{display:flex;align-items:center}.p2p-stepper{gap:0;padding:12px 20px;background:var(--surface-elevated);border:1px solid var(--border-subtle);border-radius:12px;margin-bottom:16px}.p2p-step{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.p2p-step__num{width:22px;height:22px;border-radius:11px;flex-shrink:0;display:grid;place-items:center;font:600 11px/1 var(--font-mono);background:var(--surface-popover);border:1px solid var(--border-default);color:var(--fg-tertiary)}.p2p-step.is-active .p2p-step__num{background:var(--brand-500);color:var(--fg-on-brand);border-color:transparent}.p2p-step.is-done .p2p-step__num{background:var(--brand-800);color:var(--brand-300);border-color:var(--brand-700)}.p2p-step__label{font:500 13px/1 var(--font-sans);color:var(--fg-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.p2p-step.is-active .p2p-step__label{color:var(--fg-primary)}.p2p-step__bar{flex:1;height:1px;background:var(--border-subtle);margin:0 12px}.p2p-tabs-bar{display:flex;gap:4px;padding:2px;background:var(--surface-inset);border-radius:8px}.p2p-tabs-bar button{flex:1;height:30px;background:transparent;border:0;color:var(--fg-tertiary);font:500 13px/1 var(--font-sans);border-radius:6px}.p2p-tabs-bar button.is-active{background:var(--surface-popover);color:var(--fg-primary);box-shadow:var(--shadow-1)}.p2p-quality-card{background:var(--surface-elevated);border:1px solid var(--border-subtle);border-radius:12px;padding:20px}.p2p-quality-card__num{font:600 44px/1 var(--font-sans);letter-spacing:-.02em;color:var(--brand-300)}.p2p-quality-card__bar{height:6px;margin-top:12px;background:var(--surface-inset);border-radius:3px;overflow:hidden}.p2p-quality-card__bar>div{height:100%;background:linear-gradient(90deg,var(--brand-700),var(--brand-400));transition:width var(--dur-slow) var(--ease-out)}.p2p-check-line{display:flex;align-items:center;gap:10px;padding:8px 0;font:var(--text-body-sm)}.p2p-check-line svg{color:var(--status-success-fg)}.p2p-check-line.is-todo{color:var(--fg-tertiary)}.p2p-check-line.is-todo svg{color:var(--fg-quaternary)}.p2p-proj{display:grid;grid-template-columns:280px 1fr;gap:16px;align-items:start}@media (max-width:1100px){.p2p-proj{grid-template-columns:1fr}}.p2p-timeline-item{display:block;width:100%;text-align:left;background:transparent;border:0;padding:12px 16px;border-left:2px solid var(--border-subtle);cursor:pointer;position:relative}.p2p-timeline-item.is-active,.p2p-timeline-item:hover{background:var(--surface-popover)}.p2p-timeline-item.is-active{border-left-color:var(--brand-500)}.p2p-timeline-item .date{font:var(--text-mono-sm);color:var(--fg-tertiary)}.p2p-timeline-item .title{font:500 13px/1.3 var(--font-sans);color:var(--fg-primary);margin:4px 0}.p2p-timeline-item .meta{font:var(--text-caption);color:var(--fg-tertiary);display:flex;gap:10px}.p2p-palette{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:flex-start;justify-content:center;padding-top:12vh;z-index:100;opacity:0;pointer-events:none;transition:opacity var(--dur) var(--ease-out)}.p2p-palette.is-open{opacity:1;pointer-events:auto}.p2p-palette__box{width:600px;max-width:90vw;background:var(--surface-popover);border:1px solid var(--border-default);border-radius:14px;box-shadow:var(--shadow-popover);overflow:hidden;transform:translateY(8px);transition:transform var(--dur) var(--ease-out)}.p2p-palette.is-open .p2p-palette__box{transform:translateY(0)}.p2p-palette__input{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--border-subtle)}.p2p-palette__input input{flex:1;background:transparent;border:0;outline:0;color:var(--fg-primary);font:16px/1 var(--font-sans)}.p2p-palette__list{max-height:60vh;overflow-y:auto;padding:6px}.p2p-palette__item{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:8px;font:14px/1 var(--font-sans);color:var(--fg-secondary);cursor:pointer}.p2p-palette__item.is-sel,.p2p-palette__item:hover{background:var(--surface-elevated);color:var(--fg-primary)}.p2p-palette__item .group{font:var(--text-mono-sm);color:var(--fg-quaternary);margin-left:auto}.p2p-palette__sect{font:500 11px/1 var(--font-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--fg-quaternary);padding:10px 14px 6px}@media (max-width:900px){.p2p-mobile-menu{display:inline-flex}.p2p-search-tb{display:none}.p2p-sidebar{position:fixed;top:0;left:0;bottom:0;width:280px;z-index:95;transform:translateX(-100%);transition:transform var(--dur) var(--ease-out);box-shadow:var(--shadow-popover)}.p2p-sidebar.is-open{transform:translateX(0)}.p2p-sidebar__close{display:inline-flex}.p2p-hero{grid-template-columns:1fr}.p2p-hero__cta{min-width:0}.p2p-stepper{overflow-x:auto}.p2p-step__label{font-size:12px}.p2p-row{flex-direction:column;align-items:flex-start}.p2p-row__label{width:auto}}.p2p-status-line{display:flex;align-items:center;gap:8px}