.pp{--green: #6B7F52;--green-dark: #4F6339;--green-soft: #E7EBDF;--bg: #F4F5F1;--card: #FFFFFF;--text: #2B3022;--muted: #737A68;--line: #DFE2D8;--danger: #B5483D;--info: #3B5585;--info-bg: #E9EEF7;--s-todo: #8A8F84;--s-todo-bg: #ECEDEA;--s-eval: #A86A0B;--s-eval-bg: #FBEFD6;--s-dev: #2D63A6;--s-dev-bg: #E1ECF8;--s-prog: #3C8A4E;--s-prog-bg: #E2F1E4;--s-done: #1F5631;--s-done-bg: #D3E6D7;--s-partner: #6D4A9E;--s-partner-bg: #ECE4F6;--s-cancel: #A0473E;--s-cancel-bg: #F6E3E0;--s-brown: #85682C;--s-brown-bg: #F2EAD8;min-height:100vh;background:var(--bg);color:var(--text);font:14px/1.6 Noto Sans TC,PingFang TC,Microsoft JhengHei,sans-serif}.pp *,.pp *:before,.pp *:after{box-sizing:border-box}.pp button,.pp input,.pp select,.pp textarea{font:inherit;color:inherit}.pp h1,.pp h2,.pp h3{margin:0}.pp-serif{font-family:"Noto Serif TC",serif}.pp-sub{color:var(--muted);font-size:12.5px}.pp-empty{color:var(--muted);font-size:13px;padding:10px 0}.pp-btn{border:1px solid var(--line);background:#fff;border-radius:9px;padding:9px 16px;cursor:pointer;font-weight:500;white-space:nowrap}.pp-btn:hover{background:var(--bg)}.pp-btn:disabled{opacity:.55;cursor:not-allowed}.pp-btn-primary{background:var(--green);border-color:var(--green);color:#fff}.pp-btn-primary:hover{background:var(--green-dark)}.pp-btn-danger{color:var(--danger);border-color:#ebc9c4}.pp-btn-danger:hover{background:#fbedeb}.pp-btn-danger-solid{background:var(--danger);border-color:var(--danger);color:#fff}.pp-btn-sm{padding:5px 11px;font-size:13px;border-radius:8px}.pp-btn-block{width:100%;margin-top:20px}.pp-mini{border:0;background:none;cursor:pointer;color:var(--muted);padding:2px 7px;border-radius:6px;font-size:13px;line-height:1.5;white-space:nowrap}.pp-mini:hover{background:var(--bg);color:var(--text)}.pp-mini.del:hover{background:#fbedeb;color:var(--danger)}.pp-acts{display:inline-flex;gap:2px;flex:none}.pp-field{display:block;margin-top:14px}.pp-field>span{display:block;font-size:12.5px;color:var(--muted);margin-bottom:4px}.pp-input{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#fff}.pp-input:focus{outline:2px solid var(--green-soft);border-color:var(--green)}textarea.pp-input{min-height:80px;resize:vertical}.pp-two{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.pp-err{color:var(--danger);font-size:12.5px;margin-top:10px}.pp-note{font-size:12.5px;color:var(--info);background:var(--info-bg);border-radius:8px;padding:7px 11px;margin-top:12px}.pp-lock{margin-top:16px;padding:12px 14px;border-radius:10px;background:#f2f2ee;color:var(--muted);font-size:13px}.pp-banner{margin-top:12px;padding:10px 12px;border-radius:10px;background:var(--info-bg);color:var(--info);font-size:13px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.pp-auth{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px}.pp-auth-card{width:100%;max-width:400px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:32px 28px;box-shadow:0 10px 30px #2b30220f}.pp-brand{display:flex;align-items:center;gap:10px}.pp-leaf{width:34px;height:34px;border-radius:50%;background:var(--green);display:grid;place-items:center;color:#fff;font-size:16px;flex:none}.pp-brand h1{font-size:19px}.pp-rules{font-size:12px;color:var(--muted);margin:8px 0 0;padding-left:18px}.pp-rules .ok{color:var(--s-prog)}.pp-topbar{background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.pp-topbar-in{max-width:1240px;margin:0 auto;padding:0 16px;display:flex;align-items:center;gap:16px;min-height:58px}.pp-topbar .pp-brand h1{font-size:15.5px}.pp-topbar .pp-leaf{width:28px;height:28px;font-size:14px}.pp-nav{display:flex;gap:2px;flex:1;overflow-x:auto}.pp-nav a{padding:18px 12px 16px;color:var(--muted);border-bottom:2px solid transparent;white-space:nowrap;font-weight:500;text-decoration:none}.pp-nav a.on{color:var(--green-dark);border-bottom-color:var(--green)}.pp-who{font-size:12.5px;color:var(--muted);white-space:nowrap}.pp-user{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex:none;padding:6px 0}.pp-user-acts{display:flex;align-items:center;gap:6px}.pp-user-acts .pp-lang button{padding:1px 9px}.pp-main{max-width:1240px;margin:0 auto;padding:22px 16px 60px}.pp-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px 20px}.pp-grid2{display:grid;grid-template-columns:1.5fr 1fr;gap:16px;margin-top:16px}.pp-grid2>*{min-width:0}.pp-sec{font-size:15px;font-weight:700;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.pp-sec small{color:var(--muted);font-weight:400;font-size:12px}.pp-head{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:flex-end}.pp-head h2{font-size:24px}.pp-head-actions{display:flex;gap:8px;flex-wrap:wrap}.pp-crumb{color:var(--muted);font-size:13px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.pp-crumb a{color:var(--green-dark);text-decoration:none}.pp-meta{display:flex;gap:6px 22px;flex-wrap:wrap;color:var(--muted);font-size:13px;margin-top:6px;align-items:center}.pp-meta b{color:var(--text);font-weight:500}.pp-chip{display:inline-block;font-size:12px;padding:1px 8px;border-radius:999px;background:var(--green-soft);color:var(--green-dark);margin-right:4px}.pp-chip.planned{background:#f1eee4;color:#8a6d2f}.pp-chip.closed{background:#eee;color:#888;text-decoration:line-through}.pp-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:10px;margin-top:16px}.pp-stat{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px;cursor:pointer;border-top:3px solid var(--c);text-align:left}.pp-stat .n{font-size:26px;font-weight:700;line-height:1.2;color:var(--c);font-variant-numeric:tabular-nums}.pp-stat .l{font-size:12.5px;color:var(--muted)}.pp-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}.pp-kpi{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px}.pp-kpi .n{font-size:24px;font-weight:700;font-variant-numeric:tabular-nums}.pp-kpi .n.warn{color:var(--danger)}.pp-kpi .l{font-size:12.5px;color:var(--muted)}.pp-pill{display:inline-block;padding:1px 9px;border-radius:999px;font-size:12px;font-weight:500;white-space:nowrap;color:var(--c);background:var(--b);height:fit-content}.pp-pill-select{border:1px solid transparent;border-radius:999px;padding:1px 4px 1px 9px;font-size:12px;font-weight:500;color:var(--c);background:var(--b);cursor:pointer;max-width:140px;height:fit-content}.pp-pill-select:hover,.pp-pill-select:focus{border-color:var(--c);outline:none}.pp-owner{font-size:12px;color:var(--muted);white-space:nowrap}.pp-owner.mp{color:var(--s-partner);font-weight:500}.pp-link-tag{font-size:11px;padding:0 6px;border-radius:4px;background:#e3e8f2;color:var(--info);white-space:nowrap;border:0;margin-left:4px;font-weight:500;vertical-align:1px;text-decoration:none}.pp-tag{font-size:11px;padding:0 6px;border-radius:4px;background:var(--s-partner-bg);color:var(--s-partner)}.pp-tag.hq{background:var(--green-soft);color:var(--green-dark)}.pp-tag.int{background:#f7e2b5;color:#8a5a00}.pp-row{display:flex;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}.pp-row:last-child{border-bottom:0}.pp-row:hover .t{color:var(--green-dark);text-decoration:underline}.pp-code{font-variant-numeric:tabular-nums;color:var(--muted);font-size:12.5px;min-width:52px;flex:none;white-space:nowrap}.pp-row .t{flex:1;min-width:0}.pp-row .s{color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pp-feed{font-size:13px;padding:8px 0;border-bottom:1px solid var(--line)}.pp-feed:last-child{border-bottom:0}.pp-feed .time{color:var(--muted);font-size:11.5px}.pp-ann{border-bottom:1px solid var(--line);padding:8px 0;display:flex;gap:8px;align-items:flex-start}.pp-ann:last-child{border-bottom:0}.pp-ann details{flex:1}.pp-ann summary{cursor:pointer;font-weight:500}.pp-ann p{margin:6px 0 2px;color:var(--muted);font-size:13px;white-space:pre-wrap}.pp-toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:14px 0}.pp-toolbar .pp-input{width:auto;padding:7px 10px}.pp-toolbar .grow{flex:1;min-width:180px}.pp-toggle{display:inline-flex;align-items:center;gap:6px;font-size:14px;white-space:nowrap;cursor:pointer}tr.pp-group-start>td{border-top:2px solid var(--green)}.pp-seg{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#fff}.pp-seg button{border:0;background:none;padding:7px 12px;cursor:pointer;color:var(--muted)}.pp-seg button.on{background:var(--green);color:#fff}.pp-table-wrap{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow-x:auto}.pp table{width:100%;border-collapse:collapse;font-size:13px}.pp th{text-align:left;font-weight:500;color:var(--muted);font-size:12px;padding:10px 12px;border-bottom:1px solid var(--line);background:#fafbf8;white-space:nowrap}.pp td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}.pp tr:last-child td{border-bottom:0}.pp tbody tr.click{cursor:pointer}.pp tbody tr.click:hover{background:#fafbf8}.pp td.num{font-variant-numeric:tabular-nums;white-space:nowrap}.pp-resp{color:var(--muted);max-width:320px}.pp-warn-n{color:var(--danger);font-weight:700}.pp-off{font-size:11px;color:#777;background:#eee;border-radius:4px;padding:0 5px;margin-left:4px}.pp-bar{display:flex;height:8px;border-radius:4px;overflow:hidden;min-width:120px;background:#eee}.pp-bar span{display:block;height:100%}.pp-lanes{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}.pp-lane{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden;border-top:5px solid var(--lane-c)}.pp-lane.bc{--lane-c: var(--green);--lane-ink: var(--green-dark);--lane-bg: #EEF1E8}.pp-lane.mp{--lane-c: var(--s-partner);--lane-ink: var(--s-partner);--lane-bg: #F3EEF9}.pp-lane.both{--lane-c: transparent;--lane-ink: var(--green-dark);margin-bottom:16px;border-top:0}.pp-lane.both:before{content:"";display:block;height:5px;background:linear-gradient(90deg,var(--green),var(--s-partner))}.pp-lane-head{padding:14px 16px 12px;background:var(--lane-bg);border-bottom:1px solid var(--line)}.pp-lane.both .pp-lane-head{background:linear-gradient(90deg,#eef1e8,#f3eef9)}.pp-lane-who{display:flex;align-items:center;gap:10px}.pp-lane-badge{width:34px;height:34px;border-radius:50%;background:var(--lane-c);color:#fff;display:grid;place-items:center;font-weight:700;font-size:13px;flex:none}.pp-lane.both .pp-lane-badge{background:linear-gradient(135deg,var(--green),var(--s-partner))}.pp-lane-head h3{font-size:16px;color:var(--lane-ink);line-height:1.3}.pp-lane.both .pp-lane-head h3{color:var(--text)}.pp-lane-nums{display:flex;gap:18px;margin:10px 0 8px;font-size:12.5px;color:var(--muted)}.pp-lane-nums b{display:block;font-size:22px;line-height:1.2;color:var(--text);font-variant-numeric:tabular-nums}.pp-lane-nums .open b{color:var(--lane-ink)}.pp-you{font-size:11px;background:var(--s-partner);color:#fff;border-radius:4px;padding:0 6px;margin-left:6px;vertical-align:2px}.pp-lane-group{padding:8px 16px 4px;font-size:12px;color:var(--muted);font-weight:500;background:#fafbf8;border-bottom:1px solid var(--line)}.pp-card-item{display:grid;grid-template-columns:minmax(52px,auto) 1fr auto;gap:2px 10px;padding:11px 16px;border-bottom:1px solid var(--line);cursor:pointer}.pp-card-item:last-child{border-bottom:0}.pp-card-item:hover{background:#fafbf8}.pp-card-item:hover .ti{color:var(--lane-ink);text-decoration:underline}.pp-card-item .ti{font-weight:500}.pp-card-item .su{grid-column:2 / 4;color:var(--muted);font-size:12.5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.pp-card-item .me{grid-column:2 / 4;font-size:11.5px;color:var(--muted);display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.pp-card-item .due{color:#8a5a00}.pp-lane-empty{padding:18px 16px;color:var(--muted);font-size:13px}.pp-detail{display:grid;grid-template-columns:1fr 340px;gap:16px;margin-top:12px}.pp-detail>*{min-width:0}.pp-kv{display:grid;grid-template-columns:110px 1fr;gap:8px 12px;font-size:13.5px;margin:14px 0 0}.pp-kv dt{color:var(--muted)}.pp-kv dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.pp-c{padding:12px 0;border-bottom:1px solid var(--line)}.pp-c.int{background:#fff8e6;margin:0 -12px 6px;padding:12px;border-radius:8px;border-bottom:0}.pp-c-head{font-size:12.5px;color:var(--muted);display:flex;gap:8px;flex-wrap:wrap;align-items:center}.pp-c-head b{color:var(--text)}.pp-c-head .pp-acts{margin-left:auto}.pp-att{display:inline-flex;gap:6px;align-items:center;font-size:12.5px;border:1px solid var(--line);border-radius:8px;padding:3px 9px;margin:6px 6px 0 0;background:#fff;cursor:pointer}.pp-att:hover{border-color:var(--green)}.pp-chk{font-size:12.5px;display:inline-flex;gap:5px;align-items:center;color:#8a5a00}.pp-hist{font-size:12.5px;padding:8px 0;border-bottom:1px solid var(--line)}.pp-hist:last-child{border-bottom:0}.pp-hist .time{color:var(--muted)}.pp-att-row{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);font-size:13px;cursor:pointer;text-decoration:none;color:inherit}.pp-att-row:last-child{border-bottom:0}.pp-att-kind{flex:none;font-size:11.5px;padding:1px 8px;border-radius:999px;height:fit-content}.pp-k-over{background:#f8e1de;color:var(--danger)}.pp-k-reply{background:#fbefd6;color:#8a5a00}.pp-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:14px 0 16px;overflow-x:auto}.pp-tabs button{background:none;border:0;padding:10px 14px;cursor:pointer;color:var(--muted);border-bottom:2px solid transparent;white-space:nowrap;font-weight:500}.pp-tabs button.on{color:var(--green-dark);border-bottom-color:var(--green)}.pp-opt-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.pp-opt-row{display:flex;justify-content:space-between;align-items:center;padding:7px 0;border-bottom:1px solid var(--line);font-size:13.5px;gap:8px}.pp-opt-row:last-child{border-bottom:0}.pp-check-list{display:grid;grid-template-columns:repeat(2,1fr);gap:4px 12px;margin:6px 0 0 22px;font-size:13px}.pp-scope{display:block;margin-top:4px;font-size:13px}.pp-store-edit{display:grid;grid-template-columns:1fr 130px auto;gap:8px;align-items:center;margin-top:8px}.pp-mono{font-family:ui-monospace,Consolas,monospace}.pp-modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#1e22186b;display:flex;align-items:center;justify-content:center;z-index:30;padding:16px}.pp-modal{background:#fff;border-radius:14px;padding:22px;width:100%;max-width:560px;max-height:calc(100vh - 32px);overflow-y:auto}.pp-modal h3{font-size:18px}.pp-modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.pp-loading{color:var(--muted);text-align:center;padding:80px 16px}@media(max-width:960px){.pp-lanes,.pp-grid2,.pp-detail,.pp-opt-grid{grid-template-columns:1fr}.pp-kpis{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.pp-topbar-in{flex-wrap:wrap;padding-top:8px;gap:4px 10px}.pp-topbar .pp-brand h1{display:none}.pp-nav{order:3;flex-basis:100%}.pp-nav a{padding:10px 10px 9px}.pp-user{margin-left:auto;padding:0}.pp-head h2{font-size:20px}.pp-two{grid-template-columns:1fr}.pp-kv{grid-template-columns:90px 1fr}.pp-check-list{grid-template-columns:1fr}.pp-store-edit{grid-template-columns:1fr 110px auto}}.pp-kpi .n.soon{color:#8a5a00}.pp-kpi .n.ship{color:var(--s-dev)}.pp-inv-chip{font-size:11.5px;padding:1px 8px;border-radius:999px;white-space:nowrap;font-weight:500}.pp-inv-chip.low{background:#f8e1de;color:var(--danger)}.pp-inv-chip.ok{background:var(--s-prog-bg);color:var(--s-prog)}.pp-inv-chip.ship{background:var(--s-dev-bg);color:var(--s-dev)}.pp-exp small{color:var(--muted);font-weight:400;margin-left:2px}.pp-exp.soon{color:#8a5a00;font-weight:500}.pp-exp.expired{color:var(--danger);font-weight:700}.pp-late{font-size:11px;color:#fff;background:var(--danger);border-radius:4px;padding:0 5px;margin-left:4px;white-space:nowrap}.pp-loc-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-top:14px}.pp-loc-tab{border:1px solid var(--line);background:#fff;border-radius:999px;padding:5px 12px;cursor:pointer;font-size:13px;display:inline-flex;align-items:center;gap:4px}.pp-loc-tab small{color:var(--muted);font-size:11px}.pp-loc-tab.on{background:var(--green);border-color:var(--green);color:#fff}.pp-loc-tab.on small{color:#e7ebdf}.pp-dot-n{min-width:18px;height:18px;border-radius:9px;background:var(--danger);color:#fff;font-size:11px;line-height:18px;text-align:center;padding:0 5px}.pp-loc-qty{display:inline-block;border:0;font-size:12.5px;padding:1px 8px;margin:2px 4px 2px 0;border-radius:6px;background:var(--bg);cursor:pointer;white-space:nowrap}.pp-loc-qty:hover{background:var(--green-soft)}.pp-loc-qty.low{background:#f8e1de;color:var(--danger)}.pp-safety-btn{border:1px dashed var(--line);background:none;border-radius:6px;padding:1px 8px;cursor:pointer;white-space:nowrap}.pp-safety-btn:hover{border-color:var(--green);color:var(--green-dark)}.pp-pick-list{display:flex;flex-direction:column;gap:8px;margin-top:14px}.pp-pick-list .pp-btn{text-align:left}.pp-tr-row{display:grid;grid-template-columns:1fr 110px auto;gap:8px;align-items:center;margin-top:8px}.pp-lot-row{display:grid;grid-template-columns:150px 90px 1fr auto;gap:8px;align-items:center;margin-top:8px}.pp-lot-row.with-sku{grid-template-columns:1.4fr 140px 80px 1fr auto}.pp-lot-row .pp-input{padding:7px 9px;min-width:0}.pp-lot-head{font-size:12px;color:var(--muted);margin-top:0}.pp-lot-head span:last-child{width:30px}@media(max-width:640px){.pp-lot-row,.pp-lot-row.with-sku{grid-template-columns:1fr 1fr}.pp-lot-head{display:none}}.pp-ro{font-size:11px;background:#ecedea;color:var(--muted);border-radius:4px;padding:0 6px;margin-left:6px;vertical-align:1px}.pp-lang{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:#fff;flex:none}.pp-lang button{border:0;background:none;padding:3px 10px;font-size:12px;cursor:pointer;color:var(--muted)}.pp-lang button.on{background:var(--green);color:#fff}.pp-auth{position:relative}.pp-auth .pp-lang{position:absolute;top:16px;right:16px}.pp-meet{display:flex;gap:14px;align-items:flex-start;padding:12px 4px;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}.pp-meet:last-child{border-bottom:0}.pp-meet:hover{background:var(--green-soft)}.pp-meet-date{font-variant-numeric:tabular-nums;color:var(--green-dark);font-weight:600;white-space:nowrap}.pp-meet-main{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.pp-meet-body{white-space:pre-wrap;margin-top:10px;line-height:1.7;font-size:14px}.pp-meet-en{margin-top:12px;border-top:1px dashed var(--line);padding-top:8px}.pp-meet-en summary{cursor:pointer;color:var(--muted);font-size:13px}#f_content,#f_content_en{min-height:220px}@media(max-width:640px){.pp-meet{flex-direction:column;gap:4px}}.pp-qa-bar{background:#f7e2b5;color:#5a3b00;font-size:13px;padding:8px 16px;display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}.pp-qa-acts{display:flex;gap:6px;flex:none}.pp-qa-roles{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.pp-qa-role{text-align:left;border:1.5px solid var(--line);border-radius:12px;background:#fff;padding:12px 14px;cursor:pointer;display:flex;flex-direction:column;gap:4px;font:inherit;color:inherit}.pp-qa-role b{color:var(--green-dark);font-size:15px}.pp-qa-role span{color:var(--muted);font-size:12.5px;line-height:1.5}.pp-qa-role.on{border-color:var(--green);background:var(--green-soft)}.pp-dept-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.pp-mini-select{width:auto;min-width:96px;padding:3px 6px;font-size:12.5px}.pp-owner-input{width:130px}.pp-owner-tag{display:block;margin-top:3px;font-size:12px;color:var(--muted);white-space:nowrap}.pp-overdue{color:var(--danger, #B3261E);font-weight:600}@media(pointer:coarse){.pp input,.pp select,.pp textarea{font-size:16px}}.pp-freeze2 th:nth-child(-n+2),.pp-freeze2 td:nth-child(-n+2){position:sticky;z-index:1;background:var(--card)}.pp-freeze2 th:nth-child(-n+2){background:#fafbf8}.pp-freeze2 th:nth-child(1),.pp-freeze2 td:nth-child(1){left:0;width:76px;min-width:76px;max-width:76px}.pp-freeze2 th:nth-child(2),.pp-freeze2 td:nth-child(2){left:76px;box-shadow:inset -1px 0 0 var(--line)}@media(max-width:640px){.pp-freeze2 th:nth-child(1),.pp-freeze2 td:nth-child(1){width:64px;min-width:64px;max-width:64px;padding-left:8px;padding-right:6px;font-size:12px}.pp-freeze2 th:nth-child(2),.pp-freeze2 td:nth-child(2){left:64px;min-width:120px!important;max-width:140px}}.pp-home-grid{display:grid;grid-template-columns:3fr 2fr;gap:16px;margin-top:16px;align-items:start}.pp-home-grid>*{min-width:0}.pp-home-grid>.pp-card{margin-top:0!important}.pp-notice{padding:10px 0;border-bottom:1px solid var(--line)}.pp-notice:last-of-type{border-bottom:0}.pp-notice-head{display:flex;gap:8px;align-items:baseline}.pp-notice-head .pp-acts{margin-left:auto}.pp-notice-date{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums;flex:none}.pp-notice p{margin:4px 0 2px;white-space:pre-wrap;font-size:13.5px;line-height:1.6}.pp-notice-markets{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:4px 12px;margin:6px 0 0 22px}@media(max-width:900px){.pp-home-grid{grid-template-columns:1fr}.pp-home-grid .pp-notices{order:-1}}.pp-modal .pp-field>.pp-chk,.pp-notice-markets .pp-chk{display:flex;color:var(--text);font-size:13.5px;margin-top:4px}.pp-field-hint{display:block;margin-top:5px;font-size:12px;line-height:1.5;color:var(--muted)}.pp-perm-legend{display:flex;flex-wrap:wrap;gap:14px;margin:12px 0 8px;font-size:12.5px;color:var(--muted)}.pp-perm-table th:not(:first-child),.pp-perm-table td.pp-perm{text-align:center;min-width:92px}.pp-perm-table td:first-child{min-width:200px}.pp-perm span{font-size:15px}.pp-perm small{display:block;font-size:11px;color:var(--muted);line-height:1.35;margin-top:2px}.pp-perm.none span{color:var(--muted)}.pp-perm.edit{background:#6c7d5014}.pp-perm-group td{background:var(--bg);font-weight:600;font-size:12.5px;color:var(--muted)}.pp-perm-desc{display:grid;gap:8px}.pp-perm-desc>div{display:grid;grid-template-columns:110px 1fr;gap:10px;font-size:13.5px;line-height:1.55}@media(max-width:600px){.pp-perm-desc>div{grid-template-columns:1fr;gap:2px}}.pp-perm-table tr:not(.pp-perm-group)>:first-child{position:sticky;left:0;z-index:1;background:var(--card);box-shadow:1px 0 0 var(--line)}@media(max-width:600px){.pp-perm-table td:first-child{min-width:130px;max-width:150px}}.pp-perm-group span{position:sticky;left:14px}.pp-merge-bar{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;justify-content:space-between}.pp-adopt-list{display:grid;gap:8px}.pp-adopt-item{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;padding:10px 12px;border:1px solid var(--line);border-radius:10px}.pp-adopt-item .pp-btn{flex-shrink:0}.pp-adopt-meta{display:flex;gap:8px;align-items:center;margin:4px 0 2px}:root{--bg: #faf6ef;--card-bg: #ffffff;--primary: #5b7a52;--primary-dark: #46603f;--text: #33301f;--muted: #8f8a5c;--border: #e2e0c9;--danger: #c0524a;--ok: #2f8f5b}*{box-sizing:border-box}html,body{margin:0;font-family:PingFang TC,Microsoft JhengHei,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--text)}.center-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{background:var(--card-bg);border:1px solid var(--border);border-radius:16px;padding:40px 36px;max-width:380px;width:100%;text-align:center;box-shadow:0 8px 24px #3d2b1f14}.login-card h1{font-size:18px;margin:0 0 6px}.login-card p{font-size:13px;color:var(--muted);margin:0 0 24px;line-height:1.6}.google-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:11px 16px;border-radius:8px;border:1px solid var(--border);background:#fff;color:var(--text);font-size:14px;font-weight:600;cursor:pointer}.google-btn:hover{background:#f9f5ef}.topbar{background:var(--card-bg);border-bottom:1px solid var(--border);padding:14px 24px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}.topbar h1{font-size:16px;margin:0;font-weight:700}.topbar .who{font-size:12px;color:var(--muted)}.topbar .who strong{color:var(--text)}main{max-width:760px;margin:0 auto;padding:24px}.form-card{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:24px;margin-bottom:20px}.section-head{background:var(--primary);color:#fff;font-weight:700;font-size:13px;padding:8px 14px;border-radius:8px;margin-bottom:14px}.sub-head{color:var(--primary);font-weight:700;font-size:13px;margin:0 0 10px}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:14px}.field label{font-size:12px;color:var(--muted);font-weight:600}.field label .req{color:var(--danger)}.field input,.field select,.field textarea{padding:9px 10px;border:1px solid var(--border);border-radius:8px;font-size:13px;font-family:inherit;width:100%}.field input[disabled]{background:#f7f2ea;color:var(--muted)}.field textarea{resize:vertical;min-height:70px}.field .hint{font-size:11px;color:var(--muted)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.checkbox-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-bottom:6px}.checkbox-item{display:flex;align-items:flex-start;gap:8px;font-size:13px;cursor:pointer}.checkbox-item input{margin-top:2px}.btn{padding:10px 20px;border-radius:8px;border:none;font-size:14px;font-weight:600;cursor:pointer}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-text{background:none;border:none;color:var(--muted);font-size:12px;cursor:pointer;text-decoration:underline}.success-card{text-align:center;padding:48px 24px}.success-card .icon{font-size:40px;margin-bottom:12px}.success-card h2{margin:0 0 8px}.success-card p{color:var(--muted);font-size:13px}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--text);color:#fff;padding:10px 20px;border-radius:8px;font-size:13px;opacity:0;pointer-events:none;transition:opacity .2s;max-width:90vw;text-align:center}.toast.show{opacity:1}.admin-tabs{display:flex;gap:4px;margin-bottom:16px;border-bottom:1px solid var(--border)}.admin-tab{background:none;border:none;cursor:pointer;padding:8px 4px;margin-right:20px;font-size:14px;color:var(--muted);font-weight:600;border-bottom:2px solid transparent;font-family:inherit}.admin-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.admin-table{width:100%;border-collapse:collapse;font-size:13px}.admin-table th,.admin-table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border);white-space:nowrap}.admin-table th{color:var(--muted);font-size:11px;font-weight:600}.admin-table td:nth-child(4){white-space:normal;max-width:200px}.admin-detail{background:var(--bg);border-radius:8px;padding:16px;white-space:normal}.status-pill{font-size:11px;padding:3px 9px;border-radius:999px;font-weight:600}.status-pending{background:#f3f0df;color:var(--muted)}.status-approved{background:#e3ecdc;color:var(--ok)}.status-rejected{background:#f6e0dc;color:var(--danger)}
