:root{--primary: #1e3a5f;--primary-light: #2d4a6f;--primary-dark: #152a45;--accent: #d97706;--accent-light: #fef3c7;--accent-dark: #b45309;--success: #166534;--success-bg: #dcfce7;--error: #b91c1c;--error-bg: #fef2f2;--white: #ffffff;--gray-50: #f8fafc;--gray-100: #f1f5f9;--gray-200: #e2e8f0;--gray-300: #cbd5e1;--gray-400: #94a3b8;--gray-500: #64748b;--gray-600: #475569;--gray-700: #334155;--gray-800: #1e293b;--gray-900: #0f172a;--radius: 8px;--radius-sm: 6px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--gray-100);color:var(--gray-900);line-height:1.5;-webkit-font-smoothing:antialiased}.app{min-height:100vh;min-height:100dvh}.home-page{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;padding:16px;max-width:420px;margin:0 auto;background:var(--gray-100)}.home-page header{text-align:center;padding:24px 0 20px}.home-page .logo{display:inline-flex;align-items:center;gap:10px;color:var(--primary)}.home-page .logo h1{font-size:22px;font-weight:700;color:var(--gray-900)}.home-page .tagline{color:var(--gray-500);font-size:13px;margin-top:2px;text-transform:uppercase;letter-spacing:.05em}.home-page main{flex:1}.home-page .intro{text-align:center;margin-bottom:20px}.home-page .intro h2{font-size:17px;font-weight:600;color:var(--gray-800);margin-bottom:6px}.home-page .intro p{color:var(--gray-600);font-size:14px}.home-page .info-section{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius);padding:16px;margin-top:20px}.home-page .info-section h3{font-size:13px;font-weight:600;color:var(--gray-700);margin-bottom:10px;text-transform:uppercase;letter-spacing:.03em}.home-page .info-section ul{list-style:none;font-size:14px;color:var(--gray-600)}.home-page .info-section li{padding:5px 0 5px 14px;position:relative}.home-page .info-section li:before{content:"";position:absolute;left:0;top:12px;width:4px;height:4px;background:var(--accent);border-radius:50%}.home-page footer{text-align:center;padding:20px 0 12px;color:var(--gray-400);font-size:11px;text-transform:uppercase;letter-spacing:.05em}.report-form{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius);padding:20px}.form-section{margin-bottom:14px}.form-section:last-of-type{margin-bottom:16px}.capture-btn{width:100%;padding:32px 20px;border:2px dashed var(--gray-300);border-radius:var(--radius);background:var(--gray-50);color:var(--gray-600);font-size:15px;font-weight:500;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:10px}.capture-btn:hover,.capture-btn:active{border-color:var(--primary);background:var(--white);color:var(--primary)}.photo-preview{position:relative;border-radius:var(--radius);overflow:hidden}.photo-preview img{width:100%;display:block}.retake-btn{position:absolute;bottom:10px;right:10px;background:#000000b3;color:var(--white);border:none;padding:8px 14px;border-radius:4px;font-size:13px;font-weight:500;cursor:pointer}.location-status{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-sm);font-size:14px;color:var(--gray-600)}.location-status.success{background:var(--success-bg);border-color:var(--success);color:var(--success)}.location-hint{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-sm);font-size:13px;color:var(--gray-500)}.location-error{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 14px;background:var(--error-bg);border:1px solid var(--error);border-radius:var(--radius-sm);font-size:13px;color:var(--error)}.location-error button{margin-left:auto;background:var(--error);color:var(--white);border:none;padding:6px 12px;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer}.report-form textarea{width:100%;padding:12px 14px;border:1px solid var(--gray-200);border-radius:var(--radius-sm);font-size:14px;font-family:inherit;resize:none;background:var(--gray-50)}.report-form textarea::placeholder{color:var(--gray-400)}.report-form textarea:focus{outline:none;border-color:var(--primary);background:var(--white)}.error-message{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--error-bg);border-radius:var(--radius-sm);font-size:14px;color:var(--error);margin-bottom:14px}.submit-btn{width:100%;padding:14px 20px;background:var(--primary);color:var(--white);border:none;border-radius:var(--radius-sm);font-size:15px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px}.submit-btn:hover:not(:disabled){background:var(--primary-dark)}.submit-btn:disabled{background:var(--gray-300);color:var(--gray-500);cursor:not-allowed}.success-message{text-align:center;padding:32px 20px}.success-message svg{color:var(--success)}.success-message h2{margin:16px 0 6px;font-size:18px;font-weight:600;color:var(--gray-800)}.success-message p{color:var(--gray-500);font-size:14px}.admin-page{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--gray-50)}.admin-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--primary);color:var(--white)}.header-left h1{font-size:16px;font-weight:600}.report-count{font-size:12px;opacity:.8;margin-top:2px}.refresh-btn{width:36px;height:36px;border:1px solid rgba(255,255,255,.3);border-radius:var(--radius-sm);background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--white)}.refresh-btn:hover:not(:disabled){background:#ffffff1a}.refresh-btn:disabled{opacity:.5}.filters-bar{display:flex;flex-wrap:wrap;gap:10px;padding:12px 16px;background:var(--white);border-bottom:1px solid var(--gray-200)}.date-filters{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--gray-500)}.date-input{display:flex;align-items:center;gap:6px;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-sm);padding:8px 10px}.date-input svg{color:var(--gray-400)}.date-input input{border:none;background:transparent;font-size:13px;width:110px;color:var(--gray-700)}.date-input input:focus{outline:none}.quick-filters{display:flex;gap:6px}.quick-filters button{padding:8px 12px;border:1px solid var(--gray-200);border-radius:var(--radius-sm);background:var(--white);font-size:12px;font-weight:500;color:var(--gray-600);cursor:pointer}.quick-filters button:hover{background:var(--gray-50);border-color:var(--gray-300)}.admin-content{flex:1;overflow-y:auto}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--gray-500);gap:12px}.report-list{padding:16px;display:flex;flex-direction:column;gap:12px}.report-list.empty{align-items:center;justify-content:center;min-height:200px;color:var(--gray-400);font-size:14px}.report-card{display:flex;gap:14px;padding:14px;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius);cursor:pointer}.report-card:hover{border-color:var(--gray-300)}.report-card.selected{border-color:var(--primary);border-width:2px}.report-image{width:70px;height:70px;flex-shrink:0}.report-image img{width:100%;height:100%;object-fit:cover;border-radius:var(--radius-sm)}.report-info{flex:1;min-width:0}.report-meta{margin-bottom:4px}.report-date{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--gray-600);font-weight:500}.report-location{margin-top:6px}.report-location a{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--primary);text-decoration:none}.report-location a:hover{text-decoration:underline}.report-comment{display:flex;align-items:flex-start;gap:6px;font-size:13px;color:var(--gray-600);margin-top:8px}.report-comment svg{flex-shrink:0;margin-top:2px}.report-comment span{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.view-full{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--gray-500);text-decoration:none;margin-top:8px}.view-full:hover{color:var(--primary)}.spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(min-width:768px){.admin-header{padding:16px 24px}.filters-bar{padding:14px 24px}.report-list{padding:20px 24px;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}}
