:root{--ink:#22251f;--ink-soft:#4a4d42;--paper:#eef0ea;--panel:#fff;--line:#c7c3b2;--green:#1f4d3a;--green-dark:#163a2b;--brick:#a94a34;--focus:#2f6f52}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Public Sans,-apple-system,sans-serif;line-height:1.5}.portal-shell{min-height:100vh}.masthead{background:var(--green);color:#fff;padding:28px 24px 24px}.masthead .borough{letter-spacing:.01em;opacity:.92;max-width:640px;margin:0 auto;font-family:"Source Serif 4",Georgia,serif;font-size:1.15rem;font-weight:600}.masthead h1{max-width:640px;margin:6px auto 0;font-family:"Source Serif 4",Georgia,serif;font-size:2rem;font-weight:500;line-height:1.15}main{max-width:640px;margin:0 auto;padding:32px 24px 64px}.intro{color:var(--ink-soft);max-width:62ch;margin:0 0 20px;font-size:1.02rem}.loading-note{color:var(--ink-soft);padding:8px 4px}.auth-card,.signup-cta{background:var(--panel);border:1px solid var(--line);border-radius:4px;margin-bottom:20px;padding:24px 28px}.auth-card .eyebrow{color:var(--ink-soft);margin-bottom:4px;font-family:"Source Serif 4",Georgia,serif;font-weight:600}.auth-card h1,.auth-card h2{margin:0 0 16px;font-family:"Source Serif 4",Georgia,serif;font-weight:500}fieldset{border:none;margin:0;padding:4px 0 0}legend{margin-bottom:4px;padding:0;font-size:.95rem;font-weight:600}.field-label{margin-bottom:6px;font-size:.95rem;font-weight:500;display:block}.field-group{margin-bottom:16px}.field-group:last-child{margin-bottom:0}.field-group.has-error input,.field-group.has-error textarea{border-color:var(--brick)}input[type=text],input[type=email],input[type=password],textarea{border:1px solid var(--line);width:100%;font:inherit;color:var(--ink);background:#fff;border-radius:3px;padding:11px 12px}.access-code-input{text-transform:uppercase;letter-spacing:.08em;font-weight:600}textarea{resize:vertical;min-height:90px}input:focus,textarea:focus{outline:3px solid var(--focus);outline-offset:1px;border-color:var(--focus)}.error-text{color:var(--brick);margin:6px 0 0;font-size:.88rem}button.submit-btn,button.secondary-btn{font:inherit;cursor:pointer;border-radius:3px;min-height:44px;padding:13px 26px;font-size:1rem;font-weight:600}button.submit-btn{background:var(--green);color:#fff;border:none;margin-top:6px}button.submit-btn:hover{background:var(--green-dark)}button.submit-btn:focus-visible{outline:3px solid var(--brick);outline-offset:2px}button.submit-btn:disabled{cursor:not-allowed;background:#97a094}button.secondary-btn{color:var(--ink);border:1px solid var(--line);background:#fff}button.link-btn{color:var(--green);font:inherit;cursor:pointer;background:0 0;border:none;min-height:44px;padding:4px 2px;font-weight:600;text-decoration:underline}.switch-mode{color:var(--ink-soft);margin:14px 0 0;font-size:.92rem}.property-summary{background:var(--panel);border:1px solid var(--line);border-radius:4px;margin-bottom:20px;padding:20px 24px}.property-summary h2{margin:0 0 4px;font-family:"Source Serif 4",Georgia,serif;font-weight:500}.property-summary .meta{color:var(--ink-soft);margin:0;font-size:.9rem}.item-card{background:var(--panel);border:1px solid var(--line);border-radius:4px;margin-bottom:16px;padding:20px 24px}.item-card h3{margin:0 0 4px;font-size:1.05rem}.item-card .ordinance{color:var(--ink-soft);margin:0 0 10px;font-size:.88rem}.status-pill{border-radius:12px;margin-bottom:12px;padding:3px 10px;font-size:.82rem;font-weight:600;display:inline-block}.status-pill.open{color:#8a5a0e;background:#f6efdf}.status-pill.reviewing{color:#2f4f7a;background:#e6ecf5}.status-pill.closed{color:var(--green);background:#e5efe8}.due-note{margin:0 0 14px;font-size:.9rem}.item-status-note{color:var(--ink-soft);background:#f5f4ec;border-radius:3px;padding:12px 14px;font-size:.9rem}.item-done{color:var(--green);font-size:.9rem;font-weight:500}.radio-row{cursor:pointer;align-items:flex-start;gap:10px;min-height:44px;padding:12px 4px;display:flex}.radio-row input{flex-shrink:0;width:20px;height:20px;margin-top:2px}.radio-row .option-title{font-weight:500;display:block}.radio-row .option-help{color:var(--ink-soft);font-size:.88rem}.response-actions{align-items:center;gap:10px;margin-top:14px;display:flex}@media (width<=480px){.masthead h1{font-size:1.6rem}.auth-card,.signup-cta{padding:18px}.response-actions{flex-direction:column;align-items:stretch}}