:root{color-scheme:light;--green: #1a3a2a;--green2: #264d38;--sand: #c9b99a;--white: #ffffff;--bg: #f6f6f5;--border: #e5e3df;--border2: #eeede9;--text: #111111;--text2: #555550;--text3: #999990;--ok: #1a6b3a;--ok-bg: #edf6f1;--warn: #7a5010;--warn-bg: #fef5e3;--danger: #c02a2a;--tpre-bg: #eef2ee;--tpre: #2a4a32;--tdes-bg: #f5ede0;--tdes: #7a4a18;--tper-bg: #fef3dc;--tper: #7a5010;--tcon-bg: #eaf3ec;--tcon: #1a5c30;--tcls-bg: #f0ece5;--tcls: #5a4020;--r: 6px;--sw: 220px;--fs-xs: 11px;--fs-sm: 13px;--fs-body: 14px;--fs-lg: 16px;--fs-xl: 20px;--fs-xxl: 26px;--font-ui: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--lh-tight: 1.3;--lh-body: 1.55;--lh-ui: 1.4}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{background:#fff;font-size:14px;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{font-family:var(--font-ui);font-size:var(--fs-body);line-height:var(--lh-body);background:var(--bg)!important;color:var(--text)!important;overflow-x:hidden;font-feature-settings:"cv02","cv03","cv04","cv11"}code,pre,kbd,samp,.mono,[class*=mono]{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}h1,h2,h3,h4,h5,h6{font-family:var(--font-ui);line-height:var(--lh-tight);letter-spacing:-.01em}#nav-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;z-index:198;-webkit-tap-highlight-color:transparent}#nav-overlay.open{display:block}.sidebar{position:fixed;top:0;left:0;bottom:0;width:var(--sw);background:var(--white);border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:199;overflow-y:auto;transform:translate(-100%);transition:transform .25s cubic-bezier(.4,0,.2,1)}.sb-close{display:flex;justify-content:flex-end;padding:12px 14px 0}.sb-close button{background:none;border:1px solid var(--border);color:var(--text3);font-size:16px;cursor:pointer;border-radius:4px;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.sb-logo{padding:18px 20px 16px;border-bottom:1px solid var(--border)}.sb-logo .xco{font-family:var(--font-ui);font-weight:800;font-size:22px;color:var(--green);letter-spacing:2px;text-transform:uppercase}.sb-logo .sub{font-family:var(--font-ui);font-size:10px;font-weight:500;color:var(--text3);letter-spacing:1.4px;text-transform:uppercase;margin-top:6px}.nav-sec{padding:18px 0 4px 16px;font-family:var(--font-ui);font-size:var(--fs-xs);font-weight:600;color:var(--text3);letter-spacing:1.2px;text-transform:uppercase}.nav-item{display:flex;align-items:center;gap:10px;padding:10px 16px;color:var(--text2);cursor:pointer;font-size:var(--fs-body);font-weight:500;border-left:2px solid transparent;transition:all .12s;-webkit-tap-highlight-color:transparent;min-height:44px;border-radius:0;line-height:var(--lh-ui)}.nav-item:hover{color:var(--text);background:var(--bg)}.nav-item.active{color:var(--green);background:var(--tpre-bg);border-left-color:var(--green);font-weight:600}.nav-item .ico{width:16px;text-align:center;font-size:13px;flex-shrink:0}.sb-foot{margin-top:auto;padding:14px 16px;border-top:1px solid var(--border);font-size:var(--fs-xs);color:var(--text3);font-family:var(--font-mono)}.main{min-height:100vh;display:flex;flex-direction:column}.topbar{background:var(--white);border-bottom:1px solid var(--border);padding:0 20px;height:54px;display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:100}.t-burger{background:none;border:none;cursor:pointer;color:var(--text);font-size:20px;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:var(--r);-webkit-tap-highlight-color:transparent}.t-burger:hover{background:var(--bg)}.t-info{flex:1;min-width:0}.t-title{font-family:var(--font-ui);font-weight:600;font-size:var(--fs-lg);color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.01em}.t-proj{font-size:var(--fs-xs);color:var(--text3);font-family:var(--font-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.t-actions{display:flex;gap:8px;flex-shrink:0}.btn{padding:9px 16px;border-radius:var(--r);font-family:var(--font-ui);font-weight:600;font-size:var(--fs-sm);cursor:pointer;border:none;transition:all .12s;min-height:40px;display:inline-flex;align-items:center;gap:6px;-webkit-tap-highlight-color:transparent;letter-spacing:.005em}.btn-primary{background:var(--green);color:#fff}.btn-primary:hover{background:var(--green2)}.btn-outline{background:var(--white);color:var(--text2);border:1px solid var(--border)}.btn-outline:hover{background:var(--bg);color:var(--text);border-color:var(--text3)}.btn-sm{padding:6px 12px;font-size:var(--fs-xs);min-height:32px}.content{padding:24px 20px;flex:1}.tab-pane{display:none}.tab-pane.active{display:block}.ph{margin-bottom:24px}.ph h2{font-size:var(--fs-xl);font-weight:700;color:var(--text);letter-spacing:-.015em}.ph p{color:var(--text2);font-size:var(--fs-body);margin-top:6px;line-height:var(--lh-body)}.card{background:var(--white);border:1px solid var(--border);border-radius:var(--r)}.card-h{padding:13px 16px 11px;border-bottom:1px solid var(--border2);display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.card-h h3{font-size:var(--fs-sm);font-weight:600;color:var(--text);letter-spacing:0}.card-b{padding:18px}.g2,.g3,.g4{display:grid;grid-template-columns:1fr;gap:14px}@media (min-width:600px){.g2,.g4{grid-template-columns:1fr 1fr}}@media (min-width:900px){.g3{grid-template-columns:1fr 1fr 1fr}.g4{grid-template-columns:repeat(3,1fr)}}.sc{background:var(--white);border:1px solid var(--border);border-radius:var(--r);padding:16px}.sc .lb{font-size:var(--fs-xs);font-weight:600;color:var(--text3);margin-bottom:6px;text-transform:uppercase;letter-spacing:.6px}.sc .vl{font-size:var(--fs-xxl);font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:-.015em}.sc .sb{font-size:var(--fs-xs);color:var(--text3);margin-top:4px}.sc.acc{border-top:3px solid var(--sand)}.sc.suc{border-top:3px solid var(--ok)}.pt{display:inline-flex;align-items:center;padding:3px 9px;border-radius:4px;font-size:var(--fs-xs);font-weight:600;letter-spacing:.2px}.pt.pre{background:var(--tpre-bg);color:var(--tpre)}.pt.design{background:var(--tdes-bg);color:var(--tdes)}.pt.permit{background:var(--tper-bg);color:var(--tper)}.pt.construction{background:var(--tcon-bg);color:var(--tcon)}.pt.closeout{background:var(--tcls-bg);color:var(--tcls)}.pb{height:5px;background:var(--border);border-radius:3px;overflow:hidden}.pf{height:100%;background:var(--green);border-radius:3px;transition:width .4s}.pf.done{background:var(--ok)}input[type=text],input[type=date],input[type=number],input[type=email],input[type=password],input[type=tel],input[type=url],select,textarea{width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:var(--r);font-family:var(--font-ui);font-size:var(--fs-body);line-height:var(--lh-ui);color:var(--text);background:var(--white);transition:border-color .12s;-webkit-appearance:none}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px #2f453514}textarea{resize:vertical;min-height:70px;line-height:var(--lh-body)}label{font-size:var(--fs-xs);font-weight:600;color:var(--text2);margin-bottom:6px;display:block;letter-spacing:.4px;text-transform:uppercase}.fr{margin-bottom:14px}.fg,.fg3{display:grid;grid-template-columns:1fr;gap:12px}@media (min-width:600px){.fg,.fg3{grid-template-columns:1fr 1fr}}@media (min-width:900px){.fg3{grid-template-columns:1fr 1fr 1fr}}.stabs-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:8px;margin-bottom:16px}.stabs-wrap::-webkit-scrollbar{height:3px}.stabs-wrap::-webkit-scrollbar-track{background:var(--border2)}.stabs-wrap::-webkit-scrollbar-thumb{background:var(--green);border-radius:2px}.stabs{display:flex;flex-wrap:nowrap;gap:6px;width:max-content;padding:2px 2px 4px}.stab{padding:8px 14px;border-radius:var(--r);font-size:var(--fs-sm);font-weight:500;cursor:pointer;background:var(--white);border:1px solid var(--border);color:var(--text2);transition:all .12s;white-space:nowrap;min-height:38px;display:inline-flex;align-items:center;gap:6px;-webkit-tap-highlight-color:transparent}.stab:hover{border-color:var(--green);color:var(--green)}.stab.active{background:var(--green);color:#fff;border-color:var(--green);font-weight:600}.stab .pct{font-size:var(--fs-xs);opacity:.7}.cl-head{margin-bottom:16px}.cl-head h3{font-size:var(--fs-lg);font-weight:700;color:var(--text);letter-spacing:-.01em}.cl-purpose{font-size:var(--fs-body);color:var(--text2);margin-top:8px;line-height:var(--lh-body)}.out-lbl{font-size:var(--fs-xs);font-weight:600;color:var(--text3);margin-bottom:8px;margin-top:14px;text-transform:uppercase;letter-spacing:.6px;display:block}.out-item{display:inline-flex;align-items:center;gap:5px;background:var(--ok-bg);color:var(--ok);font-size:var(--fs-sm);font-weight:600;padding:4px 10px;border-radius:4px;margin:2px 4px 2px 0}.cl-prog{display:flex;align-items:center;gap:12px;margin-bottom:16px}.cl-prog .pct-lbl{font-size:var(--fs-sm);font-weight:700;color:var(--green);min-width:36px;text-align:right;font-variant-numeric:tabular-nums}.sec-h{font-size:var(--fs-xs);font-weight:700;color:var(--text3);padding:14px 0 8px;border-bottom:1px solid var(--border2);margin-bottom:2px;text-transform:uppercase;letter-spacing:.6px}.ci{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-bottom:1px solid var(--border2);cursor:pointer;-webkit-tap-highlight-color:transparent}.ci:last-child{border-bottom:none}.cc{width:20px;height:20px;min-width:20px;margin-top:2px;border:1.5px solid var(--border);border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .12s;flex-shrink:0;background:var(--white)}.ci:hover .cc{border-color:var(--green)}.ci.chk .cc{background:var(--green);border-color:var(--green)}.ci.chk .cc:after{content:"✓";color:#fff;font-size:12px;font-weight:700;line-height:1}.ci.chk .cl-lbl{color:var(--text3);text-decoration:line-through}.cl-lbl{font-size:var(--fs-body);line-height:var(--lh-body);color:var(--text)}.tw{overflow-x:auto;-webkit-overflow-scrolling:touch}.dt{width:100%;border-collapse:collapse;font-size:var(--fs-body);min-width:480px}.dt th{padding:10px 14px;text-align:left;font-size:var(--fs-xs);font-weight:600;color:var(--text3);border-bottom:1px solid var(--border);white-space:nowrap;background:var(--bg);text-transform:uppercase;letter-spacing:.6px}.dt td{padding:10px 14px;border-bottom:1px solid var(--border2);line-height:var(--lh-body)}.ltab-row{display:flex;gap:0;border-bottom:1px solid var(--border);overflow-x:auto;-webkit-overflow-scrolling:touch}.ltab{padding:10px 16px;background:transparent;border:none;font-family:var(--font-ui);font-weight:500;font-size:var(--fs-sm);cursor:pointer;color:var(--text2);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;min-height:40px;transition:color .12s;-webkit-tap-highlight-color:transparent}.ltab.active{color:var(--green);border-bottom-color:var(--green);font-weight:600}.lpane{display:none}.lpane.active{display:block}.bsh{font-size:var(--fs-xs);font-weight:700;color:var(--text2);padding:10px 14px 7px;background:var(--bg);text-transform:uppercase;letter-spacing:.5px}.bt input{padding:5px 8px;font-size:var(--fs-sm);border:1px solid transparent;border-radius:4px;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.bt input:focus{border-color:var(--green);background:#f5f9f6}.btot{background:var(--green)}.btot td{font-weight:700;font-size:var(--fs-sm);border-bottom:none;color:#fff!important}.al{padding:12px 15px;border-radius:var(--r);font-size:var(--fs-body);margin-bottom:14px;border-left:3px solid;line-height:var(--lh-body)}.al-i{background:#eef6ee;color:#1a4a2a;border-color:var(--green)}.al-w{background:var(--warn-bg);color:var(--warn);border-color:var(--warn)}.imp-i{display:flex;gap:14px;padding:16px 0;border-bottom:1px solid var(--border2)}.imp-i:last-child{border-bottom:none}.imp-b{min-width:28px;height:28px;background:var(--tpre-bg);color:var(--green);border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:var(--fs-xs);font-weight:700;flex-shrink:0}.imp-nb{background:var(--ok-bg);color:var(--ok)}.imp-t{font-weight:600;font-size:var(--fs-body);color:var(--text);margin-bottom:4px}.imp-d{font-size:var(--fs-body);color:var(--text2);line-height:var(--lh-body)}.imp-tag{font-size:var(--fs-xs);font-weight:600;padding:2px 8px;border-radius:4px;display:inline-block;margin-top:6px;text-transform:uppercase;letter-spacing:.3px}.imp-tag.nt{background:var(--ok-bg);color:var(--ok)}.imp-tag.et{background:var(--warn-bg);color:var(--warn)}.bd{display:inline-block;padding:2px 8px;border-radius:4px;font-size:var(--fs-xs);font-weight:600;letter-spacing:.2px}.bd-o{background:var(--warn-bg);color:var(--warn)}.bd-c{background:var(--ok-bg);color:var(--ok)}.bd-d{background:#eff2ff;color:#3444aa}.bd-a{background:var(--ok-bg);color:var(--ok)}.mb14{margin-bottom:14px}.mb20{margin-bottom:20px}.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.main{margin-left:0!important}.t-burger{display:flex!important}@media (min-width:900px){.sidebar{transform:translate(0)!important;transition:none}.sb-close{display:none!important}.main{margin-left:var(--sw)!important}.t-burger,#nav-overlay{display:none!important}.content{padding:30px 4%}.topbar{padding:0 32px}}.cl-mob-sel,.cl-layout{display:block}.cl-sidebar{display:none}.cl-content{display:block}@media (min-width: 700px){.cl-mob-sel{display:none}.cl-layout{display:grid;grid-template-columns:165px 1fr;gap:0;border:1px solid var(--border);border-radius:var(--r);overflow:hidden;background:var(--white);min-height:500px}.cl-sidebar{display:block;background:var(--bg);border-right:1px solid var(--border);padding:12px 0;overflow-y:auto}.cl-content{padding:20px;overflow-y:auto;background:var(--white)}}.ci-actions{position:absolute;right:8px;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:2px;opacity:1}@media (min-width: 700px){.ci-actions{opacity:0;transition:opacity .15s}.ci:hover .ci-actions{opacity:1}}@media (max-width: 600px){input[type=text],input[type=date],input[type=number],input[type=email],input[type=password],input[type=tel],input[type=url],select,textarea{font-size:16px}}@media print{.sidebar,.topbar,#nav-overlay,.stabs-wrap,.btn,.t-actions{display:none!important}.main{margin-left:0}.content{padding:0}.tab-pane{display:block!important}.card{break-inside:avoid;box-shadow:none}}
