@import"https://fonts.googleapis.com/css2?family=Noto+Sans+Khmer:wght@100;200;300;400;500;600;700;800;900&display=swap";:root{font-family:Noto Sans Khmer,Khmer OS,Khmer OS System,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;padding:0;width:100%;min-width:320px;min-height:100vh;box-sizing:border-box}#root{width:100%;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.khmer-text,.khmer-address{font-family:Noto Sans Khmer,Khmer OS,Khmer OS System,sans-serif;font-size:1.1em;line-height:1.6}.search-results{margin-top:30px}.results-header{margin-bottom:20px}.results-header h3{color:#2c3e50;margin:0;font-size:18px}.results-list{display:grid;gap:12px;grid-template-columns:1fr}@media (min-width: 768px){.results-list{gap:16px}}@media (min-width: 768px){.results-list{grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:16px}}@media (min-width: 1024px){.results-list{grid-template-columns:repeat(auto-fit,minmax(450px,1fr));gap:20px}}@media (min-width: 1440px){.results-list{grid-template-columns:repeat(auto-fit,minmax(500px,1fr));gap:24px}}.result-item{border:1px solid #e1e8ed;border-radius:8px;background:#fff;overflow:hidden;transition:all .2s}.result-item:hover{border-color:#3498db;box-shadow:0 2px 8px #3498db1a}.result-main{display:flex;align-items:center;padding:16px;cursor:pointer;transition:background-color .2s}.result-main:hover{background:#f8f9fa}.result-postal-code{display:flex;align-items:center;gap:8px;min-width:120px;flex-shrink:0}.postal-code{font-weight:600;font-size:16px;color:#2c3e50;font-family:Monaco,Menlo,monospace;background:#e8f4fd;padding:4px 8px;border-radius:4px}.copy-button{background:none;border:none;cursor:pointer;font-size:14px;padding:4px;border-radius:4px;transition:background-color .2s}.copy-button:hover{background:#e9ecef}.result-location{flex-grow:1;padding:0 16px;color:#333;font-size:15px;line-height:1.4}.result-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.map-button{background:none;border:none;cursor:pointer;font-size:16px;padding:6px;border-radius:4px;transition:background-color .2s}.map-button:hover{background:#e9ecef}.expand-button{background:none;border:none;cursor:pointer;color:#666;font-size:12px;padding:4px 8px;transition:color .2s}.expand-button:hover{color:#3498db}.result-details{border-top:1px solid #e1e8ed;background:#f8f9fa;padding:16px}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}.detail-item{display:flex;flex-direction:column;gap:4px}.detail-item label{font-weight:600;color:#666;font-size:12px;text-transform:uppercase;letter-spacing:.5px}.detail-item span{color:#333;font-size:14px}.khmer-name{color:#666;font-style:italic}.inherited-note{color:#888;font-size:12px;font-style:italic}.coordinates{grid-column:1 / -1}.coordinates span{display:flex;align-items:center;gap:8px;font-family:Monaco,Menlo,monospace}.copy-coordinates{background:none;border:none;cursor:pointer;font-size:12px;padding:2px 4px;border-radius:3px;transition:background-color .2s}.copy-coordinates:hover{background:#e9ecef}.formatted-addresses{margin-top:20px;border-top:1px solid #e1e8ed;background:#f8fffe;border-radius:6px;padding:16px}.address-section{margin-bottom:16px}.address-section:last-child{margin-bottom:0}.address-section label{display:block;font-weight:600;color:#2c3e50;font-size:13px;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.address-line{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #e1e8ed;border-radius:6px;padding:12px;transition:all .2s}.address-line:hover{border-color:#3498db;box-shadow:0 2px 8px #3498db1a}.address-text{flex-grow:1;font-size:14px;line-height:1.4;word-break:break-word;-webkit-user-select:all;user-select:all}.khmer-address{font-family:Khmer OS,Khmer OS System,sans-serif;font-size:15px;color:#2c3e50;font-weight:500}.english-address{color:#34495e;font-weight:400}.copy-address-button{background:#3498db;color:#fff;border:none;border-radius:4px;padding:6px 8px;cursor:pointer;font-size:14px;transition:all .2s;flex-shrink:0;display:flex;align-items:center;justify-content:center}.copy-address-button:hover{background:#2980b9;transform:translateY(-1px);box-shadow:0 3px 8px #3498db4d}.copy-address-button:active{transform:translateY(0)}@media (max-width: 480px){.address-line{flex-direction:column;align-items:stretch;gap:12px}.copy-address-button{align-self:center;padding:8px 16px}}.no-results{text-align:center;padding:40px 20px;color:#666}.no-results p{margin-bottom:15px;font-size:16px}.no-results ul{text-align:left;display:inline-block;margin:0;padding-left:20px}.no-results li{margin:8px 0}.results-note{text-align:center;padding:20px;color:#666;font-style:italic;border-top:1px solid #e1e8ed;margin-top:20px}@media (max-width: 600px){.result-main{flex-direction:column;align-items:flex-start;gap:12px}.result-postal-code{min-width:auto;width:100%;justify-content:space-between}.result-location{padding:0;width:100%}.result-actions{width:100%;justify-content:flex-end}.detail-grid{grid-template-columns:1fr}.coordinates{grid-column:1}.coordinates span{flex-direction:column;align-items:flex-start}}.location-lookup{margin:30px 0;padding:25px;background:linear-gradient(135deg,#e3f2fd,#f3e5f5);border:2px solid #e1bee7;border-radius:12px;box-shadow:0 4px 12px #0000001a}.location-header{text-align:center;margin-bottom:20px}.location-header h3{margin:0 0 10px;color:#4a148c;font-size:1.4rem;font-weight:600}.location-header p{margin:0;color:#6a1b9a;font-size:1rem;font-weight:500}.location-actions{text-align:center;margin-bottom:20px}.location-note{color:#6a1b9a}.btn{padding:12px 24px;border:none;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s ease;font-size:.95rem;min-width:160px}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:#007bff;color:#fff}.btn-primary:hover:not(:disabled){background:#0056b3;transform:translateY(-1px)}.btn-secondary{background:#6c757d;color:#fff}.btn-secondary:hover:not(:disabled){background:#545b62;transform:translateY(-1px)}.btn-location{background:linear-gradient(135deg,#9c27b0,#673ab7);font-size:1.1rem;padding:14px 28px;min-width:200px;border-radius:8px;box-shadow:0 4px 12px #9c27b04d}.btn-location:hover:not(:disabled){background:linear-gradient(135deg,#7b1fa2,#512da8);transform:translateY(-2px);box-shadow:0 6px 16px #9c27b066}.location-error{background:#f8d7da;border:1px solid #f5c6cb;border-radius:6px;padding:16px;margin-top:16px}.location-error h4{margin:0 0 8px;color:#721c24;font-size:1rem}.location-error p{margin:0 0 12px;color:#721c24}.error-help{background:#ffffff80;padding:12px;border-radius:4px;margin-top:8px}.error-help small{color:#721c24;line-height:1.4}.location-not-supported{text-align:center;padding:24px;background:#fff3cd;border:1px solid #ffeaa7;border-radius:6px}.location-not-supported h3{margin:0 0 12px;color:#856404}.location-not-supported p{margin:0;color:#856404}.location-result{background:#d4edda;border:1px solid #c3e6cb;border-radius:6px;padding:20px;margin-top:16px}.result-header{text-align:center;margin-bottom:20px}.result-header h4{margin:0 0 8px;color:#155724;font-size:1.1rem}.coordinates{font-family:Courier New,monospace;color:#495057;font-size:.85rem;background:#ffffffb3;padding:4px 8px;border-radius:4px;display:inline-block}.postal-info{max-width:100%}.postal-code-main{display:flex;align-items:center;justify-content:space-between;background:#fffc;padding:12px 16px;border-radius:6px;margin-bottom:16px;border:2px solid #28a745}.postal-code-main .label{font-weight:600;color:#155724}.postal-code{font-family:Courier New,monospace;font-size:1.2rem;font-weight:700;color:#155724;background:#fff;padding:8px 12px;border-radius:4px;border:1px solid #c3e6cb;min-width:80px;text-align:center}.postal-code.clickable{cursor:pointer;transition:all .2s ease}.postal-code.clickable:hover{background:#e9ecef;transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.location-details{background:#ffffffb3;padding:16px;border-radius:6px;margin-bottom:16px}.detail-row{display:flex;justify-content:space-between;margin-bottom:8px;padding:4px 0;border-bottom:1px solid rgba(0,0,0,.1)}.detail-row:last-child{margin-bottom:0;border-bottom:none}.detail-row .label{font-weight:500;color:#495057;flex:0 0 30%}.detail-row .value{color:#155724;font-weight:500;text-align:right;flex:1}.additional-codes{background:#ffffffb3;padding:16px;border-radius:6px;margin-bottom:16px}.additional-codes .label{display:block;font-weight:500;color:#495057;margin-bottom:8px}.postal-codes-list{display:flex;flex-wrap:wrap;gap:8px}.postal-codes-list .postal-code{font-size:.95rem;margin:0}.village-info{background:#ffffffb3;padding:16px;border-radius:6px}.village-info .label{display:block;font-weight:500;color:#495057;margin-bottom:8px}.villages-count{font-weight:600;color:#155724;margin-bottom:8px}.villages-sample{color:#6c757d;font-size:.85rem;line-height:1.4;max-height:60px;overflow:hidden}.location-not-found{background:#fff3cd;border:1px solid #ffeaa7;border-radius:6px;padding:20px;margin-top:16px;text-align:center}.location-not-found h4{margin:0 0 12px;color:#856404}.location-not-found p{margin:8px 0;color:#856404}.location-not-found small{color:#6c757d}@media (max-width: 768px){.location-lookup{margin:16px 0;padding:16px}.postal-code-main{flex-direction:column;text-align:center;gap:8px}.detail-row{flex-direction:column;text-align:center;gap:4px}.detail-row .value{text-align:center}.postal-codes-list{justify-content:center}}.language-toggle{position:fixed;top:20px;right:20px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:25px;padding:10px 20px;font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 4px 15px #0003;transition:all .3s ease;z-index:1000;min-width:80px;text-align:center}.language-toggle:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0000004d;background:linear-gradient(135deg,#764ba2,#667eea)}.language-toggle:active{transform:translateY(0);box-shadow:0 2px 10px #0003}@media (max-width: 768px){.language-toggle{top:15px;right:15px;padding:8px 16px;font-size:13px;min-width:70px}}.language-toggle{font-family:Noto Sans Khmer,Khmer OS,Khmer OS System,sans-serif}.search-interface{width:100%;min-height:100vh;margin:0;padding:20px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;box-sizing:border-box}@media (min-width: 768px){.search-interface{padding:30px}}@media (min-width: 1024px){.search-interface{padding:40px}}@media (min-width: 1440px){.search-interface{padding:50px}}.search-header{text-align:center;margin-bottom:40px;padding-bottom:20px;border-bottom:1px solid rgba(52,152,219,.1)}.search-header h1{color:#2c3e50;margin-bottom:10px;font-size:2.5rem;font-weight:700}.search-header .tagline{color:#666;font-size:18px;margin:0 0 25px;max-width:none;font-weight:400}.service-highlights{display:flex;flex-wrap:wrap;gap:20px;margin-top:20px;justify-content:center}.highlight-item{display:flex;align-items:center;gap:8px;background:linear-gradient(135deg,#f8f9fa,#e9ecef);padding:12px 16px;border-radius:25px;border:1px solid #dee2e6;font-weight:500;color:#495057;transition:all .2s ease}.highlight-item:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0000001a;background:linear-gradient(135deg,#e9ecef,#f8f9fa)}.highlight-icon{font-size:1.2em}@media (max-width: 768px){.service-highlights{justify-content:center;gap:12px}.highlight-item{font-size:.9rem;padding:10px 14px}}@media (max-width: 768px){.search-header{text-align:center}.search-header h1{font-size:2rem}.search-header .tagline{font-size:16px}}.search-mode-selector{display:flex;gap:12px;margin-bottom:25px;justify-content:center;flex-wrap:wrap}.search-mode-selector button{padding:12px 24px;border:2px solid #3498db;background:#fff;color:#3498db;border-radius:8px;cursor:pointer;transition:all .2s ease;font-weight:600;font-size:14px;min-width:120px;position:relative;overflow:hidden}.search-mode-selector button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);transition:left .5s}.search-mode-selector button:hover:before{left:100%}.search-mode-selector button:hover{background:#e8f4fd;transform:translateY(-1px);box-shadow:0 4px 12px #3498db33}.search-mode-selector button.active{background:#3498db;color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px #3498db4d}.search-mode-selector button.active:hover{background:#2980b9}.search-input-container{position:relative;margin-bottom:20px}.search-input{width:100%;padding:15px;border:2px solid #ddd;border-radius:8px;font-size:16px;transition:border-color .2s;box-sizing:border-box}.search-input:focus{outline:none;border-color:#3498db}.clear-button{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:#e74c3c;color:#fff;border:none;border-radius:4px;padding:6px 12px;cursor:pointer;font-size:12px}.clear-button:hover{background:#c0392b}.location-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-bottom:20px}.filter-input{padding:12px;border:2px solid #ddd;border-radius:6px;font-size:14px;transition:border-color .2s}.filter-input:focus{outline:none;border-color:#3498db}.clear-filters-button{grid-column:1 / -1;padding:10px;background:#95a5a6;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px}.clear-filters-button:hover{background:#7f8c8d}.example-searches{margin-bottom:30px;text-align:center;color:#666}.example-button{margin:0 5px;padding:6px 12px;background:#f8f9fa;border:1px solid #ddd;border-radius:4px;cursor:pointer;color:#3498db;font-size:14px;transition:all .2s}.example-button:hover{background:#e9ecef;border-color:#3498db}.loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:40px;color:#666}.loading-spinner{width:20px;height:20px;border:2px solid #e3e3e3;border-top:2px solid #3498db;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error{background:#ffe6e6;border:1px solid #ff9999;color:#d63031;padding:15px;border-radius:6px;margin-bottom:20px}@media (max-width: 600px){.search-interface{padding:15px}.search-mode-selector{flex-direction:row;align-items:center;gap:8px;margin-bottom:20px}.search-mode-selector button{flex:1;min-width:auto;padding:10px 16px;font-size:13px}.location-filters{grid-template-columns:1fr}.example-searches{text-align:center}.example-button{display:inline-block;margin:3px;min-width:80px;padding:8px 12px;font-size:13px}}@media (max-width: 480px){.search-mode-selector{flex-direction:column;gap:10px}.search-mode-selector button{width:100%;max-width:280px}}.developer-api-footer{margin-top:60px;padding:30px;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-radius:12px;border:1px solid #dee2e6;text-align:center}.developer-api-footer h3{color:#495057;margin:0 0 15px;font-size:1.4rem;font-weight:600}.developer-api-footer p{color:#6c757d;font-size:1rem;max-width:500px;margin:0 auto 20px}.api-features{display:flex;flex-wrap:wrap;justify-content:center;gap:15px;margin:20px 0 25px}.api-features span{background:#fff;padding:8px 16px;border-radius:20px;font-size:.9rem;color:#495057;border:1px solid #e9ecef;font-weight:500}.api-links{display:flex;justify-content:center;gap:20px;flex-wrap:wrap}.api-link{display:inline-flex;align-items:center;padding:12px 24px;background:#007bff;color:#fff;text-decoration:none;border-radius:8px;font-weight:500;transition:all .2s ease;font-size:.95rem}.api-link:hover{background:#0056b3;transform:translateY(-1px);box-shadow:0 4px 12px #007bff4d;text-decoration:none;color:#fff}.api-link-primary{background:linear-gradient(135deg,#28a745,#20c997);font-weight:600;box-shadow:0 4px 12px #28a7454d}.api-link-primary:hover{background:linear-gradient(135deg,#218838,#1ea080);box-shadow:0 6px 16px #28a74566;color:#fff}@media (max-width: 768px){.developer-api-footer{margin-top:40px;padding:20px}.api-features{gap:10px}.api-features span{font-size:.85rem;padding:6px 12px}.api-links{flex-direction:column;align-items:center;gap:12px}.api-link{width:100%;max-width:250px;justify-content:center}}.innolabs-footer{margin-top:60px;padding:50px 20px;text-align:center}.footer-content{max-width:600px;margin:0 auto}.footer-logo{margin-bottom:25px}.innolabs-logo{width:80px;height:80px}.footer-text p{margin:0 0 16px;color:#495057;font-size:1rem;line-height:1.7;text-align:center}.footer-text p:last-child{margin-bottom:0;font-size:.95rem;color:#6c757d;font-style:italic}.footer-text strong{color:#2c3e50;font-weight:600}@media (max-width: 768px){.innolabs-footer{margin-top:40px;padding:40px 20px}.innolabs-logo{width:64px;height:64px}.footer-text p{font-size:.95rem}.footer-text p:last-child{font-size:.9rem}}.khmer-search-notice{background:linear-gradient(135deg,#fff3cd,#ffeaa7);border:1px solid #ffc107;border-radius:8px;padding:15px 20px;margin:15px 0;text-align:center}.khmer-search-notice p{margin:0;color:#856404;font-size:.95rem;line-height:1.5}.khmer-search-notice strong{color:#533f03}@media (max-width: 768px){.khmer-search-notice{padding:12px 15px;margin:12px 0}.khmer-search-notice p{font-size:.9rem}}.app{width:100%;min-height:100vh;background:linear-gradient(135deg,#f5f7fa,#c3cfe2);margin:0;padding:0;box-sizing:border-box}
