@font-face{font-family:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Inter_f367f3;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Inter_Fallback_f367f3;src:local("Arial");ascent-override:90.49%;descent-override:22.56%;line-gap-override:0.00%;size-adjust:107.06%}.__className_f367f3{font-family:__Inter_f367f3,__Inter_Fallback_f367f3;font-style:normal}:root{--bg-primary:#0f172a;--bg-secondary:#1e293b;--bg-tertiary:#334155;--accent:#3b82f6;--accent-hover:#2563eb;--accent-secondary:#10b981;--text-primary:#f8fafc;--text-secondary:#94a3b8;--border:#334155;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--transition:all 0.2s cubic-bezier(0.4,0,0.2,1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased}.container{max-width:1200px;margin:0 auto;padding:1rem}@media (min-width:640px){.container{padding:2rem}}.header{margin-bottom:1.5rem;text-align:center}.header-logo{font-size:2rem;margin-bottom:.4rem}.header h1{font-size:1.8rem;font-weight:800;background:linear-gradient(135deg,#60a5fa,#3b82f6);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:.25rem;letter-spacing:-.025em}@media (min-width:640px){.header{margin-bottom:3rem}.header-logo{font-size:3rem}.header h1{font-size:2.5rem}}.header p{color:var(--text-secondary);font-size:.95rem}@media (min-width:640px){.header p{font-size:1.125rem}}.dashboard-grid{display:grid;grid-template-columns:1fr;grid-gap:1rem;gap:1rem}@media (min-width:1024px){.dashboard-grid{grid-template-columns:1fr 1fr;align-items:start;gap:2rem}}.card{background-color:var(--bg-secondary);border-radius:var(--radius-xl);padding:1.25rem;box-shadow:var(--shadow-lg);border:1px solid var(--border)}@media (min-width:640px){.card{padding:2rem}}.card-inner{background-color:rgba(0,0,0,.15);border-radius:var(--radius-lg);padding:1.25rem;border:1px solid var(--border)}h2{font-size:1.5rem;margin-bottom:1.5rem;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:.5rem}.count-badge{background:var(--accent);color:#fff;font-size:.875rem;padding:2px 10px;border-radius:999px;font-weight:700}.client-form{gap:1.25rem}.client-form,.form-row{display:flex;flex-direction:column}.form-row{gap:1rem}@media (min-width:640px){.form-row{flex-direction:row}.form-row .form-group{flex:1 1}}.form-group{display:flex;flex-direction:column;gap:.4rem}.full-width{width:100%}label{font-size:.8rem;font-weight:500}.optional-tag,label{color:var(--text-secondary)}.optional-tag{font-size:.7rem;background:var(--bg-tertiary);padding:1px 6px;border-radius:4px;margin-left:4px}input,textarea{width:100%;padding:.65rem .9rem;background-color:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-family:inherit;font-size:.95rem;transition:var(--transition)}input:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.2)}input[readonly]{background-color:var(--bg-tertiary);color:var(--text-secondary);cursor:default;font-size:.85rem}::placeholder{color:var(--bg-tertiary)}button{cursor:pointer;font-family:inherit;font-weight:600;font-size:.95rem;border-radius:var(--radius-md);border:none;transition:var(--transition);display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.7rem 1.4rem}.btn-sm{padding:.45rem .9rem;font-size:.85rem}.button-primary{background-color:var(--accent);color:#fff}.button-primary:hover{background-color:var(--accent-hover);transform:translateY(-1px)}.button-secondary{background-color:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border)}.button-secondary:hover{background-color:var(--border)}.submit-button{background:linear-gradient(135deg,var(--accent),var(--accent-hover));color:#fff;padding:.9rem;font-size:1.05rem;margin-top:.5rem;box-shadow:var(--shadow-md)}.submit-button:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.submit-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.location-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}.location-header h3{font-size:1rem;color:var(--text-primary);font-weight:600}.location-actions{display:flex;gap:.5rem;flex-wrap:wrap}.status-message{font-size:.8rem;padding:.4rem .8rem;border-radius:var(--radius-md);margin-bottom:.75rem;display:inline-block;background-color:rgba(16,185,129,.1);color:var(--accent-secondary)}.clients-list{display:flex;flex-direction:column;gap:.6rem}.empty-state{text-align:center;padding:3rem;color:var(--text-secondary);border-radius:var(--radius-md);border:1px dashed var(--border)}.client-item,.empty-state{background-color:var(--bg-primary)}.client-item{border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;transition:var(--transition)}.client-item.open{border-color:var(--accent);box-shadow:0 0 0 1px rgba(59,130,246,.2)}.client-header{display:flex;width:100%;align-items:center;justify-content:space-between;padding:.9rem 1.1rem;background:transparent;border:none;cursor:pointer;text-align:left;font-weight:500;color:var(--text-primary);gap:.5rem;font-size:.95rem}.client-header:hover{background-color:hsla(0,0%,100%,.03)}.client-title-row{display:flex;align-items:center;gap:.6rem;min-width:0}.client-icon{font-size:1.1rem;flex-shrink:0}.client-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.client-meta{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.client-date{font-size:.75rem;color:var(--text-secondary)}.location-badge{font-size:.85rem}.chevron{color:var(--text-secondary);font-size:1.4rem;line-height:1;transition:transform .2s ease;display:inline-block;transform:rotate(0deg)}.chevron.up{transform:rotate(90deg)}.client-details{display:grid;grid-gap:.6rem;gap:.6rem;border-top:1px solid var(--border);padding:.9rem 1.1rem 1rem}.detail-group{display:flex;align-items:baseline;gap:.75rem;font-size:.9rem}.detail-group .label{color:var(--text-secondary);min-width:100px;font-weight:500;flex-shrink:0}.detail-group .value{color:var(--text-primary)}.detail-group code{background:var(--bg-tertiary);padding:1px 6px;border-radius:4px;font-size:.85em;color:#93c5fd}.map-link{text-decoration:none;font-size:.8rem}.card-actions{display:flex;gap:.5rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border)}.btn-edit{flex:1 1;padding:.5rem .75rem;background:rgba(59,130,246,.12);color:#93c5fd;border:1px solid rgba(59,130,246,.25);border-radius:var(--radius-md);font-size:.85rem;cursor:pointer;transition:var(--transition)}.btn-edit:hover{background:rgba(59,130,246,.22)}.btn-delete{padding:.5rem .75rem;background:rgba(239,68,68,.1);color:#f87171;border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-md);font-size:.85rem;cursor:pointer;transition:var(--transition)}.btn-delete:hover{background:rgba(239,68,68,.2)}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:9999;display:flex;align-items:flex-end;justify-content:center;padding:0;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}@media (min-width:640px){.modal-overlay{align-items:center;padding:1rem}}.modal-box{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 -10px 40px rgba(0,0,0,.4);overflow:hidden}@media (min-width:640px){.modal-box{border-radius:var(--radius-xl);max-width:560px;max-height:85vh;box-shadow:0 25px 60px rgba(0,0,0,.5)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border);flex-shrink:0}.modal-header h3{font-size:1.1rem;font-weight:700;color:var(--text-primary);margin:0}.modal-close{background:transparent;border:none;color:var(--text-secondary);font-size:1.2rem;cursor:pointer;padding:.25rem .5rem;border-radius:6px;line-height:1;transition:background .15s}.modal-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.modal-body{padding:1.5rem;overflow-y:auto;flex:1 1;display:flex;flex-direction:column;gap:.75rem}.modal-footer{padding:1rem 1.5rem;border-top:1px solid var(--border);display:flex;gap:.5rem;flex-shrink:0;background:var(--bg-secondary)}.map-container-wrapper{margin-top:.75rem;border-radius:var(--radius-lg);overflow:hidden}.settings-link{display:inline-block;margin-top:1rem;color:var(--text-secondary);text-decoration:none;font-size:.875rem;transition:color .2s;padding:.4rem .8rem;border-radius:var(--radius-md);border:1px solid var(--border)}.settings-link:hover{color:var(--text-primary);border-color:var(--accent)}.login-wrapper{display:flex;justify-content:center;padding:2rem 0}.login-card{max-width:440px;width:100%;text-align:center}.login-icon{font-size:3rem;margin-bottom:1rem}.login-card h2{justify-content:center;font-size:1.5rem}.login-subtitle{color:var(--text-secondary);margin:.5rem 0 1.5rem;font-size:.95rem}.login-form{text-align:left}.error-message{color:#f87171;background:hsla(0,91%,71%,.1);padding:.5rem 1rem;border-radius:var(--radius-md);font-size:.875rem;margin-bottom:.5rem}.back-link-bottom{display:block;margin-top:1.5rem;color:var(--text-secondary);font-size:.875rem;text-decoration:none}.back-link-bottom:hover{color:var(--text-primary)}.settings-wrapper{display:flex;flex-direction:column;gap:1.5rem;max-width:780px;margin:0 auto}.settings-topbar{display:flex;justify-content:space-between;align-items:center}.settings-card h3{font-size:1.125rem;font-weight:600;margin-bottom:.5rem;gap:.5rem}.settings-card h3,.ssl-header{display:flex;align-items:center}.ssl-header{justify-content:space-between;cursor:pointer}.ssl-header h3{margin-bottom:0}.settings-desc{color:var(--text-secondary);font-size:.9rem;line-height:1.6}.ssl-row{margin-top:1rem}.ssl-label{display:flex;align-items:center;gap:.75rem;font-size:.9rem;cursor:pointer;color:var(--text-secondary)}.ssl-checkbox{width:16px;height:16px;cursor:pointer;accent-color:var(--accent)}.code-block{margin-top:.75rem;padding:1rem 1.25rem;background:rgba(0,0,0,.35);border-radius:var(--radius-md);border:1px solid var(--border);overflow-x:auto}.code-block code{font-size:.82rem;color:#93c5fd}.code-block code,.nginx-preview{font-family:JetBrains Mono,monospace;white-space:pre}.nginx-preview{font-size:.8rem;background:rgba(0,0,0,.35);padding:1rem;border-radius:var(--radius-md);border:1px solid var(--border);overflow-x:auto;color:#a3e635}.ssl-steps{display:flex;flex-direction:column;gap:1.25rem;margin-top:1.25rem}.ssl-step{display:flex;gap:1rem;align-items:flex-start}.step-number{min-width:28px;height:28px;background:var(--accent);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;flex-shrink:0}.ssl-step strong{display:block;margin-bottom:.35rem;color:var(--text-primary);font-size:.95rem}.ssl-step p{color:var(--text-secondary);font-size:.85rem;margin:0 0 .5rem}.clients-list-wrapper{display:flex;flex-direction:column;gap:0}.geo-banner{padding:.65rem 1rem;border-radius:var(--radius-md);margin-bottom:1rem;font-size:.875rem;font-weight:500}.geo-locating{background:rgba(59,130,246,.15);border:1px solid rgba(59,130,246,.3);color:#93c5fd;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.geo-found{background:rgba(16,185,129,.1);border:1px solid rgba(16,185,129,.25);color:#6ee7b7}.geo-denied{background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.25);color:#fcd34d}.list-controls{display:flex;gap:.5rem;margin-bottom:1rem;align-items:center}.search-input{flex:1 1;padding:.6rem .9rem;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-size:.9rem;transition:var(--transition);outline:none}.search-input::placeholder{color:var(--text-secondary)}.search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.15)}.toggle-btn{padding:.55rem 1rem;border-radius:var(--radius-md);font-size:.85rem;font-weight:600;cursor:pointer;border:none;transition:var(--transition);white-space:nowrap}.toggle-btn.btn-primary{background:var(--accent);color:#fff}.toggle-btn.btn-primary:hover{background:var(--accent-hover)}.toggle-btn.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border)}.toggle-btn.btn-secondary:hover{background:var(--border)}.distance-badge{font-size:.75rem;font-weight:700;background:rgba(16,185,129,.15);color:#6ee7b7;border:1px solid rgba(16,185,129,.25);padding:.2rem .5rem;border-radius:20px}