:root{--warn-ink:#8a4b00}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--warn-ink:#ffc24d}}:root[data-theme=dark]{--warn-ink:#ffc24d}.planner .top a.brand{color:var(--ink);text-decoration:none}.planner .top-r .btn{align-items:center;min-height:44px;text-decoration:none;display:inline-flex}.planner h1{font-family:var(--f-head);letter-spacing:-.02em;margin:0 0 6px;font-size:clamp(1.5rem,4.6vw,2.1rem);line-height:1.15}.planner h1:focus{outline:none}.planner h2{margin:0;font-size:1.15rem}.pl-grid{grid-template-columns:minmax(0,360px) minmax(0,1fr);align-items:start;gap:20px;display:grid}@media (max-width:900px){.pl-grid{grid-template-columns:1fr}}.r3{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.check{cursor:pointer;align-items:center;gap:10px;min-height:44px;font-weight:500;display:flex}.check input{width:20px;height:20px;accent-color:var(--btn)}.pl-stats{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px;display:grid}.pl-stats div{background:var(--tint);border-radius:10px;min-width:0;padding:8px 10px}.pl-stats span{color:var(--sub);font-size:.74rem;display:block}.pl-stats b{font-size:.98rem}.pl-head{flex-wrap:wrap;margin-bottom:10px}.pl-tools{flex-wrap:wrap;align-items:center;gap:10px;min-height:44px;margin-bottom:10px;display:flex}.pl-3dtools{flex-wrap:wrap;flex:1;align-items:center;gap:12px;min-width:0;display:flex}.pl-3dtools input[type=range]{min-width:120px;min-height:44px;accent-color:var(--btn);flex:160px}.shield{border:1px solid var(--line);background:var(--card);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border-radius:12px;position:relative;overflow:hidden}.shield canvas{touch-action:pan-y;image-rendering:auto;width:100%;height:auto;display:block}.shield.is-hidden canvas{visibility:hidden}.shield-cover{background:var(--card);color:var(--ink);font:inherit;text-align:center;cursor:pointer;border:0;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:20px;display:flex;position:absolute;inset:0}.shield-cover b{font-family:var(--f-head);font-size:1.1rem}.shield-cover span{color:var(--sub);max-width:40ch;font-size:.9rem}.pl-warn{color:var(--warn-ink);margin:10px 0 0;padding-left:20px;font-size:.88rem}.pl-warn:empty{display:none}.pl-key{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.pl-key .tag{color:#1d2b2f;background:#eef1f4;border-radius:8px;padding:3px 9px;font-size:.78rem;display:inline-block}.k-living{background:#d4e9e4!important}.k-dining{background:#e4efd9!important}.k-kitchen{background:#f5e5c9!important}.k-bedroom,.k-master{background:#dce5f8!important}.k-bath,.k-ensuite,.k-wc{background:#d7edf3!important}.k-stairs{background:#e6e1ea!important}.k-lounge{background:#f3e0d9!important}.k-study{background:#eadff3!important}.k-entry,.k-utility{background:#ece7df!important}.pl-buy{border-color:var(--amber);border-width:2px;margin-top:20px}.pl-buy-in{grid-template-columns:minmax(0,1fr) 260px;align-items:center;gap:20px;display:grid}@media (max-width:700px){.pl-buy-in{grid-template-columns:1fr}}.pl-list{margin:10px 0;padding-left:20px}.pl-list li{margin:4px 0}.pl-pay{text-align:center}.pl-pay .btn{width:100%}.pl-cur{text-align:left;margin-bottom:10px}.pl-price{font-family:var(--f-head);margin-bottom:8px;font-size:2.2rem;font-weight:700}.pl-paid{margin-top:20px}.pl-sheet{border:1px solid var(--line);background:#fff;border-radius:12px;margin-top:14px;overflow:auto}.pl-sheet img{width:100%;min-width:900px;height:auto;display:block}.pl-note{color:var(--sub);margin-top:20px;font-size:.9rem}.pl-note b{color:var(--ink)}@media print{.shield,.pl-buy,.pl-form{display:none!important}}.pl-grid>.card+.card{margin-top:0}.pl-int{margin-top:-2px}.pl-int .check{min-height:44px}.pl-inline{flex-direction:column;align-items:flex-start;gap:2px;margin:0;display:flex}.pl-inline label{white-space:nowrap;margin:0}.pl-inline .inp{min-width:0}.pl-inline select{min-height:44px}.shield.is-stale canvas,.pl-stats.is-stale{opacity:.6;filter:grayscale()}.pl-stale{color:var(--warn-ink);margin:6px 0 0;font-size:.88rem;font-weight:600}.pl-curhint{text-align:left;margin:-4px 0 10px}.pl-other{align-items:center;margin-top:10px}.pl-other .hint{margin:0}.planner #cv.pick{cursor:pointer}.planner #cv.turn{cursor:grab}
