@font-face{font-family:DisketMono;src:url(./Disket-Mono-Regular-fYDQgH15.ttf)format("truetype");font-weight:400;font-display:swap}@font-face{font-family:DisketMono;src:url(./Disket-Mono-Bold-HFjWFgHd.ttf)format("truetype");font-weight:700;font-display:swap}:root{--wash:#262626;--mint:#66d4cf;--mint-fill:#66d4cf66;--mint-soft:#66d4cf40;--text:#fff;--gray:#8e8e93;--row:#ffffff12;--row-hover:#ffffff1c;--row-selected:#66d4cf2e;--line:#ffffff14;--field:#8e8e9333;--danger:#ff6961;--display:"DisketMono", ui-monospace, "SF Mono", Menlo, monospace;--input:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--shadow:0 0 5px #000;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--wash);color:var(--text);font-family:var(--display);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-size:14px}.pxl,h1,h2,h3,button,label,.label,.tag,th{font-family:var(--display);text-transform:uppercase}input,textarea,select,.typed{font-family:var(--input);text-transform:none}h1,h2,h3{text-shadow:var(--shadow);letter-spacing:.01em;margin:0;font-weight:700}h1{font-size:26px}h2{font-size:18px}h3{font-size:15px}a{color:inherit;text-decoration:none}.gray{color:var(--gray)}.small{font-size:11px}.tiny{font-size:10px}.mint{color:var(--mint)}.danger{color:var(--danger)}.shadow{text-shadow:var(--shadow)}.spacer{flex:1}.row{align-items:center;gap:8px;display:flex}.stack{flex-direction:column;gap:6px;display:flex}.num{font-variant-numeric:tabular-nums}.topo{z-index:-1;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.app{flex-direction:column;height:100%;display:flex}.topbar{padding:10px 16px;padding-top:max(10px, env(safe-area-inset-top));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);background:#262626d9;flex-shrink:0;align-items:center;gap:12px;min-height:56px;display:flex}.topbar .logo{height:22px;display:block}.topbar .crumbs{min-width:0;color:var(--gray);align-items:center;gap:8px;font-size:12px;display:flex}.topbar .crumbs a:hover{color:var(--text)}.topbar .crumbs .here{color:var(--text);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.banner{background:#66d4cf26;align-items:center;gap:12px;padding:8px 16px;font-size:11px;display:flex}.banner.error{background:#ff69612e}.main{flex:1;min-height:0;display:flex}.status{color:var(--gray);white-space:nowrap;align-items:center;gap:6px;font-size:10px;display:flex}.split{flex:1;grid-template-columns:minmax(300px,400px) 1fr;min-width:0;display:grid}.split>.pane{min-height:0;overflow-y:auto}.split>.pane.column{flex-direction:column;display:flex}.split>.pane.list{border-right:1px solid var(--line);background:#0000001f}@media (width<=860px){.split{grid-template-columns:1fr}.split.has-detail>.pane.list,.split:not(.has-detail)>.pane.detail{display:none}}.page{flex:1;min-width:0;overflow-y:auto}.content{max-width:760px;margin:0 auto;padding:20px 16px 120px}.content.wide{max-width:1100px}.section-label{color:var(--gray);align-items:center;gap:8px;margin:22px 8px 8px;font-size:12px;font-weight:700;display:flex}.section-label:first-child{margin-top:4px}.group{background:var(--row);border-radius:12px;overflow:hidden}.group>*+*{border-top:1px solid var(--line)}.item{width:100%;min-height:52px;color:inherit;text-align:left;text-transform:none;font-family:var(--display);background:0 0;border:0;align-items:center;gap:12px;padding:12px 16px;font-size:14px;display:flex}a.item,button.item{cursor:pointer}a.item:hover,button.item:hover{background:var(--row-hover)}.item.selected{background:var(--row-selected)}.item .title{text-shadow:var(--shadow);text-transform:uppercase;font-size:15px;font-weight:700}.item .sub{color:var(--gray);text-transform:uppercase;margin-top:3px;font-size:11px}.item .end{text-align:right;flex-shrink:0;margin-left:auto}.item .grow{flex:1;min-width:0}.item .grow .title,.item .grow .sub{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.footer-note{color:var(--gray);text-transform:uppercase;margin:8px 8px 0;font-size:11px;line-height:1.5}.list-tools{z-index:1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#1e1e1eeb;padding:14px 12px 6px;position:sticky;top:0}.chips{scrollbar-width:none;gap:6px;padding:8px 0 4px;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}button{cursor:pointer;color:inherit}button:disabled{cursor:default}.action{background:var(--mint-fill);color:#fff;text-shadow:0 0 5px #fff;border:0;border-radius:25px;width:100%;height:50px;font-size:15px;font-weight:700;display:block;box-shadow:3px 3px .5px #000}.action:hover:not(:disabled){background:#66d4cf80}.action:disabled{color:#fff6;text-shadow:none;background:#66d4cf26}.pill{color:#fff;height:40px;text-shadow:var(--shadow);white-space:nowrap;background:#66d4cf4d;border:0;border-radius:10px;flex-shrink:0;align-items:center;gap:8px;padding:0 16px;font-size:13px;display:inline-flex;box-shadow:3px 3px .5px #000}.pill:hover:not(:disabled){background:#66d4cf6b}.pill:disabled{color:#fff6;background:#66d4cf1a}.pill.quiet{box-shadow:none;background:#ffffff14}.pill.quiet:hover:not(:disabled){background:#ffffff24}.pill.danger{background:#ff696140}.pill.small{border-radius:8px;height:32px;padding:0 12px;font-size:11px}.icon-button{color:#fff;filter:drop-shadow(.5px 1.5px .5px #000);background:0 0;border:0;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.icon-button:hover:not(:disabled){background:#ffffff1a}.icon-button:disabled{opacity:.35}.icon-button.danger{color:var(--danger)}.chip{color:#fff;white-space:nowrap;background:#ffffff0f;border:1.5px solid #0000;border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:7px 11px;font-size:11px;display:inline-flex}.chip:hover{background:#ffffff1f}.chip.on{border-color:var(--chip-accent,var(--mint));background:#ffffff2e;font-weight:700}.dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;display:inline-block}.tag{background:var(--mint-soft);white-space:nowrap;border-radius:999px;padding:3px 9px;font-size:10px}.tag.lead{background:#0a84ff4d}.tag.quoted{background:#ff9f0a4d}.tag.won{background:#66d4cf4d}.tag.installed{background:#30d1584d}.tag.lost{background:#8e8e934d}.field{flex-direction:column;gap:8px;display:flex}.field>.label{color:var(--gray);padding-left:8px;font-size:12px;font-weight:700}.input{background:var(--field);color:#fff;width:100%;height:52px;caret-color:var(--mint);border:1px solid #ffffff1a;border-radius:26px;outline:none;padding:0 20px;font-size:16px}.input:focus{border-color:#66d4cf99}.input.small{border-radius:22px;height:44px;font-size:15px}.input.big{height:52px;font-size:22px}.input.inline{border-radius:10px;height:40px;padding:0 12px;font-size:15px}textarea.input{resize:vertical;border-radius:20px;height:auto;min-height:110px;padding:14px 18px;line-height:1.4}.input::placeholder{color:#ffffff4d}select.input{appearance:none;background-image:linear-gradient(45deg,#0000 50%,#aaa 50%),linear-gradient(135deg,#aaa 50%,#0000 50%);background-position:calc(100% - 20px),calc(100% - 15px);background-repeat:no-repeat;background-size:5px 5px;padding-right:36px}.segmented{background:#8e8e9333;border-radius:9px;gap:2px;padding:2px;display:inline-flex}.segmented button{color:#fff;background:0 0;border:0;border-radius:7px;padding:7px 14px;font-size:11px}.segmented button.on{background:#66d4cf66;font-weight:700}.segmented.full{display:flex}.segmented.full button{flex:1}.toggle{flex-shrink:0;width:51px;height:31px;position:relative}.toggle input{opacity:0;width:0;height:0;position:absolute}.toggle span{cursor:pointer;background:#7878805c;border-radius:16px;transition:background .15s;position:absolute;inset:0}.toggle span:after{content:"";background:#fff;border-radius:50%;width:27px;height:27px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 2px 4px #0000004d}.toggle input:checked+span{background:var(--mint)}.toggle input:checked+span:after{transform:translate(20px)}.toggle input:disabled+span{opacity:.5;cursor:default}input[type=range]{accent-color:var(--mint);flex:1}input[type=color]{cursor:pointer;background:0 0;border:0;border-radius:50%;width:34px;height:34px;padding:0}input[type=color]::-webkit-color-swatch-wrapper{padding:2px}input[type=color]::-webkit-color-swatch{border:1.5px solid #fff6;border-radius:50%}.bottom-bar{padding:16px;padding-bottom:max(16px, env(safe-area-inset-bottom));background:linear-gradient(to bottom, #26262600, var(--wash) 35%);position:sticky;bottom:0}.bottom-bar>.inner{flex-direction:column;gap:10px;max-width:560px;margin:0 auto;display:flex}.notice{color:var(--gray);text-transform:uppercase;align-items:flex-start;gap:12px;padding:14px 16px;font-size:12px;line-height:1.5;display:flex}.notice svg{color:var(--mint);flex-shrink:0}.empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;height:100%;padding:60px 24px;display:flex}.empty svg{color:var(--mint)}.empty p{color:var(--gray);text-transform:uppercase;max-width:320px;margin:0;font-size:12px;line-height:1.5}.spinner{border:2px solid #66d4cf4d;border-top-color:var(--mint);border-radius:50%;flex-shrink:0;width:16px;height:16px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.backdrop{z-index:50;background:#0000008c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.dialog{background:#1f1f1f;border:1px solid #ffffff1a;border-radius:18px;flex-direction:column;width:100%;max-width:520px;max-height:100%;display:flex;box-shadow:0 20px 60px #0009}.dialog.small{max-width:400px}.dialog header{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:14px 16px;display:flex}.dialog header h2{text-align:center;flex:1;font-size:15px}.dialog header button{color:#fff;background:0 0;border:0;padding:6px 4px;font-size:13px}.dialog header button.confirm{color:var(--mint);font-weight:700}.dialog header button:disabled{opacity:.35}.dialog .body{flex-direction:column;gap:18px;padding:22px;display:flex;overflow-y:auto}.dialog p{color:var(--gray);text-transform:uppercase;margin:0;font-size:12px;line-height:1.5}.dialog .buttons{justify-content:flex-end;gap:10px;padding:0 22px 22px;display:flex}@media (width<=600px){.backdrop{align-items:flex-end;padding:0}.dialog{border-radius:18px 18px 0 0;max-height:92%}}.menu{position:relative}.menu-list{z-index:40;background:#2c2c2e;border:1px solid #ffffff1a;border-radius:12px;min-width:210px;padding:6px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 10px 40px #00000080}.menu-list button{text-align:left;color:#fff;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;width:100%;padding:10px 12px;font-size:12px;display:flex}.menu-list button:hover{background:#ffffff14}.menu-list button.danger{color:var(--danger)}.menu-list hr{border:0;border-top:1px solid var(--line);margin:4px 0}.signin{flex-direction:column;justify-content:center;align-items:center;min-height:100%;padding:24px;display:flex}.signin form{flex-direction:column;gap:18px;width:100%;max-width:300px;display:flex}.signin .logo{filter:drop-shadow(0 2px 4px #00000080);width:230px;margin:0 auto;display:block}.signin .footer{color:#8e8e93cc;font-size:11px;position:fixed;bottom:16px}.roofline{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#ffffff0f;flex-shrink:0;position:relative;overflow:hidden}.roofline img,.roofline canvas,.roofline .dusk{width:100%;height:100%;display:block;position:absolute;inset:0}.roofline img{object-fit:fill}.roofline .dusk{background:#0305149e}.roofline .missing{color:var(--gray);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.photo-strip{align-items:center;gap:10px;padding:12px;display:flex;overflow-x:auto}.photo-strip>button{background:0 0;border:0;border-radius:8px;padding:0}.add-photo{width:100px;height:90px;color:var(--mint);border-radius:8px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:6px;font-size:9px;display:flex;background:#ffffff0f!important;border:1px dashed #66d4cf80!important}.editor{flex-direction:column;flex:1;min-height:0;display:flex}.editor .stage{flex:1;justify-content:center;align-items:center;min-height:0;padding:12px;display:flex}.editor .stage .roofline{touch-action:none;border-radius:8px;box-shadow:0 2px 8px #00000080}.editor .controls{background:var(--wash);border-top:1px solid var(--line);padding:14px 16px;padding-bottom:max(14px, env(safe-area-inset-bottom))}.editor .controls>.inner{flex-direction:column;gap:12px;max-width:720px;margin:0 auto;display:flex}@media (width>=1100px){.editor{flex-direction:row}.editor .controls{border-top:0;border-left:1px solid var(--line);width:380px;overflow-y:auto}.editor .controls .chips{flex-wrap:wrap;overflow:visible}}.mockups{gap:10px;padding:8px 12px;display:flex;overflow-x:auto}.paper{color:#000;background:#fff;border-radius:12px;padding:32px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.35;box-shadow:0 2px 8px #00000080}.paper *{text-transform:none;text-shadow:none;font-family:inherit}.paper .doc-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.paper .doc-head img{height:40px}.paper .doc-head .meta{text-align:right;font-size:12px}.paper .caption{color:#6e6e73;font-size:12px}.paper .headline{font-size:16px;font-weight:600}.paper .block{margin-top:22px}.paper table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.paper th,.paper td{text-align:left;text-transform:none;padding:5px 0;font-family:inherit;font-weight:400}.paper th{border-bottom:1px solid #d1d1d6;padding-bottom:8px;font-weight:600}.paper td.n,.paper th.n{text-align:right;width:70px}.paper td.a,.paper th.a{text-align:right;width:110px}.paper tr.sep td{border-top:1px solid #d1d1d6;padding-top:8px}.paper tr.bold td{font-weight:600}.paper .photo{break-inside:avoid;margin-top:12px}.paper .photo .roofline{border-radius:6px}.paper .terms{color:#6e6e73;margin-top:22px;font-size:12px}.paper .signature{color:#6e6e73;border-top:1px solid #000;width:60%;margin-top:40px;padding-top:4px;font-size:12px}@media (width<=600px){.paper{padding:20px;font-size:13px}.paper td.a,.paper th.a{width:90px}.paper td.n,.paper th.n{width:44px}}@media print{@page{size:letter;margin:.5in}body{background:#fff}.topo,.topbar,.banner,.bottom-bar,.no-print{display:none!important}.app,.main,.page{height:auto;display:block;overflow:visible}.content{max-width:none;padding:0}.paper{box-shadow:none;border-radius:0;padding:0}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2s}}@media (width<=600px){.hide-narrow{display:none!important}}
