*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #fafaf9;--surface: #ffffff;--surface-2: #f5f5f4;--surface-3: #eeede9;--border: #e7e5e4;--border-strong: #d6d3d1;--text: #18181b;--text-2: #52525b;--text-3: #a1a1aa;--text-inverse: #fafafa;--accent: #3b5bdb;--accent-hover: #2f4ac2;--accent-soft: #eef1fe;--accent-ring: rgba(59, 91, 219, .18);--success: #16a34a;--warn: #d97706;--danger: #dc2626;--r-xs: 4px;--r-sm: 6px;--r-md: 8px;--r-lg: 12px;--r-xl: 16px;--sh-1: 0 1px 2px rgba(20,20,20,.04), 0 0 0 1px rgba(20,20,20,.04);--sh-2: 0 1px 2px rgba(20,20,20,.05), 0 4px 12px rgba(20,20,20,.05);--sh-3: 0 8px 24px rgba(20,20,20,.08), 0 2px 6px rgba(20,20,20,.05);--sh-pop:0 12px 40px rgba(20,20,20,.14), 0 2px 6px rgba(20,20,20,.06);--font-sans: "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace}html,body,#root{height:100%;font-family:var(--font-sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-feature-settings:"ss01","cv11";letter-spacing:-.005em}.pl-topbar{display:flex;align-items:center;gap:14px;height:52px;padding:0 20px;border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:40}.pl-logo{font-weight:600;font-size:15px;letter-spacing:-.02em;display:flex;align-items:center;gap:8px;text-decoration:none;color:inherit}.pl-logo-mark{width:18px;height:18px;border-radius:5px;background:var(--text);position:relative;flex-shrink:0}.pl-logo-mark:after{content:"";position:absolute;top:4px;right:4px;bottom:4px;left:4px;border:1.5px solid var(--bg);border-radius:50%;border-top-color:transparent;border-right-color:transparent}.pl-sidebar{width:220px;border-right:1px solid var(--border);background:var(--bg);padding:18px 12px;display:flex;flex-direction:column;gap:4px}.pl-navitem{display:flex;align-items:center;gap:9px;height:30px;padding:0 10px;border-radius:var(--r-sm);font-size:13px;color:var(--text-2);font-weight:500;cursor:pointer;text-decoration:none}.pl-navitem.active{background:var(--surface);color:var(--text);box-shadow:var(--sh-1)}.pl-navitem:hover:not(.active){background:var(--surface-2)}.pl-btn{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border-radius:var(--r-sm);font-size:13px;font-weight:500;font-family:inherit;background:var(--surface);color:var(--text);border:1px solid var(--border);cursor:pointer;transition:background .12s,border-color .12s}.pl-btn:hover{background:var(--surface-2);border-color:var(--border-strong)}.pl-btn.primary{background:var(--text);color:var(--text-inverse);border-color:var(--text)}.pl-btn.primary:hover{background:#000;border-color:#000}.pl-btn.accent{background:var(--accent);color:#fff;border-color:var(--accent)}.pl-btn.accent:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.pl-btn.ghost{border-color:transparent;background:transparent;color:var(--text-2)}.pl-btn.ghost:hover{background:var(--surface-2);color:var(--text)}.pl-btn.sm{height:26px;padding:0 10px;font-size:12px}.pl-btn.lg{height:42px;padding:0 20px;font-size:14px;border-radius:var(--r-md)}.pl-btn:disabled{opacity:.5;cursor:not-allowed}.pl-input{height:38px;padding:0 10px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);font-size:13.5px;font-family:inherit;color:var(--text);outline:none;width:100%;transition:border-color .12s,box-shadow .12s}.pl-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.pl-label{display:block;margin-bottom:6px;font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);font-family:var(--font-mono)}.pl-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md)}.pl-card-hover:hover{border-color:var(--border-strong);box-shadow:var(--sh-2)}.pl-pill{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;border-radius:999px;font-size:11px;font-weight:500;background:var(--surface-2);color:var(--text-2);border:1px solid var(--border);font-family:var(--font-mono);letter-spacing:0;white-space:nowrap}.pl-pill .dot{width:6px;height:6px;border-radius:50%;background:var(--text-3);flex-shrink:0}.pl-filterpills{display:flex;flex-wrap:wrap;gap:6px}.pl-filterpill{display:inline-flex;align-items:center;gap:7px;height:28px;padding:0 10px 0 8px;border-radius:999px;font-size:12px;font-weight:500;background:var(--surface);color:var(--text);border:1px solid var(--border);cursor:pointer;transition:opacity .12s,background .12s;-webkit-user-select:none;user-select:none}.pl-filterpill:hover{background:var(--surface-2)}.pl-filterpill .swatch{width:10px;height:10px;border-radius:3px}.pl-filterpill.off{opacity:.45}.pl-filterpill .cnt{font-family:var(--font-mono);font-size:11px;color:var(--text-3)}.pl-h1{font-size:22px;font-weight:600;letter-spacing:-.02em}.pl-h2{font-size:15px;font-weight:600;letter-spacing:-.01em}.pl-h3{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);font-family:var(--font-mono)}.pl-muted{color:var(--text-2);font-size:13px;line-height:1.5}.pl-tiny{color:var(--text-3);font-size:11px;font-family:var(--font-mono);letter-spacing:0}.pl-drawer{background:var(--surface);border-left:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.pl-drawer-head{padding:18px 20px 14px;border-bottom:1px solid var(--border)}.pl-drawer-body{padding:18px 20px;overflow-y:auto;flex:1}.pl-meta-row{display:grid;grid-template-columns:92px 1fr;gap:12px;padding:8px 0;font-size:13px;border-bottom:1px solid var(--border)}.pl-meta-row dt{color:var(--text-3);font-family:var(--font-mono);font-size:11px;padding-top:2px}.pl-meta-row dd{color:var(--text);margin:0}.pl-act-row{display:grid;grid-template-columns:3px 1fr auto;align-items:start;gap:12px;padding:12px 0;border-bottom:1px solid var(--border);cursor:pointer}.pl-act-row:hover{background:var(--surface-2)}.pl-act-row .stripe{width:3px;height:100%;min-height:32px;border-radius:2px}.pl-act-row .ttl{font-size:14px;font-weight:500;line-height:1.3}.pl-act-row .sub{font-size:12px;color:var(--text-2);margin-top:2px;font-family:var(--font-mono)}@keyframes pl-spin{to{transform:rotate(360deg)}}.pl-spinner{width:18px;height:18px;border-radius:50%;border:2px solid var(--border);border-top-color:var(--accent);animation:pl-spin .7s linear infinite}
