/* Project views share records, hierarchy and filters. No global component overrides. */
.ph-hub,.ph-space{--ph-ink:#21392e;--ph-muted:#5c6962;color:var(--ph-ink);padding-bottom:8px}
.ph-heading{margin:0 0 18px}
.ph-heading>span,.ph-kicker{display:block;color:var(--ph-muted);font-size:12px;line-height:1.8}
.ph-heading h1{font-size:25px;line-height:1.5;font-weight:650;letter-spacing:-.3px;margin:4px 0}
.ph-heading p{font-size:13px;line-height:1.8;color:var(--ph-muted)}
.ph-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;padding:4px;background:#e8ede6;border:1px solid #e0e6dc;border-radius:13px;margin:0 0 23px}
.ph-tabs>button{min-height:44px;text-align:center;padding:8px 3px;border-radius:9px;font-size:14px;line-height:1.5;color:var(--ph-muted);font-weight:500}
.ph-tabs>button[aria-pressed=true]{background:#fff;color:var(--green);box-shadow:0 1px 4px #233f2e12;font-weight:650}
.ph-hub button:focus-visible,.ph-space button:focus-visible,.ph-hub select:focus-visible,.ph-space select:focus-visible,.ph-hub summary:focus-visible,.ph-space summary:focus-visible{outline:3px solid #3e8058;outline-offset:3px}
.ph-view{min-width:0}
.ph-section{margin-top:25px}
.ph-section:first-child{margin-top:0}
.ph-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 11px;min-height:32px}
.ph-section-head h2{font-size:18px;line-height:1.6;font-weight:650;margin:0}
.ph-section-head>span{font-size:12px;color:var(--ph-muted)}
.ph-text-link{display:inline-flex;align-items:center;gap:3px;min-height:44px;font-size:13px;line-height:1.6;padding:7px 0;color:var(--green);white-space:normal}
.ph-text-link>svg{width:13px;height:13px}
.ph-section-description,.ph-footnote{font-size:12px;line-height:1.9;color:var(--ph-muted);margin:0 0 12px}
.ph-footnote{margin:14px 0 0}
.ph-card{background:white;border:1px solid var(--line);border-radius:16px;overflow:hidden}
.ph-card-pad{padding:16px}
.ph-delivery{border:1px solid #d1dfd1;border-radius:16px;padding:18px;background:#e9f0e7}
.ph-delivery-top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.ph-delivery-top .ph-kicker{color:#4d6955}
.ph-date-large{display:block;font-size:29px;line-height:1.5;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.5px;color:var(--green);margin:2px 0}
.ph-delivery-status{display:inline-flex;align-items:center;gap:5px;border:1px solid #ccd9c9;background:#f6f9f3;padding:4px 8px;border-radius:7px;font-size:12px;line-height:1.6;color:var(--green)}
.ph-delivery-status.is-attention{color:#85531b;border-color:#decba9;background:#f9f3e7}
.ph-delivery-original{font-size:12px;line-height:1.8;color:#526957;margin:5px 0 0}
.ph-delivery-phase{border-top:1px solid #d2dfcf;display:flex;align-items:flex-start;gap:10px;margin-top:15px;padding-top:13px;font-size:13px;line-height:1.85}
.ph-delivery-phase>svg{margin-top:3px;width:17px;height:17px;color:var(--green)}
.ph-delivery-phase>span{min-width:0}
.ph-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:16px 0 0;gap:0;background:white;border:1px solid var(--line);border-radius:13px;padding:13px 3px}
.ph-stat-grid>button{display:flex;flex-direction:column;align-items:center;gap:3px;min-height:56px;text-align:center;padding:0 5px;min-width:0}
.ph-stat-grid>button+button{border-left:1px solid var(--line)}
.ph-stat-grid strong{display:block;font-size:21px;font-weight:600;line-height:1.5;font-variant-numeric:tabular-nums;color:var(--green)}
.ph-stat-grid span{display:block;font-size:12px;color:var(--ph-muted);line-height:1.7}
.ph-stat-grid .is-attention strong{color:#85531b}
.ph-list{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}
.ph-row{display:flex;align-items:center;gap:12px;width:100%;min-height:70px;padding:14px 15px;text-align:left;border-radius:0;background:#fff}
.ph-row+.ph-row,.ph-list>.ph-row+.ph-row,.ph-list>.ph-row+.ph-more,.ph-list>.ph-more{border-top:1px solid var(--line)}
.ph-row>svg:last-child{width:14px;height:14px;color:#829187;flex-shrink:0}
.ph-row:hover,.ph-row:active{background:#f7f9f5}
.ph-row-copy{display:block;flex:1;min-width:0}
.ph-row-copy>strong,.ph-row-copy>span,.ph-row-copy>small{display:block}
.ph-row-copy>strong{font-size:14px;font-weight:600;line-height:1.75}
.ph-row-copy>small{font-size:12px;line-height:1.8;color:var(--ph-muted);margin-top:3px}
.ph-row-copy>span{font-size:13px;line-height:1.85;color:#465a4e;margin-top:6px}
.ph-row-icon{flex-shrink:0;display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--green-soft);color:var(--green)}
.ph-row-icon>svg{width:19px;height:19px}
.ph-row-icon.is-attention{background:#f7edda;color:#85531b}
.ph-status{display:inline-flex;max-width:100%;font-size:12px;line-height:1.65;color:var(--ph-muted);background:#f0f3ed;padding:3px 7px;border-radius:5px}
.ph-status.is-live,.ph-status.is-done{background:#eaf3eb;color:var(--green)}
.ph-status.is-attention{background:#f9f0df;color:#85531b}
.ph-row-status{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:4px 0}
.ph-row-status small{font-size:12px;color:var(--ph-muted)}
.ph-more>summary{min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 15px;list-style:none;color:var(--green);font-size:13px;cursor:pointer}
.ph-more>summary::-webkit-details-marker{display:none}
.ph-more>summary>svg{width:13px;height:13px;transform:rotate(90deg)}
.ph-more[open]>summary>svg{transform:rotate(-90deg)}
.ph-more[open]>.ph-more-list{border-top:1px solid var(--line)}
.ph-next-card{border-left:3px solid #96b29a}
.ph-next-card .ph-row-copy>strong{font-size:15px}
.ph-next-label{font-size:12px;color:var(--green);display:block;line-height:1.8;margin-bottom:4px}
.ph-scope-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:-5px 0 17px;min-width:0}
.ph-scope-trigger{display:inline-flex;align-items:center;gap:8px;min-height:44px;max-width:100%;min-width:0;padding:8px 12px;border:1px solid #dce4d8;border-radius:24px;background:#fff;color:var(--ph-ink);font-size:13px;line-height:1.65;text-align:left;transition:background .16s,border-color .16s}
.ph-scope-trigger>svg{width:17px;height:17px;color:var(--green)}
.ph-scope-trigger>span:not(.ph-scope-chevron){min-width:0;overflow-wrap:anywhere}
.ph-scope-trigger.is-filtered{border-color:#b7ceb9;background:#edf4e9;color:var(--green)}
.ph-scope-trigger:hover{background:#f0f5ec;border-color:#b7ceb9}
.ph-scope-chevron{display:flex;align-items:center;color:#6a7a6e}
.ph-scope-chevron>svg{width:13px;height:13px;transform:rotate(90deg)}
.ph-scope-hint{flex-shrink:0;font-size:11px;line-height:1.7;color:var(--ph-muted);padding-right:2px}
.ph-scope-reset{flex-shrink:0;min-width:44px;min-height:44px;padding:8px 0 8px 8px;color:var(--green);font-size:12px;text-align:right}
#app-dialog.ph-scope-dialog{--ph-ink:#21392e;--ph-muted:#5c6962;position:fixed;inset:auto auto var(--ph-sheet-bottom,0px) var(--ph-sheet-left,0px);margin:0;width:var(--ph-sheet-width,100vw);max-width:100vw;max-height:min(680px,var(--ph-sheet-height,calc(100dvh - 16px)));padding:0;border:0;border-radius:24px 24px 0 0;background:#fafbf7;color:var(--ph-ink);overflow:hidden;box-shadow:0 -8px 40px #122d231a}
#app-dialog.ph-scope-dialog[open]{display:flex;flex-direction:column;animation:ph-scope-enter .18s ease-out}
.ph-scope-handle{width:34px;height:4px;margin:11px auto 3px;border-radius:4px;background:#d5ded1;flex-shrink:0}
.ph-scope-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 20px 19px;flex-shrink:0}
.ph-scope-header h2{font-size:20px;font-weight:650;line-height:1.5;margin:0}
.ph-scope-header p{font-size:12px;line-height:1.8;color:var(--ph-muted);margin:5px 0 0}
.ph-scope-close{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;margin:-4px -8px 0 0;padding:10px;border-radius:50%;color:var(--ph-muted)}
.ph-scope-close:hover{background:#eaf0e6}
.ph-scope-close>svg{width:20px;height:20px}
.ph-scope-body{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:2px 20px max(24px,env(safe-area-inset-bottom));scroll-padding-block:8px;scrollbar-width:thin;scrollbar-color:#bfcdbb transparent}
.ph-scope-quick{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 25px}
.ph-scope-choice{position:relative;display:flex;align-items:center;gap:8px;min-width:0;min-height:44px;padding:13px 11px;border:1px solid #dce4d8;border-radius:12px;background:#fff;color:var(--ph-ink);text-align:left;transition:background .16s,border-color .16s,color .16s}
.ph-scope-quick>.ph-scope-choice{align-items:flex-start;flex-wrap:wrap;column-gap:6px;row-gap:7px;padding:13px 12px}
.ph-scope-choice-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0;color:var(--green)}
.ph-scope-choice-icon>svg{width:19px;height:19px}
.ph-scope-choice-copy{display:block;flex:1;min-width:0;overflow-wrap:anywhere}
.ph-scope-choice-copy>strong{display:block;font-size:13px;font-weight:600;line-height:1.7}
.ph-scope-choice-copy>small{display:block;margin-top:4px;font-size:11px;line-height:1.7;color:var(--ph-muted);font-weight:400}
.ph-scope-quick .ph-scope-choice-copy{flex-basis:calc(100% - 26px)}
.ph-scope-quick .ph-scope-choice-copy>strong{padding-right:15px}
.ph-scope-quick .ph-scope-check{position:absolute;right:9px;top:15px}
.ph-scope-check{display:grid;place-items:center;width:17px;height:17px;flex-shrink:0;color:var(--green);visibility:hidden}
.ph-scope-check>svg{width:16px;height:16px;stroke-width:2.3}
.ph-scope-choice[aria-pressed=true]{background:#e7f0e2;border-color:#86ac8b;color:var(--green)}
.ph-scope-choice[aria-pressed=true]>.ph-scope-check,.ph-scope-zone-all[aria-pressed=true]>.ph-scope-check{visibility:visible}
.ph-scope-choice:hover{background:#f0f5ec;border-color:#b7ceb9}
.ph-scope-choice[aria-pressed=true]:hover{background:#e3eddd;border-color:#86ac8b}
.ph-scope-group+.ph-scope-group{margin-top:23px;padding-top:15px;border-top:1px solid #e1e7dc}
.ph-scope-group-head{display:flex;align-items:center;justify-content:space-between;gap:9px;min-height:44px;margin:-8px 0 8px}
.ph-scope-group-head h3{min-width:0;overflow-wrap:anywhere;font-size:14px;font-weight:600;line-height:1.7}
.ph-scope-group-head h3>small{margin-left:8px;font-size:11px;white-space:nowrap;color:var(--ph-muted);font-weight:400}
.ph-scope-zone-all{display:inline-flex;align-items:center;gap:4px;flex-shrink:0;min-height:44px;padding:7px 0 7px 8px;font-size:12px;line-height:1.7;color:var(--green);text-align:right}
.ph-scope-zone-all>.ph-scope-check{width:14px}
.ph-scope-zone-all[aria-pressed=true]{font-weight:600}
.ph-scope-room-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.ph-scope-room-choice{justify-content:center;min-height:49px;padding:11px 8px;gap:3px;text-align:center;border-radius:10px}
.ph-scope-room-choice .ph-scope-choice-copy>strong{font-size:12px;font-weight:500}
.ph-scope-room-choice>.ph-scope-check{position:absolute;right:4px;top:4px;width:12px;height:12px}
.ph-scope-room-choice>.ph-scope-check>svg{width:11px;height:11px}
.ph-scope-room-choice[aria-pressed=true] .ph-scope-choice-copy>strong{font-weight:650}
.ph-scope-zone-list{display:flex;flex-direction:column;gap:9px}
.ph-scope-zone-list+.ph-scope-zone-list{margin-top:12px}
.ph-scope-zone-choice{padding:13px 14px;gap:11px}
.ph-scope-zone-choice .ph-scope-choice-copy>small{margin-top:2px}
.ph-scope-empty{font-size:12px;line-height:1.8;color:var(--ph-muted);padding:10px 0 2px}
#app-dialog.ph-scope-dialog button:focus-visible{outline:3px solid #3e8058;outline-offset:2px}
@keyframes ph-scope-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:360px){.ph-scope-header{padding-left:16px;padding-right:16px}.ph-scope-body{padding-left:16px;padding-right:16px}.ph-scope-quick{gap:8px}.ph-scope-quick>.ph-scope-choice{padding:12px 9px}.ph-scope-choice-copy>strong{font-size:12px}.ph-scope-room-grid{gap:7px}.ph-scope-room-choice{padding:11px 6px}.ph-scope-hint{font-size:11px}}
@media(prefers-reduced-motion:reduce){#app-dialog.ph-scope-dialog[open]{animation:none}.ph-scope-choice,.ph-scope-trigger{transition:none}}
.ph-scope-line{font-size:12px;color:var(--ph-muted);line-height:1.85;margin:-3px 0 14px}
.ph-spaces-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.ph-room{display:block;width:100%;padding:0;text-align:left;border-radius:14px;overflow:hidden;background:#fff;border:1px solid var(--line);min-width:0}
.ph-room-picture{display:block;aspect-ratio:4/3;position:relative;background:#e9eee5;overflow:hidden}
.ph-room-picture>img{width:100%;height:100%;object-fit:cover}
.ph-picture-label{position:absolute;bottom:7px;left:7px;border-radius:4px;background:#fffdf5ed;font-size:11px;line-height:1.6;padding:2px 5px;color:#345741}
.ph-room-placeholder{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;width:100%;height:100%;color:#687969;font-size:12px}
.ph-room-placeholder>svg{width:26px;height:26px}
.ph-room-body{display:block;padding:11px 11px 12px}
.ph-room-title{display:flex;gap:5px;align-items:center;justify-content:space-between}
.ph-room-title>strong{font-size:15px;line-height:1.7;font-weight:600}
.ph-room-title>svg{width:13px;height:13px;color:#829187}
.ph-room-meta{display:block;font-size:11px;line-height:1.8;color:var(--ph-muted);margin-top:2px}
.ph-room-stage{display:block;font-size:12px;line-height:1.8;color:#405e49;margin-top:8px}
.ph-room-alert{display:block;font-size:11px;line-height:1.75;color:#85531b;margin-top:4px}
.ph-public{margin-top:18px}
.ph-public>.ph-row{background:#f0f3ec;border:1px solid #dae3d5;border-radius:14px}
.ph-public .ph-row-icon{background:#e1eadb}
.ph-public .ph-row-copy>small{max-width:245px}
.ph-inline-summary{font-size:12px;color:var(--ph-muted);line-height:1.85;margin-bottom:12px}
.ph-stage-list{list-style:none;margin:0;padding:4px 15px}
.ph-stage-list>li{position:relative}
.ph-stage-list>li+li{border-top:1px solid #edf0e9}
.ph-stage-row{width:100%;display:flex;gap:11px;align-items:flex-start;min-height:77px;padding:15px 0;text-align:left}
.ph-stage-node{width:23px;height:23px;display:grid;place-items:center;flex-shrink:0;border:1px solid #cbd6c7;border-radius:50%;font-size:11px;line-height:1;color:#63745f;background:white;margin-top:2px}
.ph-stage-node>svg{width:14px;height:14px}
.ph-stage-row.is-done .ph-stage-node{background:var(--green);color:white;border-color:var(--green)}
.ph-stage-row.is-live .ph-stage-node{border:2px solid var(--green);color:var(--green)}
.ph-stage-row.is-attention .ph-stage-node{color:#85531b;background:#fcf5e7;border-color:#ceb78e}
.ph-stage-copy{flex:1;min-width:0}
.ph-stage-copy strong{display:block;font-size:14px;line-height:1.7;font-weight:600}
.ph-stage-copy small{display:block;font-size:12px;line-height:1.8;color:var(--ph-muted);margin-top:3px}
.ph-stage-copy em{font-style:normal;display:block;font-size:12px;line-height:1.8;color:#85531b;margin-top:4px}
.ph-stage-row>.ph-status{flex-shrink:0;max-width:80px;margin-top:1px;text-align:right;background:transparent;padding:1px 0}
.ph-flow>summary{display:flex;align-items:center;gap:10px;padding:14px 15px;min-height:70px;list-style:none;cursor:pointer}
.ph-flow>summary::-webkit-details-marker{display:none}
.ph-flow>summary>span{flex:1;min-width:0}
.ph-flow>summary strong{display:block;font-size:14px;line-height:1.7}
.ph-flow>summary small{display:block;font-size:12px;color:var(--ph-muted);line-height:1.8;margin-top:2px}
.ph-flow>summary>svg{width:14px;height:14px;transform:rotate(90deg);color:var(--ph-muted)}
.ph-flow[open]>summary>svg{transform:rotate(-90deg)}
.ph-flow[open]>summary{border-bottom:1px solid var(--line)}
.ph-flow+.ph-flow{border-top:1px solid var(--line)}
.ph-quality-counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin:0 0 17px;padding:4px;border:1px solid var(--line);border-radius:12px;background:white}
.ph-quality-counts>button{display:flex;flex-direction:column;align-items:center;gap:3px;min-height:66px;padding:8px 2px;border-radius:8px;text-align:center;min-width:0}
.ph-quality-counts>button[aria-pressed=true]{background:#eaf2e8;color:var(--green)}
.ph-quality-counts strong{font-size:20px;line-height:1.5;font-weight:600;font-variant-numeric:tabular-nums}
.ph-quality-counts span{font-size:11px;line-height:1.7;color:var(--ph-muted)}
.ph-quality-counts>button[aria-pressed=true] span{color:var(--green)}
.ph-quality-item{padding:15px}
.ph-quality-item+.ph-quality-item{border-top:1px solid var(--line)}
.ph-quality-item>.ph-row-copy>strong{font-size:15px}
.ph-quality-next{font-size:13px;line-height:1.85;color:#465a4e;display:block;margin-top:8px}
.ph-quality-meta{font-size:12px;line-height:1.85;color:var(--ph-muted);display:block;margin-top:8px}
.ph-empty{padding:24px 17px;background:#fff;border:1px solid var(--line);border-radius:14px}
.ph-empty>svg{display:block;width:24px;height:24px;color:#8b9e88;margin-bottom:10px}
.ph-empty strong{display:block;font-size:15px;line-height:1.8;font-weight:600}
.ph-empty p{font-size:13px;line-height:1.85;color:var(--ph-muted);margin-top:6px}
.ph-cost-hero{padding:18px;background:white;border:1px solid var(--line);border-radius:16px}
.ph-amount-large{display:block;font-size:28px;line-height:1.5;letter-spacing:-.6px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--green);margin:4px 0}
.ph-cost-hero>p{font-size:12px;line-height:1.9;color:var(--ph-muted);margin-top:7px}
.ph-money-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;border-top:1px solid var(--line);padding-top:13px;margin-top:15px}
.ph-money-grid small{display:block;font-size:12px;line-height:1.8;color:var(--ph-muted)}
.ph-money-grid strong{display:block;font-size:17px;line-height:1.65;font-weight:600;overflow-wrap:anywhere;font-variant-numeric:tabular-nums;margin-top:3px}
.ph-cost-change{color:#85531b!important}
.ph-cost-table{width:100%;border-collapse:collapse;font-size:13px;line-height:1.8}
.ph-cost-table caption{text-align:left;padding:14px 15px 10px;font-weight:600;font-size:14px}
.ph-cost-table th{font-size:11px;color:var(--ph-muted);font-weight:400;padding:8px 10px;background:#f5f7f1;text-align:right;white-space:nowrap}
.ph-cost-table th:first-child{text-align:left;padding-left:15px}
.ph-cost-table td{padding:11px 10px;text-align:right;border-top:1px solid #e9ede5;font-variant-numeric:tabular-nums;vertical-align:middle}
.ph-cost-table td:first-child{text-align:left;padding-left:15px;width:36%}
.ph-cost-table td button{display:inline-flex;align-items:center;gap:3px;font-size:13px;color:var(--green);min-height:44px;margin:-10px 0;padding:7px 0;width:100%}
.ph-cost-table td button>svg{width:12px;height:12px}
.ph-cost-table tr.ph-cost-total>td{font-weight:600;background:#f4f7f0}
.ph-cost-table tr.ph-cost-public>td{border-top:1px solid #d3dfcd}
.ph-cost-zone{font-size:12px;line-height:1.85;color:var(--ph-muted);padding:11px 15px;border-bottom:1px solid var(--line);background:#f8f9f5}
.ph-cost-source{padding:12px 15px;border-top:1px solid var(--line);font-size:12px;line-height:1.85;color:var(--ph-muted)}
.ph-change-amount{font-size:14px;font-weight:600;line-height:1.8;white-space:nowrap;font-variant-numeric:tabular-nums;color:#85531b;align-self:flex-start;margin-top:2px}
.ph-payment-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.ph-payment-top strong{font-size:14px;font-weight:600;line-height:1.8}
.ph-payment-top b{font-size:15px;font-weight:600;line-height:1.8;white-space:nowrap}
.ph-payment{padding:14px 15px}
.ph-payment+.ph-payment{border-top:1px solid var(--line)}
.ph-payment small{display:block;font-size:12px;line-height:1.8;color:var(--ph-muted);margin-top:5px}
.ph-payment p{font-size:12px;line-height:1.85;color:var(--ph-muted);margin-top:8px}
.ph-payment .ph-status{margin-top:8px}
.ph-space-tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--line);padding:0 0 8px;margin:0 0 20px}
.ph-space-tabs>button{font-size:13px;min-height:44px;flex-shrink:0;padding:9px 12px;border-radius:9px;color:var(--ph-muted)}
.ph-space-tabs>button[aria-pressed=true]{color:var(--green);background:#e6eee2;font-weight:600}
.ph-space-media{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ph-space-photo{display:block;min-width:0;border:1px solid var(--line);background:white;border-radius:13px;overflow:hidden;padding:0;width:100%;text-align:left}
.ph-space-photo img{width:100%;aspect-ratio:4/3;object-fit:cover}
.ph-space-photo>span{display:block;padding:10px;font-size:13px;line-height:1.8;font-weight:600}
.ph-space-photo>span>small{display:block;font-size:11px;line-height:1.8;color:var(--ph-muted);font-weight:400;margin-top:2px}
.ph-space-photo-placeholder{display:flex;aspect-ratio:4/3;align-items:center;justify-content:center;flex-direction:column;gap:8px;background:#ecf0e8;font-size:12px;line-height:1.8;color:var(--ph-muted)}
.ph-space-photo-placeholder>svg{width:23px;height:23px}
.ph-space-public-intro{display:flex;align-items:flex-start;gap:12px;padding:17px;border:1px solid #d8e2d2;border-radius:15px;background:#edf2e8}
.ph-space-public-intro>svg{width:24px;height:24px;color:var(--green);margin-top:2px}
.ph-space-public-intro strong{font-size:15px;line-height:1.8;font-weight:600}
.ph-space-public-intro p{font-size:12px;line-height:1.9;color:var(--ph-muted);margin-top:4px}
.ph-material-item{padding:13px 15px}
.ph-material-item+.ph-material-item{border-top:1px solid var(--line)}
.ph-material-item>strong{display:block;font-size:14px;line-height:1.8;font-weight:600}
.ph-material-meta{font-size:12px;line-height:1.85;color:var(--ph-muted);margin-top:4px}
.ph-material-cost{display:flex;justify-content:space-between;gap:12px;font-size:13px;line-height:1.8;margin-top:7px}
.ph-material-cost>strong{font-weight:600;font-variant-numeric:tabular-nums}
.ph-footer{font-size:11px;line-height:1.85;color:var(--ph-muted);margin-top:24px;padding-top:14px;border-top:1px solid #dfe5d9}
@media(max-width:360px){.ph-tabs>button{font-size:13px}.ph-spaces-grid{gap:10px}.ph-room-body{padding:10px}.ph-room-title>strong{font-size:14px}.ph-stage-row{gap:8px}.ph-stage-row>.ph-status{font-size:11px;max-width:69px}.ph-cost-table th,.ph-cost-table td{padding-left:7px;padding-right:7px}.ph-cost-table td:first-child,.ph-cost-table th:first-child{padding-left:11px}.ph-cost-table td button{font-size:12px}.ph-amount-large{font-size:25px}.ph-money-grid strong{font-size:15px}.ph-filter-bar{gap:8px}}
@media(prefers-reduced-motion:reduce){.ph-hub *,.ph-space *{scroll-behavior:auto!important;transition:none!important}}
