@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Inter+Tight:wght@600;700;800&display=swap";:root{--navy:#0f1923;--navy-2:#1a2535;--navy-3:#243044;--crimson:#c0392b;--crimson-light:#e84c3d;--cream:#f5f0e8;--white:#fff;--stone:#8a9099;--ink:#1e2630;--sage:#27ae60;--amber:#d68910;--blue-soft:#2980b9;--radius-sm:6px;--radius:12px;--radius-lg:20px;--shadow-sm:0 1px 3px #00000014, 0 1px 2px #0000000f;--shadow:0 4px 16px #0000001a, 0 2px 6px #0000000f;--shadow-lg:0 12px 40px #00000024, 0 4px 12px #00000014;--font-display:"Inter Tight", "Inter", system-ui, sans-serif;--font-body:"Inter", system-ui, sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-body);background:var(--cream);color:var(--ink);-webkit-font-smoothing:antialiased;line-height:1.6}a{color:inherit;text-decoration:none}button{cursor:pointer;background:0 0;border:none;font-family:inherit}img,svg{max-width:100%;display:block}.eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--crimson);font-size:.7rem;font-weight:700}h1{font-family:var(--font-display);color:var(--white);font-size:clamp(1.1rem,2vw,1.4rem);font-weight:700;line-height:1.2}h2{font-family:var(--font-display);color:var(--ink);font-size:clamp(1.6rem,3.5vw,2.6rem);font-weight:800;line-height:1.15}h3{font-family:var(--font-display);color:var(--ink);font-size:clamp(1.1rem,2vw,1.4rem);font-weight:700;line-height:1.3}h4{font-family:var(--font-display);color:var(--ink);font-size:1rem;font-weight:700}p{color:#3d4a57;font-size:.95rem;line-height:1.7}.btn-primary{background:var(--crimson);color:var(--white);border-radius:var(--radius-sm);letter-spacing:.01em;align-items:center;gap:8px;padding:.7rem 1.5rem;font-size:.9rem;font-weight:600;transition:background .18s,transform .14s,box-shadow .18s;display:inline-flex;box-shadow:0 2px 8px #c0392b4d}.btn-primary:hover{background:var(--crimson-light);transform:translateY(-1px);box-shadow:0 4px 16px #c0392b61}.btn-primary:active{transform:translateY(0)}.btn-secondary{color:var(--ink);border-radius:var(--radius-sm);background:0 0;border:1.5px solid #1e263033;align-items:center;gap:8px;padding:.7rem 1.5rem;font-size:.9rem;font-weight:600;transition:border-color .18s,background .18s;display:inline-flex}.btn-secondary:hover{border-color:var(--ink);background:#1e26300a}.btn-ghost{color:#ffffffd9;border-radius:var(--radius-sm);background:#ffffff1f;border:1px solid #ffffff2e;align-items:center;gap:6px;padding:.55rem 1.1rem;font-size:.85rem;font-weight:500;transition:background .18s;display:inline-flex}.btn-ghost:hover{color:var(--white);background:#fff3}.btn-danger-ghost{color:#e84c3d;border-radius:var(--radius-sm);background:#c0392b1f;border:1px solid #c0392b40;align-items:center;gap:6px;padding:.55rem 1.1rem;font-size:.85rem;font-weight:600;transition:background .18s;display:inline-flex}.btn-danger-ghost:hover{background:#c0392b38}.page-shell{flex-direction:column;min-height:100vh;display:flex}.topbar{background:var(--navy);z-index:100;justify-content:space-between;align-items:center;gap:1.5rem;min-height:64px;padding:0 clamp(1.2rem,4vw,3rem);display:flex;position:sticky;top:0;box-shadow:0 1px #ffffff0f}.topbar-brand{flex-direction:column;gap:1px;display:flex}.topbar-brand .eyebrow{color:#ffffff80;font-size:.62rem}.topbar-brand h1{font-size:1rem}.topnav{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.topnav a{color:#ffffffb3;border-radius:var(--radius-sm);padding:.4rem .75rem;font-size:.875rem;font-weight:500;transition:color .15s,background .15s}.topnav a:hover{color:var(--white);background:#ffffff14}.topnav-divider{background:#ffffff1f;width:1px;height:20px;margin:0 .25rem}.user-chip{background:#ffffff14;border:1px solid #ffffff1f;border-radius:99px;align-items:center;gap:8px;padding:.3rem .75rem .3rem .5rem;display:flex}.user-chip-avatar{background:var(--crimson);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:.7rem;font-weight:700;display:flex}.user-chip-name{color:#ffffffd9;font-size:.8rem;font-weight:500}.main-layout{flex-direction:column;flex:1;gap:2rem;width:100%;max-width:1280px;margin:0 auto;padding:clamp(1.5rem,4vw,3rem) clamp(1.2rem,4vw,3rem);display:flex}.card{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid #0000000d;padding:clamp(1.5rem,3vw,2.5rem)}.section-label{flex-direction:column;gap:.3rem;margin-bottom:1.75rem;display:flex}.hero-card{background:var(--navy);border-radius:var(--radius-lg);min-height:380px;box-shadow:var(--shadow-lg);align-items:stretch;display:flex;position:relative;overflow:hidden}.hero-mountain{opacity:.07;pointer-events:none;position:absolute;inset:0}.hero-inner{z-index:2;grid-template-columns:1fr auto;align-items:center;gap:2rem;width:100%;padding:clamp(2rem,4vw,3.5rem);display:grid;position:relative}.hero-copy{flex-direction:column;gap:1.1rem;display:flex}.hero-copy .eyebrow{color:#ffffff80}.hero-copy h2{color:var(--white);max-width:560px}.hero-copy .lead{color:#ffffffa6;max-width:520px;font-size:1rem;line-height:1.65}.hero-actions{flex-wrap:wrap;gap:.75rem;margin-top:.25rem;display:flex}.hero-actions .btn-secondary{color:#fffc;border-color:#fff3}.hero-actions .btn-secondary:hover{color:var(--white);background:#ffffff12;border-color:#ffffff80}.hero-tags{flex-wrap:wrap;gap:.5rem;margin-top:.25rem;display:flex}.hero-tag{color:#fff9;letter-spacing:.01em;background:#ffffff14;border:1px solid #ffffff1f;border-radius:99px;padding:.3rem .75rem;font-size:.75rem;font-weight:600}.hero-stats{flex-direction:column;gap:1rem;min-width:180px;display:flex}.hero-stat{border-radius:var(--radius);background:#ffffff12;border:1px solid #ffffff1a;flex-direction:column;gap:.2rem;padding:1.1rem 1.25rem;display:flex}.hero-stat strong{font-family:var(--font-display);color:var(--white);font-size:1.5rem;font-weight:800;line-height:1}.hero-stat span{color:#ffffff80;font-size:.75rem;line-height:1.4}.stats-row{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.stat-card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid #0000000d;flex-direction:column;gap:.3rem;padding:1.5rem 1.75rem;display:flex}.stat-card-value{font-family:var(--font-display);color:var(--ink);font-variant-numeric:tabular-nums;font-size:2.2rem;font-weight:800;line-height:1}.stat-card-value.received{color:var(--blue-soft)}.stat-card-value.resolved{color:var(--sage)}.stat-card-value.pending{color:var(--amber)}.stat-card-label{color:var(--stone);text-transform:uppercase;letter-spacing:.06em;font-size:.8rem;font-weight:700}.stat-card-note{color:var(--stone);margin-top:.25rem;font-size:.8rem}.workflow-grid{border-radius:var(--radius);background:#0000000f;grid-template-columns:repeat(3,1fr);gap:1px;display:grid;overflow:hidden}.workflow-step{background:var(--white);flex-direction:column;gap:.75rem;padding:1.75rem;display:flex;position:relative}.workflow-step:first-child{border-radius:var(--radius) 0 0 var(--radius)}.workflow-step:last-child{border-radius:0 var(--radius) var(--radius) 0}.workflow-num{background:var(--crimson);width:36px;height:36px;color:var(--white);font-family:var(--font-display);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.9rem;font-weight:800;display:flex}.workflow-step h4{color:var(--ink);font-size:1rem}.workflow-step p{color:var(--stone);font-size:.875rem;line-height:1.6}.channel-grid{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.channel-card{border-radius:var(--radius);border:1.5px solid #0000000f;flex-direction:column;gap:.5rem;padding:1.5rem;transition:border-color .18s,box-shadow .18s;display:flex}.channel-card:hover{border-color:var(--crimson);box-shadow:0 4px 16px #c0392b1a}.channel-icon{border-radius:var(--radius-sm);background:#c0392b14;justify-content:center;align-items:center;width:40px;height:40px;margin-bottom:.25rem;display:flex}.channel-icon svg{color:var(--crimson)}.channel-card h4{font-size:.95rem}.channel-card p{color:var(--stone);font-size:.85rem}.auth-shell{background:var(--cream);flex-direction:column;min-height:100vh;display:flex}.auth-main{flex:1;justify-content:center;align-items:center;padding:2rem 1rem;display:flex}.auth-card{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid #0000000f;flex-direction:column;gap:1.5rem;width:100%;max-width:420px;padding:clamp(2rem,4vw,2.75rem);display:flex}.auth-card .section-label{margin-bottom:0}.auth-card h3{font-size:1.2rem}.auth-form{flex-direction:column;gap:1rem;display:flex}.field{flex-direction:column;gap:.4rem;display:flex}.field label{color:#4a5568;font-size:.82rem;font-weight:600}.field input,.field textarea,.field select{border-radius:var(--radius-sm);width:100%;font-size:.9rem;font-family:var(--font-body);color:var(--ink);background:#fafbfc;border:1.5px solid #d1d8e0;outline:none;padding:.65rem .9rem;transition:border-color .15s,box-shadow .15s}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--crimson);background:var(--white);box-shadow:0 0 0 3px #c0392b1a}.field input:disabled{opacity:.55;cursor:not-allowed}.field textarea{resize:vertical;min-height:120px;line-height:1.6}.field input[type=file]{background:var(--white);cursor:pointer;padding:.5rem .9rem}.auth-row{justify-content:space-between;align-items:center;gap:1rem;display:flex}.remember-label{color:#4a5568;cursor:pointer;align-items:center;gap:.45rem;font-size:.85rem;display:flex}.remember-label input[type=checkbox]{width:15px;height:15px;accent-color:var(--crimson)}.forgot-link{color:var(--crimson);font-size:.82rem;font-weight:500}.forgot-link:hover{text-decoration:underline}.auth-divider{border:none;border-top:1px solid #e8ecf0}.auth-switch{color:var(--stone);text-align:center;font-size:.85rem}.auth-switch a{color:var(--crimson);font-weight:600}.alert{border-radius:var(--radius-sm);padding:.75rem 1rem;font-size:.85rem;font-weight:500}.alert-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca}.alert-success{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0}.dashboard-layout{flex-direction:column;flex:1;gap:1.75rem;width:100%;max-width:1280px;margin:0 auto;padding:clamp(1.5rem,4vw,2.5rem) clamp(1.2rem,4vw,3rem);display:flex}.dashboard-header{flex-direction:column;gap:.25rem;display:flex}.dashboard-header h2{font-size:1.5rem}.dashboard-header p{color:var(--stone);font-size:.9rem}.dash-stats{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.dash-stat{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid #0000000d;align-items:flex-start;gap:1rem;padding:1.35rem 1.5rem;display:flex}.dash-stat-icon{border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.dash-stat-icon.total{color:var(--blue-soft);background:#2980b91a}.dash-stat-icon.done{color:var(--sage);background:#27ae601a}.dash-stat-icon.open{color:var(--amber);background:#d689101a}.dash-stat-body{flex-direction:column;gap:.15rem;display:flex}.dash-stat-body strong{font-family:var(--font-display);color:var(--ink);font-size:1.9rem;font-weight:800;line-height:1}.dash-stat-body small{color:var(--stone);font-size:.78rem;font-weight:500}.table-card{overflow:hidden}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%}thead tr{border-bottom:2px solid #e8ecf0}thead th{text-align:left;color:var(--stone);text-transform:uppercase;letter-spacing:.07em;white-space:nowrap;padding:.75rem 1rem;font-size:.72rem;font-weight:700}tbody tr{border-bottom:1px solid #f0f3f7;transition:background .12s}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:#f7f9fc}tbody td{color:var(--ink);vertical-align:middle;padding:.9rem 1rem;font-size:.875rem}.badge{letter-spacing:.04em;text-transform:uppercase;border-radius:99px;align-items:center;gap:5px;padding:.3rem .65rem;font-size:.72rem;font-weight:700;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px;display:block}.badge.pending{color:#b45309;background:#fff8e1}.badge.in-progress{color:#1d4ed8;background:#eff6ff}.badge.resolved{color:#15803d;background:#f0fdf4}.action-btn{color:var(--crimson);border-radius:var(--radius-sm);border:1px solid #c0392b40;padding:.35rem .8rem;font-size:.8rem;font-weight:600;transition:background .15s}.action-btn:hover{background:#c0392b12}.table-actions{align-items:center;gap:.5rem;min-width:190px;display:flex}.status-select{border-radius:var(--radius-sm);min-width:118px;color:var(--ink);font-family:var(--font-body);background:#fafbfc;border:1px solid #d1d8e0;outline:none;padding:.36rem .5rem;font-size:.78rem}.status-select:focus{border-color:var(--crimson);box-shadow:0 0 0 3px #c0392b1a}.complaint-form{flex-direction:column;gap:1.25rem;display:flex}.mode-tabs{border-radius:var(--radius-sm);background:#eef2f6;border:1px solid #d1d8e0;grid-template-columns:repeat(2,minmax(110px,1fr));gap:.25rem;width:min(100%,280px);padding:.25rem;display:inline-grid}.mode-tab{color:#4a5568;border-radius:5px;padding:.55rem .75rem;font-size:.85rem;font-weight:700;transition:background .15s,color .15s,box-shadow .15s}.mode-tab.active{background:var(--white);color:var(--crimson);box-shadow:var(--shadow-sm)}.public-grid{grid-template-columns:minmax(0,.95fr) minmax(340px,1.05fr);align-items:start;gap:1.25rem;display:grid}.public-map-card{position:sticky;top:84px}.authority-grid{grid-template-columns:minmax(0,1.35fr) minmax(320px,.85fr);align-items:start;gap:1.25rem;display:grid}.filter-bar{grid-template-columns:minmax(150px,.9fr) minmax(130px,.65fr) minmax(140px,.7fr) minmax(220px,1fr) auto;align-items:end;gap:.85rem;margin-bottom:.75rem;display:grid}.filter-search{min-width:0}.filter-reset{justify-content:center;min-height:42px}.filter-count{color:var(--stone);margin-bottom:1rem;font-size:.8rem}.repetition-card{flex-direction:column;gap:.75rem;display:flex}.repetition-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.repetition-summary div{border-radius:var(--radius);background:#fafbfc;border:1px solid #e8ecf0;flex-direction:column;gap:.15rem;padding:1rem;display:flex}.repetition-summary strong{font-family:var(--font-display);color:var(--ink);font-size:1.15rem;line-height:1.25}.repetition-summary span{color:var(--stone);text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;font-weight:700}.repetition-list{flex-direction:column;gap:.9rem;margin-top:.25rem;display:flex}.repetition-row{flex-direction:column;gap:.4rem;display:flex}.repetition-row-head{justify-content:space-between;align-items:center;gap:1rem;display:flex}.repetition-row-head span{color:var(--ink);font-size:.9rem;font-weight:700}.repetition-row-head strong{color:var(--crimson);font-variant-numeric:tabular-nums}.repetition-track{background:#eef2f6;border-radius:999px;height:12px;overflow:hidden}.repetition-fill{border-radius:inherit;background:linear-gradient(90deg, var(--crimson), var(--amber));height:100%}.repetition-meta{color:var(--stone);justify-content:space-between;gap:1rem;font-size:.76rem;display:flex}.empty-chart{border-radius:var(--radius);text-align:center;background:#fafbfc;border:1px dashed #c8d0da;justify-content:center;align-items:center;min-height:120px;padding:1rem;display:flex}.empty-chart p{color:var(--stone);font-size:.9rem}.recorder-panel{border-radius:var(--radius);background:#fafbfc;border:1.5px dashed #c8d0da;flex-direction:column;gap:1rem;padding:1.25rem;display:flex}.recorder-panel.is-recording{background:#fff7f6;border-color:#c0392b73}.recording-status{color:var(--ink);align-items:center;gap:.65rem;display:flex}.recording-dot{background:var(--stone);border-radius:50%;width:12px;height:12px;box-shadow:0 0 0 4px #8a90991f}.is-recording .recording-dot{background:var(--crimson);box-shadow:0 0 0 6px #c0392b1f}.recorder-actions{flex-wrap:wrap;gap:.75rem;display:flex}.location-panel{border-radius:var(--radius-sm);color:#4a5568;background:#fafbfc;border:1.5px solid #d1d8e0;justify-content:space-between;align-items:center;gap:.75rem;min-height:44px;padding:.65rem .75rem;font-size:.86rem;display:flex}.location-panel.ready{color:#166534;background:#f0fdf4;border-color:#27ae6059}.location-panel.error{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.photo-preview{border-radius:var(--radius);background:#fafbfc;border:1px solid #e8ecf0;flex-direction:column;gap:.75rem;padding:.75rem;display:flex}.photo-preview img{object-fit:cover;border-radius:var(--radius-sm);width:100%;max-height:260px}.complaint-photo{object-fit:cover;border-radius:var(--radius);border:1px solid #e8ecf0;width:100%;max-height:320px}.mini-map-card{border-radius:var(--radius);background:#fafbfc;border:1px solid #e8ecf0;overflow:hidden}.map-card{padding-bottom:1.5rem}.google-map{border-radius:var(--radius);border:1px solid #e8ecf0;width:100%;min-height:360px;overflow:hidden}.mini-map-card .google-map{border:none;border-radius:0;min-height:430px}.map-fallback{border-radius:var(--radius);text-align:center;background:#fafbfc;border:1px dashed #c8d0da;flex-direction:column;justify-content:center;align-items:center;gap:.25rem;min-height:240px;padding:1rem;display:flex}.map-fallback p{color:#4a5568;font-size:.9rem}.map-fallback small{color:var(--stone);font-size:.78rem}.map-legend{flex-wrap:wrap;gap:.9rem;margin-bottom:.85rem;display:flex}.map-legend span{color:#4a5568;align-items:center;gap:.35rem;font-size:.82rem;font-weight:700;display:inline-flex}.legend-dot{border-radius:50%;width:10px;height:10px;display:inline-block}.legend-dot.high{background:#b91c1c}.legend-dot.medium{background:#b45309}.legend-dot.low{background:#15803d}.audio-preview{width:100%;min-height:42px}.result-card{min-height:420px}.empty-result{border-radius:var(--radius);text-align:center;background:#fafbfc;border:1px solid #e8ecf0;justify-content:center;align-items:center;min-height:260px;padding:1.25rem;display:flex}.empty-result p{max-width:420px;color:var(--stone)}.result-stack{flex-direction:column;gap:1.2rem;display:flex}.result-stack h4{margin-bottom:.25rem}.result-meta{flex-wrap:wrap;gap:.5rem;display:flex}.result-pill{letter-spacing:.04em;text-transform:uppercase;color:#4a5568;background:#eef2f6;border-radius:99px;align-items:center;padding:.3rem .65rem;font-size:.72rem;font-weight:700;display:inline-flex}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.status-actions{flex-wrap:wrap;gap:.5rem;display:flex}.status-btn{border-radius:var(--radius-sm);color:#4a5568;background:#fafbfc;border:1px solid #d1d8e0;padding:.5rem .75rem;font-size:.8rem;font-weight:700;transition:background .15s,border-color .15s,color .15s}.status-btn:hover{border-color:var(--crimson);color:var(--crimson)}.status-btn.active{color:var(--crimson);background:#c0392b1a;border-color:#c0392b59}.badge.high{color:#b91c1c;background:#fef2f2}.badge.medium{color:#b45309;background:#fff8e1}.badge.low{color:#15803d;background:#f0fdf4}.success-note{color:#166534;border-radius:var(--radius-sm);background:#f0fdf4;border:1px solid #bbf7d0;margin-top:.5rem;padding:.85rem 1rem;font-size:.875rem;font-weight:500}@media (width<=900px){.hero-inner{grid-template-columns:1fr}.hero-stats{min-width:unset;flex-flow:wrap}.workflow-grid{grid-template-columns:1fr}.workflow-step:first-child{border-radius:var(--radius) var(--radius) 0 0}.workflow-step:last-child{border-radius:0 0 var(--radius) var(--radius)}.channel-grid,.stats-row,.dash-stats,.public-grid{grid-template-columns:1fr}.public-map-card{position:static}.authority-grid{grid-template-columns:1fr}.filter-bar{grid-template-columns:1fr 1fr}.repetition-summary{grid-template-columns:1fr}}@media (width<=600px){.topbar{min-height:unset;flex-wrap:wrap;gap:.75rem;padding:.75rem 1rem}.topnav{gap:.25rem}.hero-inner{padding:1.5rem}.stats-row{grid-template-columns:repeat(3,1fr)}.filter-bar{grid-template-columns:1fr}.repetition-meta{flex-direction:column;gap:.2rem}}
