:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Segoe UI,system-ui,-apple-system,Roboto,sans-serif}body{margin:0}#root{min-height:100vh}.sidebar{border-right:1px solid var(--app-line);z-index:30;background:#fff;flex-shrink:0;width:250px;height:100vh;position:sticky;top:0;overflow-y:auto}.sb-brand{height:64px;color:var(--app-ink);border-bottom:1px solid var(--app-line);align-items:center;gap:10px;padding:0 20px;font-size:17px;line-height:1.2;text-decoration:none;display:flex}.sb-logo{object-fit:cover;background:#000;border-radius:8px;flex-shrink:0;width:44px;height:44px}.sb-menu,.sb-sub{margin:0;padding:0;list-style:none}.sb-menu{padding:8px 0 24px}.sb-item,.sb-subitem{width:100%;font:inherit;text-align:left;cursor:pointer;color:var(--app-ink);background:0 0;border:0;align-items:center;gap:12px;text-decoration:none;display:flex}.sb-item{padding:12px 20px;font-size:14px;font-weight:500}.sb-item:hover{background:var(--app-blue-soft)}.sb-item.active{background:var(--app-blue);color:#fff}.sb-toggle{opacity:.8;margin-left:auto}.sb-sub{padding:4px 0 8px}.sb-subitem{color:var(--app-muted);padding:10px 20px 10px 40px;font-size:13.5px}.sb-subitem:hover{color:var(--app-blue)}.sb-subitem.current{color:var(--app-blue);background:var(--app-blue-soft);box-shadow:inset 3px 0 0 var(--app-blue);font-weight:600}.sb-count{text-align:center;color:#fff;background:#ef4444;border-radius:99px;min-width:20px;margin-left:auto;padding:4px 6px;font-size:11px;font-weight:700;line-height:1}.sidebar :focus-visible{outline:2px solid var(--app-blue);outline-offset:-2px}.sb-scrim{display:none}@media (width<=900px){.sidebar{transition:transform .2s ease-out;position:fixed;top:0;left:0;transform:translate(-100%);box-shadow:8px 0 24px #0000001f}.sidebar.is-open{transform:none}.sb-scrim{z-index:25;background:#0f172a59;display:block;position:fixed;inset:0}}.topbar{border-bottom:1px solid var(--app-line);z-index:20;background:#fff;justify-content:space-between;align-items:center;height:64px;padding:0 24px;display:flex;position:sticky;top:0}.tb-right{align-items:center;gap:14px;margin-left:auto;display:flex}.tb-company{background:#fff;border-radius:8px;min-width:180px;padding:9px 16px;font-size:13px;box-shadow:0 2px 10px #0f172a14}.tb-icon{width:38px;height:38px;color:var(--app-ink);cursor:pointer;background:#fff;border:0;border-radius:8px;place-items:center;display:grid;position:relative;box-shadow:0 2px 10px #0f172a14}.tb-menu{display:none}.tb-badge{color:#fff;background:#ef4444;border-radius:99px;padding:3px 5px;font-size:10px;font-weight:700;line-height:1;position:absolute;top:-6px;right:-6px}.tb-user{font:inherit;color:var(--app-ink);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:10px;display:flex}.tb-avatar{background:var(--app-blue-soft);width:34px;height:34px;color:var(--app-blue);border-radius:50%;place-items:center;display:grid}.tb-name b{font-size:14px;font-weight:600;display:block}.tb-name small{color:var(--app-muted);font-size:12px}.tb-pop-wrap{z-index:2;position:relative}.tb-pop{border:1px solid var(--app-line);background:#fff;border-radius:8px;min-width:260px;padding:8px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 30px #0f172a29}.tb-pop h3{color:var(--app-muted);margin:4px 8px 6px;font-size:13px;font-weight:600}.tb-pop-item{text-align:left;width:100%;font:inherit;color:var(--app-ink);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:9px 10px;font-size:14px;display:block}.tb-pop-item:hover{background:var(--app-blue-soft)}.tb-pop-item b{color:#dc2626;margin-right:4px}.tb-logout{color:#b42323;border-top:1px solid var(--app-line);border-radius:0 0 6px 6px;margin-top:4px}.tb-pop-empty{color:var(--app-muted);margin:4px 8px 8px;font-size:14px}.tb-catch{z-index:1;position:fixed;inset:0}.topbar :focus-visible{outline:2px solid var(--app-blue);outline-offset:2px}@media (width<=900px){.tb-menu{display:grid}.tb-company,.tb-name{display:none}}.page{padding:24px clamp(16px,3vw,32px) 48px}.ph{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:20px;display:flex}.ph h1{color:var(--app-ink);margin:0;font-size:24px;font-weight:600}.ph p{color:var(--app-muted);margin:4px 0 0;font-size:14px}.ph-actions{flex-wrap:wrap;gap:8px;display:flex}.btn{font:inherit;border:1px solid var(--app-blue);background:var(--app-blue);color:#fff;cursor:pointer;white-space:nowrap;border-radius:6px;padding:9px 16px;font-size:14px;font-weight:600}.btn:hover{background:#2f6fe0}.btn.ghost{color:var(--app-blue);background:#fff}.btn.ghost:hover{background:var(--app-blue-soft)}.btn.success{background:#16a34a;border-color:#16a34a}.btn.danger{background:#dc2626;border-color:#dc2626}.btn.danger-ghost{color:#dc2626;background:#fff;border-color:#f1c4c4}.btn.danger-ghost:hover{background:#fdf0f0}.btn.sm{padding:5px 10px;font-size:12.5px}.btn:disabled{opacity:.5;cursor:not-allowed}.icon-btn{color:var(--app-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:2px 6px;font-size:24px;line-height:1}.icon-btn:hover{background:var(--app-bg)}.badge{white-space:nowrap;border-radius:99px;padding:2px 9px;font-size:12px;font-weight:600;display:inline-block}.badge-blue{color:#2457c5;background:#e7efff}.badge-green{color:#157a3c;background:#e3f6ea}.badge-amber{color:#9a5b00;background:#fdf1d8}.badge-red{color:#b42323;background:#fde6e6}.badge-purple{color:#6b3fc4;background:#efe8fd}.badge-gray{color:#4b5563;background:#eef0f4}.stats{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px;margin-bottom:20px;display:grid}.stat{border:1px solid var(--app-line);border-left:4px solid var(--app-blue);background:#fff;border-radius:6px;padding:14px 16px}.stat b{color:var(--app-ink);font-variant-numeric:tabular-nums;font-size:22px;font-weight:700;display:block}.stat span{color:var(--app-ink);font-size:13.5px}.stat small{color:var(--app-muted);font-size:12px;display:block}.stat-green{border-left-color:#16a34a}.stat-amber{border-left-color:#d99a00}.stat-red{border-left-color:#dc2626}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;display:flex}.toolbar .search{flex:1;max-width:340px}.toolbar-count{color:var(--app-muted);margin-left:auto;font-size:13px}.app-shell input:not([type=checkbox]):not([type=radio]),.app-shell select,.app-shell textarea{font:inherit;color:var(--app-ink);background:#fff;border:1px solid #d5d9e2;border-radius:6px;min-width:0;padding:8px 10px;font-size:14px}.app-shell input:focus,.app-shell select:focus,.app-shell textarea:focus{outline:2px solid var(--app-blue-soft);border-color:var(--app-blue)}.app-shell :focus-visible{outline:2px solid var(--app-blue);outline-offset:2px}.tabs{border-bottom:1px solid var(--app-line);gap:4px;margin-bottom:16px;display:flex;overflow-x:auto}.tab{font:inherit;color:var(--app-muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 14px;font-size:14px}.tab.on{color:var(--app-blue);border-bottom-color:var(--app-blue);font-weight:600}.tab-count{background:var(--app-bg);color:var(--app-ink);border-radius:99px;margin-left:6px;padding:1px 7px;font-size:11.5px;display:inline-block}.dt-wrap{border:1px solid var(--app-line);background:#fff;border-radius:6px;overflow-x:auto}.dt{border-collapse:collapse;width:100%;font-size:14px}.dt th,.dt td{text-align:left;border-bottom:1px solid var(--app-line);vertical-align:middle;padding:11px 14px}.dt th{color:var(--app-muted);white-space:nowrap;background:#f9fafc;font-size:12.5px;font-weight:600}.dt tbody tr:last-child td{border-bottom:0}.dt tbody tr:hover{background:#fafbff}.dt .r{text-align:right}.dt .num{font-variant-numeric:tabular-nums;white-space:nowrap}.dt-sort{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}.dt-arrow{margin-left:4px;font-size:9px}.dt-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:inline-flex}.dt .dt-check{text-align:center;width:44px;padding-right:0}.dt .dt-check input{cursor:pointer;width:17px;height:17px;accent-color:var(--app-blue);vertical-align:middle}.dt tbody tr.dt-selected{background:var(--app-blue-soft)}.dt-bulk{border:1px solid var(--app-blue);background:#fff;border-radius:6px;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;padding:8px 12px;font-size:14px;display:flex}.dt-bulk span{margin-right:auto}.dt-empty{color:var(--app-muted);text-align:center!important;padding:32px!important}.cell-main{color:var(--app-ink);font-weight:600}.cell-sub{color:var(--app-muted);font-size:12.5px;display:block}.text-red{color:#b42323;font-weight:600}.text-amber{color:#9a5b00;font-weight:600}.text-muted{color:var(--app-muted)}.modal-scrim{z-index:100;background:#0f172a73;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:10px;width:100%;max-height:calc(100vh - 32px);overflow-y:auto;box-shadow:0 20px 50px #00000040}.modal-head{border-bottom:1px solid var(--app-line);background:#fff;justify-content:space-between;align-items:center;padding:16px 20px;display:flex;position:sticky;top:0}.modal-head h2{margin:0;font-size:18px;font-weight:600}.modal-body{padding:20px}.confirm-msg{margin:0 0 8px}.rf-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;display:grid}.rf-field{flex-direction:column;gap:5px;display:flex}.rf-field.wide{grid-column:1/-1}.rf-field label{color:var(--app-ink);font-size:13px;font-weight:600}.rf-field.has-err input,.rf-field.has-err select,.rf-field.has-err textarea{border-color:#dc2626!important}.rf-req{color:#dc2626}.rf-err{color:#b42323;font-size:12px}.rf-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.panel{border:1px solid var(--app-line);background:#fff;border-radius:6px;padding:16px 18px}.panel h2{margin:0 0 12px;font-size:16px;font-weight:600}.empty-state{text-align:center;color:var(--app-muted);background:#fff;border:1px dashed #d5d9e2;border-radius:6px;padding:40px 16px}.note{color:var(--app-muted);margin:0 0 14px;font-size:13px}@media (width<=640px){.rf-grid{grid-template-columns:1fr}}.dash{padding:24px clamp(16px,3vw,32px) 40px}.dash-title{color:var(--app-ink);margin:0 0 16px;font-size:24px;font-weight:600}.dash-hero{color:#fff;background:radial-gradient(circle at 75% 40%,#2b2f6b 0,#0000 55%),linear-gradient(100deg,#12142e 0%,#1b1d40 60%,#2a2350 100%);border-radius:6px;grid-template-columns:1fr minmax(260px,420px);align-items:center;min-height:200px;display:grid;position:relative;overflow:hidden}.dash-hero-text{padding:28px 32px}.dash-hero-text h2{color:#fff;max-width:460px;margin:0 0 8px;font-size:clamp(20px,2.2vw,26px);font-weight:600;line-height:1.3}.dash-hero-text p{color:#c7c9e8;margin:0 0 18px;font-size:14px}.dash-hero-text button{font:inherit;background:var(--app-blue);color:#fff;cursor:pointer;border:0;border-radius:6px;padding:10px 18px;font-size:14px;font-weight:600}.dash-hero-text button:hover{background:#2f6fe0}.dash-hero-art{height:100%;min-height:200px;position:relative}.hero-circle{opacity:.8;background:#3f6fe6;border-radius:50%;width:120px;height:120px;position:absolute;top:22%;left:10%}.hero-building{color:#e8ebff;stroke-width:1.2px;position:absolute;bottom:0;left:14%}.hero-card{width:190px;color:var(--app-ink);z-index:2;background:#fff;border-radius:8px;align-items:flex-start;gap:8px;padding:12px;display:flex;position:absolute;top:34px;right:24px;box-shadow:0 10px 24px #00000040}.hero-card.back{opacity:.5;z-index:1;height:70px;top:50px;right:12px}.hero-avatar{background:linear-gradient(135deg,#f5b38a,sienna);border-radius:50%;flex-shrink:0;width:28px;height:28px}.hero-lines{flex:1}.hero-lines b{margin-bottom:6px;font-size:11px;display:block}.hero-lines i{background:#e3e6ef;border-radius:3px;height:5px;margin-bottom:5px;display:block}.hero-lines i+i{width:70%}.hero-tag{color:#fff;white-space:nowrap;background:#ef4444;border-radius:99px;padding:2px 6px;font-size:8px;font-weight:700}.dash-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin:24px 0;display:grid}.dash-stat{font:inherit;text-align:left;cursor:pointer;border:1px solid var(--app-line);background:#fff;border-radius:6px;padding:16px 18px}.dash-stat b{color:var(--app-ink);font-variant-numeric:tabular-nums;font-size:26px;font-weight:700;display:block}.dash-stat span{color:var(--app-ink);font-size:14px}.dash-stat:hover{border-color:var(--app-blue)}.dash-stat small{color:var(--app-muted);font-size:12px;display:block}.dash-modules{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:20px;display:grid}.dash-module{min-height:130px;font:inherit;color:var(--app-blue);border:1px solid var(--app-line);cursor:pointer;background:#fff;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:20px;font-size:14px;transition:transform .15s,box-shadow .15s;display:flex;box-shadow:0 4px 14px #0f172a14}.dash-module:hover{transform:translateY(-2px);box-shadow:0 10px 24px #0f172a1f}.dash-module em{color:#fff;background:#16a34a;border-radius:99px;margin-left:6px;padding:2px 8px;font-size:11px;font-style:normal;font-weight:600}.dash :focus-visible{outline:2px solid var(--app-blue);outline-offset:2px}.dash-lists{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px;margin-top:24px;display:grid}.dash-list{border:1px solid var(--app-line);background:#fff;border-radius:6px;padding:16px 18px}.dash-list header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.dash-list h2{margin:0;font-size:16px;font-weight:600}.dash-list ul{margin:0;padding:0;list-style:none}.dash-list li{border-bottom:1px solid var(--app-line);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;font-size:14px;display:flex}.dash-list li:last-child{border-bottom:0}.dash-list li b{font-weight:600;display:block}.dash-list li div span{color:var(--app-muted);font-size:12.5px}.dash-link{font:inherit;color:var(--app-blue);cursor:pointer;background:0 0;border:0;font-size:13px}.dash-empty{color:var(--app-muted);font-size:14px}@media (width<=760px){.dash-hero{grid-template-columns:1fr}.dash-hero-art{display:none}}@media (prefers-reduced-motion:reduce){.dash-module{transition:none}}.ls-chart{margin-bottom:20px}.ls-chart ul{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.ls-chart li{grid-template-columns:110px 1fr 36px;align-items:center;gap:12px;font-size:14px;display:grid}.ls-name{color:var(--app-ink)}.ls-track{background:var(--app-bg);border-radius:4px;height:18px;overflow:hidden}.ls-bar{background:#a9c5fa;border-radius:4px;height:100%;display:block;position:relative}.ls-booked{background:var(--app-blue);border-radius:4px 0 0 4px;height:100%;display:block}.ls-val{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.ls-key{color:var(--app-muted);align-items:center;gap:8px;margin:14px 0 0;font-size:12.5px;display:flex}.ls-key i{border-radius:3px;width:12px;height:12px;display:inline-block}.ls-key i+*{margin-right:8px}.ls-k1{background:#a9c5fa}.ls-k2{background:var(--app-blue);margin-left:10px}.fh-client{background:var(--app-bg);border-radius:8px;margin-bottom:16px;padding:14px 16px}.fh-client>div>b{font-size:16px;display:block}.fh-client>div>span{color:var(--app-muted);font-size:13px}.fh-client dl{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 16px;margin:12px 0 0;display:grid}.fh-client dt{color:var(--app-muted);font-size:12px}.fh-client dd{margin:2px 0 0;font-size:14px}.fh-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.fh-filters{flex-wrap:wrap;gap:6px;display:flex}.fh-chip{font:inherit;border:1px solid var(--app-line);color:var(--app-ink);cursor:pointer;background:#fff;border-radius:99px;padding:4px 12px;font-size:13px}.fh-chip span{color:var(--app-muted);margin-left:2px}.fh-chip.on{background:var(--app-blue);border-color:var(--app-blue);color:#fff}.fh-chip.on span{color:#dbe7ff}.fh-empty{color:var(--app-muted);text-align:center;margin:0;padding:24px 0}.fh-timeline{margin:0;padding:0 0 0 22px;list-style:none;position:relative}.fh-timeline:before{content:"";background:var(--app-line);width:2px;position:absolute;top:6px;bottom:6px;left:6px}.fh-item{padding:0 0 18px;position:relative}.fh-item:last-child{padding-bottom:0}.fh-item p{margin:4px 0 0;font-size:14px}.fh-dot{width:12px;height:12px;box-shadow:0 0 0 1px var(--app-line);background:#d99a00;border:2px solid #fff;border-radius:50%;position:absolute;top:4px;left:-21px}.fh-done .fh-dot{background:#16a34a}.fh-missed .fh-dot,.fh-overdue .fh-dot{background:#dc2626}.fh-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.fh-head b{font-size:14px}.fh-when{color:var(--app-muted);font-size:13px}.fh-label{color:var(--app-muted)}.fh-link{font:inherit;color:var(--app-blue);cursor:pointer;text-align:left;background:0 0;border:0;padding:0;font-weight:600}.fh-link:hover{text-decoration:underline}@media (width<=640px){.fh-client dl{grid-template-columns:repeat(2,minmax(0,1fr))}}.fu-remark{max-width:320px;color:var(--app-muted);font-size:13.5px;display:block}.pl-board{grid-auto-columns:minmax(230px,1fr);grid-auto-flow:column;gap:14px;padding-bottom:12px;display:grid;overflow-x:auto}.pl-col{border-top:3px solid var(--app-blue);background:#eef0f6;border-radius:8px;min-height:320px;padding:12px;transition:background .15s}.pl-col.over{background:var(--app-blue-soft);outline:2px dashed var(--app-blue)}.pl-col header{justify-content:space-between;align-items:baseline;margin-bottom:10px;display:flex}.pl-col h2{margin:0;font-size:14px;font-weight:600}.pl-col h2 span{background:#fff;border-radius:99px;margin-left:6px;padding:1px 7px;font-size:11.5px;font-weight:600}.pl-col small{color:var(--app-muted);font-size:12px}.pl-site-visit{border-top-color:#7c4ddb}.pl-negotiation{border-top-color:#d99a00}.pl-booked{border-top-color:#16a34a}.pl-lost{border-top-color:#9ca3af}.pl-empty{color:var(--app-muted);text-align:center;border:1px dashed #c9cede;border-radius:6px;margin:0;padding:24px 0;font-size:13px}.pl-card{border:1px solid var(--app-line);cursor:grab;background:#fff;border-radius:6px;margin-bottom:10px;padding:10px 12px;box-shadow:0 1px 3px #0f172a0f}.pl-card[draggable=false]{cursor:default}.pl-card b{font-size:14px;display:block}.pl-meta{color:var(--app-muted);margin-bottom:8px;font-size:12.5px;display:block}.pl-row{justify-content:space-between;align-items:center;gap:6px;font-size:12.5px;display:flex}.pl-money{font-weight:600}.pl-date{color:var(--app-muted)}.pl-date.due{color:#9a5b00;font-weight:600}.pl-date.late{color:#b42323;font-weight:600}.app-shell .pl-move{width:100%;margin-top:8px;padding:4px 6px;font-size:12.5px}.ap-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.ap-card{border:1px solid var(--app-line);background:#fff;border-top:3px solid #d99a00;border-radius:6px;flex-direction:column;gap:6px;padding:16px;display:flex}.ap-approved{border-top-color:#16a34a}.ap-rejected{border-top-color:#dc2626}.ap-card header{justify-content:space-between;margin-bottom:4px;display:flex}.ap-card h2{margin:0;font-size:16px;font-weight:600}.ap-card p{margin:0}.ap-unit{color:var(--app-muted);font-size:13px}.ap-amount{font-variant-numeric:tabular-nums;font-size:20px;font-weight:700}.ap-reason{font-size:14px}.ap-card footer{color:var(--app-muted);margin-top:4px;font-size:12.5px}.ap-comment{background:var(--app-bg);border-radius:6px;padding:8px 10px;font-size:13px}.ap-actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.bc-legend{border:1px solid var(--app-line);background:#fff;border-radius:6px;flex-wrap:wrap;gap:18px;margin-bottom:18px;padding:12px 16px;font-size:14px;display:flex}.bc-legend-item{align-items:center;gap:8px;display:inline-flex}.bc-legend-item.total{margin-left:auto}.bc-swatch{border-radius:3px;width:14px;height:14px;display:inline-block}.bc-towers{grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:18px;display:grid}.bc-tower{border:1px solid var(--app-line);background:#fff;border-radius:6px;padding:16px}.bc-tower h2{margin:0 0 12px;font-size:15px;font-weight:600}.bc-grid{flex-direction:column;gap:6px;display:flex;overflow-x:auto}.bc-floor{grid-template-columns:64px repeat(4,minmax(70px,1fr));align-items:stretch;gap:6px;display:grid}.bc-floor-no{color:var(--app-muted);align-self:center;font-size:12px}.bc-unit{font:inherit;cursor:pointer;text-align:center;border:1px solid #0000;border-radius:5px;padding:6px 4px;line-height:1.2;transition:transform .1s}.bc-unit:hover{transform:translateY(-1px);box-shadow:0 3px 8px #0f172a26}.bc-unit b{font-size:12.5px;display:block}.bc-unit small{opacity:.85;font-size:10.5px}.bc-unit.dim{opacity:.25}.bc-available{color:#157a3c;background:#e3f6ea;border-color:#b9e6c8}.bc-hold{color:#9a5b00;background:#fdf1d8;border-color:#f3d79b}.bc-booked{color:#b42323;background:#fde6e6;border-color:#f4bcbc}.bc-details{grid-template-columns:140px 1fr;gap:10px 12px;margin:0;font-size:14px;display:grid}.bc-details dt{color:var(--app-muted)}.bc-details dd{margin:0}@media (prefers-reduced-motion:reduce){.bc-unit{transition:none}}.td-add{grid-template-columns:1fr 150px 120px 140px auto;gap:10px;margin-bottom:18px;display:grid}.td-list{border:1px solid var(--app-line);background:#fff;border-radius:6px;margin:0;padding:0;list-style:none}.td-item{border-bottom:1px solid var(--app-line);grid-template-columns:20px 1fr auto 100px 150px 32px;align-items:center;gap:12px;padding:12px 16px;font-size:14px;display:grid}.td-item:last-child{border-bottom:0}.td-item input[type=checkbox]{width:18px;height:18px;accent-color:var(--app-blue);cursor:pointer}.td-item label{cursor:pointer}.td-item.done label{color:var(--app-muted);text-decoration:line-through}.td-who,.td-due{color:var(--app-muted);font-size:13px}.td-due{text-align:right}@media (width<=760px){.td-add{grid-template-columns:1fr 1fr}.td-add input:first-child{grid-column:1/-1}.td-item{grid-template-columns:20px 1fr 32px}.td-item .badge,.td-who,.td-due{text-align:left;grid-column:2}}.fp-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;display:grid}.fp-card{border:1px solid var(--app-line);background:#fff;border-radius:6px;flex-direction:column;display:flex;overflow:hidden}.fp-svg{border-bottom:1px solid var(--app-line);background:#f7f9fd;width:100%;height:auto;padding:14px;display:block}.fp-wall{fill:none;stroke:#1e2433;stroke-width:3px}.fp-room{stroke:#1e2433;stroke-width:1.2px}.fp-room.bed{fill:#e7efff}.fp-room.living{fill:#fff}.fp-room.kitchen{fill:#fdf1d8}.fp-room.bath{fill:#e3f6ea}.fp-label{text-anchor:middle;fill:#4b5563;font-family:inherit;font-size:10px}.fp-label.sm{font-size:8px}.fp-body{flex-direction:column;flex:1;padding:14px 16px 16px;display:flex}.fp-body h2{margin:0;font-size:16px;font-weight:600}.fp-meta{color:var(--app-muted);margin:2px 0 12px;font-size:13px}.fp-body dl{grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 10px;display:grid}.fp-body dt{color:var(--app-muted);font-size:12px}.fp-body dd{margin:0;font-size:14px;font-weight:600}.fp-notes{color:var(--app-muted);margin:0 0 10px;font-size:13px}.fp-actions{justify-content:flex-end;gap:8px;margin-top:auto;display:flex}.um-name{align-items:center;gap:10px;display:flex}.um-avatar{background:var(--app-blue-soft);width:34px;height:34px;color:var(--app-blue);border-radius:50%;flex-shrink:0;place-items:center;font-size:12.5px;font-weight:700;display:grid}.um-you{color:#fff;vertical-align:middle;background:#1b1d40;border-radius:99px;margin-left:6px;padding:1px 7px;font-size:11px;font-weight:600}.login{--app-ink:#1e2433;--app-muted:#6b7280;--app-line:#e6e8ef;--app-blue:#3b7cf4;--app-blue-soft:#eaf1fe;min-height:100vh;color:var(--app-ink);background:#f6f7fb;grid-template-columns:minmax(380px,46%) 1fr;font-family:Segoe UI,system-ui,-apple-system,Roboto,sans-serif;display:grid}.login *,.login :before,.login :after{box-sizing:border-box}.login-hero{color:#fff;background:radial-gradient(circle at 50% 38%,#d6a02838 0,#0000 55%),#000;flex-direction:column;justify-content:center;align-items:center;gap:28px;padding:40px 48px;display:flex}.login-logo-big{width:min(100%,440px);height:auto;display:block}.login-pitch{text-align:center;max-width:420px}.login-pitch h2{color:#f3cf6b;margin:0 0 16px;font-size:clamp(20px,2vw,26px);font-weight:600;line-height:1.3}.login-pitch ul{color:#d9d4c4;text-align:left;flex-direction:column;gap:8px;margin:0;padding:0;font-size:15px;list-style:none;display:inline-flex}.login-pitch li:before{content:"✓";color:#e2b23c;margin-right:10px;font-weight:700}.login-logo-small{border-radius:10px;width:120px;height:auto;margin:0 auto 20px;display:none}.login-main{place-items:center;padding:32px 20px;display:grid}.login-card{border:1px solid var(--app-line);background:#fff;border-radius:12px;width:100%;max-width:400px;padding:36px 32px 28px;box-shadow:0 12px 32px #0f172a14}.login-card h1{margin:0;font-size:26px;font-weight:600}.login-sub{color:var(--app-muted);margin:6px 0 24px;font-size:14px}.login-field{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.login-field label{font-size:13px;font-weight:600}.login-field input{font:inherit;color:var(--app-ink);border:1px solid #d5d9e2;border-radius:8px;width:100%;padding:10px 12px;font-size:15px}.login-field input:focus{outline:3px solid var(--app-blue-soft);border-color:var(--app-blue)}.login-pass{position:relative}.login-pass input{padding-right:64px}.login-show{font:inherit;color:var(--app-blue);cursor:pointer;background:0 0;border:0;padding:6px 8px;font-size:13px;font-weight:600;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.login-remember{cursor:pointer;align-items:center;gap:8px;margin-bottom:18px;font-size:14px;display:flex}.login-remember input{width:16px;height:16px;accent-color:var(--app-blue)}.login-error{color:#b42323;background:#fde6e6;border-radius:6px;margin:0 0 14px;padding:9px 12px;font-size:14px}.login-btn{width:100%;font:inherit;cursor:pointer;border:1px solid var(--app-blue);background:var(--app-blue);color:#fff;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:11px 16px;font-size:15px;font-weight:600;display:flex}.login-btn:hover{background:#2f6fe0}.login-btn.admin{background:#1b1d40;border-color:#1b1d40}.login-btn.admin:hover{background:#2a2d5c}.login-or{color:var(--app-muted);align-items:center;gap:12px;margin:18px 0;font-size:13px;display:flex}.login-or:before,.login-or:after{content:"";background:var(--app-line);flex:1;height:1px}.login-hint{text-align:center;color:var(--app-muted);margin:16px 0 0;font-size:13px}.login :focus-visible{outline:2px solid var(--app-blue);outline-offset:2px}@media (width<=860px){.login{grid-template-columns:1fr}.login-hero{display:none}.login-logo-small{display:block}}.nf{text-align:center;padding-top:80px}.nf h1{margin:0 0 6px;font-size:24px;font-weight:600}.nf p{color:var(--app-muted);margin:0 0 20px}.app-shell{--app-ink:#1e2433;--app-muted:#6b7280;--app-line:#e6e8ef;--app-bg:#f6f7fb;--app-blue:#3b7cf4;--app-blue-soft:#eaf1fe;background:var(--app-bg);min-height:100vh;color:var(--app-ink);text-align:left;font-family:Segoe UI,system-ui,-apple-system,Roboto,sans-serif;font-size:15px;line-height:1.45;display:flex}.app-shell *,.app-shell :before,.app-shell :after{box-sizing:border-box}.app-main{flex-direction:column;flex:1;min-width:0;display:flex}.app-content{flex:1}.splash{--app-ink:#1e2433;--app-blue:#3b7cf4;--app-blue-soft:#eaf1fe;--app-line:#e6e8ef;--app-bg:#f6f7fb;text-align:center;color:#1e2433;background:#f6f7fb;flex-direction:column;justify-content:center;align-items:center;gap:14px;min-height:100vh;padding:24px;font-family:Segoe UI,system-ui,-apple-system,Roboto,sans-serif;display:flex}.splash p{color:#4b5563;max-width:460px;margin:0}.splash-logo{border-radius:12px;width:96px;height:auto}.splash-actions{gap:8px;display:flex}.app-error{color:#8f1d1d;background:#fde6e6;border-radius:6px;justify-content:space-between;align-items:center;gap:12px;margin:12px clamp(16px,3vw,32px) 0;padding:10px 14px;font-size:14px;display:flex}
