*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{color:#e8eef7;background:#0a1220;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}.page{flex-direction:column;height:100vh;display:flex}.topbar{background:#0d1626;border-bottom:1px solid #1e2c42;justify-content:space-between;align-items:center;padding:8px 16px;display:flex}.topbar h1{letter-spacing:.02em;font-size:15px;font-weight:700}.topbar .sub{color:#93a4bd;font-size:12px}.mapwrap{flex:1;position:relative}#map{position:absolute;inset:0}.panel{z-index:10;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0d1626f0;border:1px solid #24344e;border-radius:10px;padding:12px;font-size:13px;position:absolute}.legend{min-width:170px;max-height:46vh;bottom:12px;left:12px;overflow-y:auto}.legend h3,.sidepanel h3{text-transform:uppercase;letter-spacing:.08em;color:#f0a72f;margin-bottom:8px;font-size:11px}.legend-item{cursor:pointer;border-radius:4px;align-items:center;gap:8px;padding:3px 0;display:flex}.legend-item:hover{color:#fff}.legend-item .sw{border-radius:3px;flex-shrink:0;width:14px;height:14px}.legend-item .cnt{color:#93a4bd;margin-left:auto;font-size:11px}.sidepanel{width:260px;top:12px;right:12px}.sidepanel .pafta{margin-bottom:10px;font-size:18px;font-weight:700}.field{margin-bottom:10px}.field label{color:#93a4bd;margin-bottom:4px;font-size:11px;display:block}.field select,.field input{color:#e8eef7;background:#0a1220;border:1px solid #2a3c5a;border-radius:6px;width:100%;padding:7px 9px;font-size:13px}.btnrow{gap:8px;margin-top:12px;display:flex}button{cursor:pointer;border:0;border-radius:6px;padding:8px 14px;font-size:13px;font-weight:600}.btn-primary{color:#0a1220;background:#f0a72f;flex:1}.btn-primary:disabled{opacity:.5}.btn-ghost{color:#93a4bd;background:0 0;border:1px solid #2a3c5a}.hint{color:#6b7d97;margin-top:8px;font-size:11px}.stats{gap:10px;display:flex}.stats .stat{text-align:center;background:#0a1220;border-radius:6px;flex:1;padding:6px}.stats .stat b{font-size:17px;display:block}.stats .stat span{color:#93a4bd;font-size:10px}.toggle{background:#0a1220;border-radius:6px;gap:4px;margin-bottom:10px;padding:3px;display:flex}.toggle button{color:#93a4bd;background:0 0;flex:1;padding:5px;font-size:11px}.toggle button.on{color:#fff;background:#24344e}.login-card{background:#0d1626;border:1px solid #24344e;border-radius:12px;width:340px;margin:16vh auto 0;padding:28px}.login-card h1{margin-bottom:4px;font-size:18px}.login-card p{color:#93a4bd;margin-bottom:18px;font-size:12px}.err{color:#e56565;margin-top:10px;font-size:12px}.pafta-popup .maplibregl-popup-content{color:#e8eef7;background:#0d1626f2;border:1px solid #24344e;border-radius:8px;padding:8px 12px;font-size:12px;line-height:1.5}.pafta-popup .maplibregl-popup-tip{border-top-color:#24344e}.pafta-tag{font-size:var(--tag-size,12px);color:#fff;white-space:nowrap;letter-spacing:.04em;text-align:center;opacity:var(--tag-opacity,1);text-shadow:0 0 3px #000,0 0 4px #000,0 1px 2px #000;pointer-events:none;-webkit-user-select:none;user-select:none;font-weight:700}.pafta-tag .ini{color:#f0a72f;letter-spacing:.08em;margin-top:.4em;font-size:.85em;font-weight:600;display:block}.proj-list{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;width:100%;max-width:1100px;margin:0 auto;padding:40px;display:grid}.proj-card{color:inherit;background:#0d1626;border:1px solid #24344e;border-radius:12px;padding:22px;text-decoration:none;transition:border-color .15s,transform .15s;display:block}.proj-card:hover{border-color:#f0a72f;transform:translateY(-2px)}.proj-title{font-size:18px;font-weight:700}.proj-sub{color:#93a4bd;margin-top:4px;font-size:12px}.proj-go{color:#f0a72f;margin-top:16px;font-size:12px}.advanced{border-top:1px solid #1b2639;margin-top:10px;padding-top:10px;font-size:11px}.advanced summary{cursor:pointer;color:#6b7d97;-webkit-user-select:none;user-select:none;text-transform:uppercase;letter-spacing:.05em;font-size:11px}.advanced[open] summary{margin-bottom:8px}.advanced .field{margin-bottom:0}
