:root{--ink:#203e38;--muted:#718079;--green:#245c49;--lime:#d8e7a5;--paper:#f8f9f5;--line:#e1e6dd;--housing:#316950;--food:#c48b42;--events:#8873a1;--parking:#58839b}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button,a,input,select{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button{border:0}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #b19b4b;outline-offset:3px}.header{height:100px;padding:0 4.2%;display:flex;align-items:center;gap:40px;background:#fff;border-bottom:1px solid var(--line)}.brand{text-decoration:none;display:flex;gap:12px;align-items:center;font-size:24px;letter-spacing:-1px;font-family:Manrope,sans-serif;font-weight:800;white-space:nowrap}.brand b{font-weight:450}.brand small{display:block;font:8px 'DM Sans',sans-serif;letter-spacing:1.6px;margin-top:5px}.brand-symbol{width:44px;height:44px;border-radius:13px 13px 13px 2px;background:var(--green);color:#fff;font-size:46px;line-height:37px;position:relative;text-align:center;font-weight:600}.brand-symbol span{position:absolute;font:19px Manrope;top:-8px;right:-5px;background:#fff;border-radius:50%;color:var(--green)}nav{display:flex;gap:25px;margin:auto}.nav{background:none;color:var(--muted);height:100px;font-size:13px;padding:0;white-space:nowrap}.nav.active{color:var(--ink);box-shadow:inset 0 -3px var(--green)}.nav span{background:#edf0e9;border-radius:5px;padding:2px 5px;font-size:10px}.header-actions{display:flex;align-items:center;gap:20px}.primary{background:var(--green);color:#fff;padding:13px 20px;border-radius:7px;font-weight:600}.text-button{background:transparent;color:var(--ink);padding:10px 0}.outline{border:1px solid #cfd8cc;background:transparent;border-radius:6px;padding:11px 15px;color:var(--ink);font-weight:500}.hero{display:flex;align-items:center;justify-content:space-between;padding:48px 5% 37px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;display:flex;align-items:center;gap:8px}.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#6c945b;flex-shrink:0}h1{font-family:Manrope,sans-serif;font-size:60px;font-weight:600;line-height:1.08;letter-spacing:-3px;margin:19px 0}h1 em{font-family:Georgia,serif;font-weight:400;color:#61806a}p{line-height:1.7;color:var(--muted)}.hero p{margin-bottom:0;font-size:14px;line-height:1.85}.hero-note{display:flex;align-items:center;gap:16px;margin:45px 4% 0 20px;color:#657761;transform:rotate(-4deg);font-size:13px;line-height:1.8}.hero-note svg{width:100px}.hero-note b{font-weight:500}.explorer{margin:0 4.2%;border:1px solid #dce3d9;border-radius:12px;background:#fff;overflow:hidden;box-shadow:0 6px 30px #203e3805}.toolbar{display:flex;align-items:center;justify-content:space-between;padding:0 24px;border-bottom:1px solid var(--line)}.tabs{display:flex;gap:26px}.category{background:none;color:#748178;display:flex;gap:8px;align-items:center;height:67px;padding:0 4px;font-size:20px}.category span{font-size:13px;font-weight:500}.category.selected{color:var(--green);box-shadow:inset 0 -3px var(--green)}.map-toggle{border:1px solid var(--line);padding:8px 12px;border-radius:5px;background:white;color:var(--ink);font-size:12px}.search-row{padding:17px 24px;display:flex;gap:10px;border-bottom:1px solid var(--line)}.search{display:flex;align-items:center;gap:9px;flex:1;border:1px solid var(--line);border-radius:6px;padding:0 12px;background:#fcfdfb}.search>span{font-size:26px;color:#809187}.search input{width:100%;border:none;background:transparent;outline:none;padding:11px 0;font-size:13px}.search kbd{color:#9ea99d;font-size:13px}select{border:1px solid var(--line);border-radius:6px;padding:10px 30px 10px 12px;background:#fff;color:var(--ink);font-size:12px}.search-row .outline{font-size:12px}.results-layout{display:grid;grid-template-columns:minmax(380px,.95fr) minmax(0,1.25fr)}.list-panel{padding:25px 22px;max-height:720px;overflow:auto;scrollbar-width:thin;scrollbar-color:#d2ddcf transparent}.results-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:15px}h2{font-family:Manrope,sans-serif;font-size:18px;letter-spacing:-.5px;font-weight:650;margin:0 0 5px}.results-heading span{font-size:11px;color:var(--muted)}.results-heading select{border:0;padding-right:15px;font-size:11px;max-width:115px}.demo-notice{font-size:8px;letter-spacing:1.1px;color:#84907f;border-top:1px solid #eef1ea;padding:11px 0;display:flex;gap:10px;align-items:center}.demo-notice span{letter-spacing:0;font-size:10px;color:#96a08f}.cards{display:flex;flex-direction:column;gap:12px}.card{display:grid;grid-template-columns:135px minmax(0,1fr);gap:16px;padding:10px;border:1px solid var(--line);border-radius:9px;background:white;position:relative;transition:border-color .2s,box-shadow .2s;cursor:pointer}.card:hover,.card.focused{border-color:#87a08d;box-shadow:0 4px 12px #203e3809}.card-image{width:135px;height:141px;object-fit:cover;border-radius:6px;background:#e9eddf}.card-content{padding:4px 24px 2px 0;min-width:0}.tag{font-size:8px;text-transform:uppercase;letter-spacing:1.1px;font-weight:700;color:var(--green);margin-bottom:8px;display:inline-block}.tag.food{color:var(--food)}.tag.events{color:var(--events)}.tag.parking{color:var(--parking)}.card h3{font:650 15px Manrope,sans-serif;line-height:1.4;margin:0 0 5px;letter-spacing:-.4px}.card .address{font-size:10px;color:var(--muted);margin:0 0 10px;line-height:1.5}.card .price{font-weight:700;font-size:16px}.card .price small{font-weight:400;color:var(--muted);font-size:10px}.card .facts{font-size:10px;color:#819082;margin-top:8px}.save-listing{position:absolute;right:12px;top:13px;background:#fff;color:#728271;font-size:21px;padding:0;line-height:1}.save-listing.saved{color:#b37b55}.distance{font-size:9px;color:#768575;display:flex;gap:4px;align-items:center;margin-top:9px}.empty{padding:40px 10px;text-align:center;color:var(--muted);line-height:1.8}.map-panel{position:relative;background:#e9eddf;min-height:610px;border-left:1px solid var(--line)}#map{height:100%;position:absolute;inset:0;z-index:1;background:#e9eddf}.map-label{position:absolute;top:20px;left:20px;right:60px;z-index:500;display:flex;align-items:center;gap:8px;background:#fffffff2;box-shadow:0 2px 8px #203e3810;padding:13px 14px;border-radius:7px;font-size:8px;letter-spacing:1px;max-width:390px}.map-label>span:last-child{margin-left:auto;letter-spacing:0;white-space:nowrap;color:var(--muted);font-size:10px}.map-legend{position:absolute;bottom:30px;left:20px;display:flex;gap:16px;padding:12px 15px;background:#fffffff5;border-radius:6px;z-index:500;box-shadow:0 2px 8px #203e3810;font-size:10px}.map-legend span{display:flex;gap:5px;align-items:center}.map-legend i{height:7px;width:7px;border-radius:50%}.housing{background:var(--housing)}.food{background:var(--food)}.events{background:var(--events)}.parking{background:var(--parking)}.recenter{position:absolute;bottom:82px;left:20px;padding:10px 14px;background:white;z-index:500;border-radius:6px;color:var(--ink);font-size:10px;box-shadow:0 2px 8px #203e3810}.marker{border:3px solid white;color:white;border-radius:50% 50% 50% 3px;transform:rotate(-45deg);box-shadow:0 3px 8px #22382c33;display:flex;align-items:center;justify-content:center;width:32px;height:32px}.marker span{transform:rotate(45deg);font-size:16px}.campus-marker{border:5px solid #fff;background:var(--green);border-radius:50%;color:white;font:700 10px Manrope;text-align:center;line-height:42px;box-shadow:0 0 0 8px #245c4918}.leaflet-popup-content{font-family:'DM Sans',sans-serif;line-height:1.8}.leaflet-popup-content b{color:var(--green)}.community-strip{margin:30px 4.2% 0;padding:27px 28px;background:#eef1e5;border-radius:9px;display:flex;align-items:center;gap:20px}.community-strip h2{font-size:18px}.community-strip p{font-size:12px;margin:3px 0 0}.community-icon{font-size:40px;color:#6b8461;line-height:1}.community-strip .outline{margin-left:auto;font-size:11px;white-space:nowrap}footer{display:flex;justify-content:space-between;align-items:center;padding:35px 4.2% 60px;font-size:16px}footer small{display:block;font-size:9px;margin-top:7px;color:#8d9788}footer p,footer button{font-size:11px}.assistant-launch{position:fixed;bottom:23px;right:28px;z-index:700;display:flex;align-items:center;gap:12px;border-radius:12px;background:var(--green);color:#fff;padding:13px 18px;box-shadow:0 8px 24px #203e3833;text-align:left}.assistant-launch>span:first-child{background:#ffffff18;border-radius:50%;font-size:24px;padding:5px 9px;color:var(--lime)}.assistant-launch small{display:block;font-size:9px;color:#cfddce;margin-top:3px}.assistant-launch b{margin-left:17px;font-size:19px;font-weight:400}.assistant{position:fixed;width:370px;max-width:calc(100vw - 32px);bottom:25px;right:25px;z-index:800;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 60px #203e3833;overflow:hidden}.assistant-head{background:var(--green);color:white;padding:20px;display:flex;justify-content:space-between}.assistant-head small{display:block;font-size:10px;color:#d1dccd;margin:6px 0 0 26px}.assistant-head span{margin-right:9px;color:var(--lime)}.assistant-head button{background:transparent;color:white;font-size:24px}.chat{height:310px;overflow:auto;padding:18px;display:flex;flex-direction:column;gap:12px}.bubble{background:#f1f4ec;padding:14px;border-radius:0 12px 12px 12px;font-size:12px;line-height:1.7}.bubble small{display:block;color:var(--muted);font-size:9px;margin-top:10px}.bubble.user{background:#e0ebdc;margin-left:35px;border-radius:12px 0 12px 12px}.bubble a{display:block;font-weight:600;margin-top:8px}.suggestions{display:flex;flex-wrap:wrap;gap:6px}.suggestions button{border:1px solid var(--line);background:white;border-radius:18px;font-size:10px;color:var(--green);padding:8px 10px}#chat-form{border-top:1px solid var(--line);display:flex;padding:12px;gap:10px}#chat-input{border:0;flex:1;min-width:0;outline:none;font-size:12px}#chat-form button{border-radius:6px;background:var(--green);color:white;padding:7px 12px}dialog{border:1px solid var(--line);border-radius:15px;padding:32px;width:570px;max-width:calc(100vw - 32px);max-height:90vh;color:var(--ink);box-shadow:0 20px 100px #142c3322}dialog::backdrop{background:#102d2a66;backdrop-filter:blur(3px)}.modal-close{position:absolute;right:15px;top:12px;background:transparent;font-size:25px;color:var(--muted)}dialog h2{font-size:26px;margin:9px 0}dialog p{font-size:13px}dialog label{display:block;font-size:11px;font-weight:600;margin:15px 0 5px}dialog input,dialog select,dialog textarea{width:100%;border:1px solid #d6dfd1;border-radius:6px;padding:11px;color:var(--ink);background:#fff}dialog textarea{min-height:80px;resize:vertical}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}dialog .primary{margin-top:20px;width:100%}.detail-image{width:100%;height:230px;object-fit:cover;border-radius:8px;margin-bottom:20px}.detail-facts{display:flex;gap:15px;color:var(--muted);font-size:12px}.review-item{border:1px solid var(--line);padding:15px;border-radius:8px;margin:12px 0}.review-item button{margin:10px 6px 0 0;padding:9px;border-radius:5px;background:var(--green);color:white}.review-item .reject{background:#f4e8df;color:#905b3b}.steps{counter-reset:step}.steps p{padding:15px;background:#f1f4ec;border-radius:7px}.steps b{display:block;color:var(--ink)}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;z-index:2000;background:#203e38;color:#fff;padding:13px 20px;border-radius:8px;box-shadow:0 3px 20px #203e3822;transition:.2s;max-width:90%;font-size:12px}.toast.visible{opacity:1;transform:translate(-50%,0)}.hidden{display:none!important}.no-map{grid-template-columns:1fr}.no-map .cards{display:grid;grid-template-columns:repeat(2,1fr)}.no-map .list-panel{max-height:none}.error-banner{background:#f7e7dd;color:#834a2e;padding:20px}.watch{border:1px solid var(--line);padding:14px;border-radius:7px;margin-bottom:10px}.watch button{float:right;color:var(--green);background:transparent}.map-fallback{padding:100px 35px;text-align:center;color:var(--muted)}
@media(min-width:1600px){main{max-width:1650px;margin:auto}.hero{padding-top:60px;padding-bottom:48px}.results-layout{grid-template-columns:1fr 1.4fr}.list-panel{max-height:790px}.card-image{height:150px;width:160px}.card{grid-template-columns:160px 1fr}.card h3{font-size:17px}.header{gap:70px}}@media(max-width:1100px){.header{gap:20px;padding:0 3%;height:85px}.brand{font-size:20px}.brand small{font-size:6px}nav{gap:14px}.nav{font-size:11px;height:85px}.header-actions{gap:12px}.header-actions button{font-size:11px}.tabs{gap:13px}.category span{font-size:11px}.hero h1{font-size:54px}.hero-note{margin-right:0}.card{grid-template-columns:110px 1fr;gap:12px}.card-image{width:110px;height:144px}.card h3{font-size:14px}.results-layout{grid-template-columns:minmax(345px,1fr) 1.1fr}.list-panel{padding:20px 15px}.search-row{padding:15px}.community-strip{gap:12px}.community-strip h2{font-size:16px}}@media(max-width:780px){.header{height:auto;padding:17px 5%;flex-wrap:wrap;justify-content:space-between;gap:15px}.brand{font-size:21px}.brand-symbol{height:37px;width:37px;font-size:39px;line-height:32px}.header-actions .text-button{display:none}.header-actions .primary{padding:10px}nav{order:3;width:100%;justify-content:space-between;gap:10px;margin:0}.nav{height:30px;font-size:11px}.hero{padding:32px 5%}.hero h1{font-size:46px;letter-spacing:-2px}.hero p{font-size:12px}.hero p br{display:none}.hero-note{display:none}.eyebrow{font-size:9px}.explorer{margin:0 3%;border-radius:9px}.toolbar{padding:0 12px;gap:15px;overflow:auto}.tabs{gap:18px}.category{height:57px;white-space:nowrap}.category span{font-size:11px}.map-toggle{display:none}.search-row{flex-wrap:wrap;padding:12px;gap:7px}.search{flex-basis:100%}.search-row select{flex:1;min-width:0;padding:9px 7px}.search-row .outline{font-size:10px;padding:9px}.results-layout{display:flex;flex-direction:column-reverse}.map-panel{height:340px;min-height:340px;border-left:0;border-bottom:1px solid var(--line)}.map-label{top:12px;left:12px;font-size:7px;padding:10px;right:50px}.map-label>span:last-child{font-size:8px}.map-legend{bottom:22px;left:12px;font-size:9px;gap:12px}.recenter{bottom:70px;left:12px}.list-panel{max-height:none;padding:20px 13px}.card{grid-template-columns:116px 1fr}.card-image{width:116px;height:143px}.card h3{font-size:14px}.community-strip{flex-wrap:wrap;margin:20px 3% 0;padding:20px}.community-strip h2{font-size:15px}.community-strip p{font-size:11px}.community-icon{display:none}.community-strip .outline{margin:8px 0 0}footer{padding-bottom:115px;align-items:flex-start;gap:15px}footer p{display:none}.assistant-launch{right:16px;bottom:16px;padding:10px 13px}.assistant{right:16px;bottom:16px}.no-map .cards{display:flex}.form-grid{grid-template-columns:1fr 1fr}.toast{bottom:100px;width:max-content;text-align:center}.results-heading h2{font-size:17px}}

.tag.housing,.tag.food,.tag.events,.tag.parking{background:transparent}
footer{padding-bottom:130px}
/* Approval workflow screens (workflow.js) */
.updates-button{display:inline-flex;align-items:center;gap:6px}
.count-badge{background:#b37b55;color:#fff;border-radius:9px;font-size:10px;font-weight:700;min-width:18px;height:18px;line-height:18px;padding:0 5px;text-align:center}
.review-item h3{font:650 16px Manrope,sans-serif;letter-spacing:-.3px;margin:8px 0 4px}
.review-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}
.review-head .tag{margin:0}
.review-head small{font-size:11px;color:var(--muted)}
.request-facts{display:grid;grid-template-columns:72px 1fr;gap:4px 10px;margin:10px 0;font-size:12px}
.request-facts dt{color:var(--muted)}
.request-facts dd{margin:0;overflow-wrap:anywhere}
.request-facts a{color:var(--green)}
.request-description{font-size:12px;margin:6px 0;white-space:pre-line}
.review-item details{margin:10px 0;font-size:12px}
.review-item summary{cursor:pointer;color:var(--green);font-weight:600}
.decision-history{margin:8px 0 0;padding-left:18px;line-height:1.6}
.decision-history li{margin-bottom:6px}
.decision-history small{color:var(--muted);margin-left:4px}
.decision-history q{display:block;color:#41544d;quotes:"“" "”"}
.review-item label .optional{font-weight:400;color:var(--muted);margin-left:4px}
.review-item textarea{min-height:64px}
.review-actions{display:flex;flex-wrap:wrap;gap:6px}
.review-item .review-actions button{margin:10px 0 0}
.review-item .review-actions .outline{background:transparent;color:var(--ink);border:1px solid #cfd8cc}
.review-item button:disabled{opacity:.55;cursor:progress}
.status-chip{font-size:10px;font-weight:700;letter-spacing:.4px;border-radius:5px;padding:3px 7px;text-transform:uppercase}
.status-chip.wait{background:#edf0e9;color:#55665d}.status-chip.warn{background:#fbf0d9;color:#8a6420}.status-chip.good{background:#e2f0e4;color:#245c49}.status-chip.bad{background:#f4e8df;color:#905b3b}.status-chip.muted{background:#f0f1ee;color:#8b958e}
.reviewer-note{background:#fbf6ea;border-left:3px solid #c48b42;border-radius:4px;padding:9px 11px;margin:8px 0;font-size:12px;line-height:1.55}
.reviewer-note b{display:block;font-size:10px;letter-spacing:.6px;text-transform:uppercase;color:#8a6420;margin-bottom:2px}
.update-item{display:block;width:100%;text-align:left;background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px 14px;margin:8px 0;color:var(--ink)}
.update-item.unseen{border-color:#87a08d;box-shadow:inset 3px 0 var(--green)}
.update-item b{display:block;font-size:13px}
.update-item span{display:block;font-size:12px;color:#41544d;margin-top:2px}
.update-item small{display:block;font-size:10px;color:var(--muted);margin-top:4px}
.empty .primary{margin-top:14px;width:auto}
@media (max-width:700px){.request-facts{grid-template-columns:1fr}.request-facts dt{margin-top:4px}}
@media(max-width:780px){.header-actions .text-button{display:inline-flex;font-size:12px;padding:8px 0}.header-actions{gap:12px}}
@media(max-width:480px){.brand{font-size:19px;gap:9px}.brand small{display:none}.brand-symbol{width:36px;height:36px;font-size:38px;line-height:30px}.header-actions .primary{font-size:0;padding:9px 12px}.header-actions .primary::first-letter{font-size:16px}.updates-button{font-size:0!important;gap:0}.updates-button::before{content:"🔔";font-size:16px}.updates-button .count-badge{font-size:10px;margin-left:2px}}
/* Category-driven listing form (listing-fields.js) */
#category-fields .form-grid{align-items:end}
.chips{border:0;padding:0;margin:15px 0 0;display:flex;flex-wrap:wrap;gap:7px}
.chips legend{font-size:11px;font-weight:600;padding:0;margin-bottom:7px}
dialog .chips label.chip{display:inline-flex;margin:0;font-weight:500;font-size:12px;cursor:pointer}
dialog .chips input{position:absolute;opacity:0;width:1px;height:1px}
.chip span{border:1px solid #d6dfd1;border-radius:999px;padding:7px 12px;background:#fff;transition:background .15s,border-color .15s}
.chip input:checked+span{background:#e2f0e4;border-color:#87a08d;color:var(--green)}
.chip input:checked+span::before{content:"✓ "}
.chip input:focus-visible+span{outline:3px solid #b19b4b;outline-offset:2px}
.card-preview{margin-top:16px;border:1px dashed #cfd8cc;border-radius:9px;padding:12px 14px;background:#fbfcf9;display:grid;gap:3px}
.card-preview:empty{display:none}
.card-preview small{font-size:9px;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted);font-weight:700}
.card-preview b{font:650 15px Manrope,sans-serif}
.preview-price{font-weight:700;font-size:15px}
.preview-price em{font-style:normal;font-weight:400;color:var(--muted);font-size:11px}
.preview-facts{font-size:11px;color:#819082}
.form-error{color:#9a3b22;font-size:13px;font-weight:600;margin:12px 0 0;min-height:1em}
.form-error:empty{display:none}
