:root{--navy:#122a40;--navy2:#1b3b54;--teal:#078f91;--teal2:#08777c;--gold:#d6a85a;--slate:#6c7d8d;--text:#1b3045;--muted:#708093;--light:#f4f7f9;--border:#e1e8ee;--shadow:0 8px 28px rgba(18,42,64,.06)}
*{box-sizing:border-box}body{background:var(--light);color:var(--text);font:14px/1.55 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;margin:0}a{color:var(--teal2)}a:hover{color:#095963}.app-shell{display:flex;min-height:100vh}.sidebar{flex:0 0 250px;background:linear-gradient(175deg,#142f45,#0e2438);color:#c1d2df;display:flex;flex-direction:column;min-height:100vh;position:sticky;top:0;height:100vh;padding:29px 15px 19px;z-index:1051}.brand-lockup{display:flex;align-items:center;gap:12px;padding:0 11px;margin-bottom:49px;font-size:21px;font-weight:800;letter-spacing:-.5px;text-decoration:none;color:#fff}.brand-lockup:hover{color:#fff}.brand-lockup small{display:block;color:#92b1c0;font-size:9px;letter-spacing:2.6px;margin-top:-3px;font-weight:700}.brand-symbol,.auth-mark{background:linear-gradient(145deg,#16b2ad,#0a7884);color:#fff;border-radius:13px;width:42px;height:42px;display:flex;align-items:center;justify-content:center;font-size:19px;box-shadow:0 8px 19px #05262b44}.sidebar-label{font-size:10px;font-weight:800;letter-spacing:1.8px;color:#7893a5;padding:0 16px;margin-bottom:12px}.sidebar-menu a,.sidebar-logout{display:flex;align-items:center;gap:12px;color:#a8bdcc;border-radius:10px;padding:12px 14px;text-decoration:none;font-size:13px;font-weight:600;width:100%;border:none;background:transparent;text-align:left}.sidebar-menu i,.sidebar-logout i{width:21px;text-align:center}.sidebar-menu a:hover,.sidebar-menu a.is-active,.sidebar-logout:hover{background:#ffffff16;color:#fff}.sidebar-menu a.is-active{box-shadow:inset 3px 0 var(--teal)}.sidebar-bottom{margin-top:auto;border-top:1px solid #ffffff1c;padding-top:18px}.sidebar-account{padding:10px 14px 17px;font-size:12px;color:#9eb3c1}.sidebar-account i{margin-right:10px;color:#59bdb8}.sidebar-logout{cursor:pointer}.main-area{min-width:0;flex:1}.topbar{height:75px;background:#fff;border-bottom:1px solid var(--border);padding:0 38px;display:flex;align-items:center;gap:15px}.topbar-title{font-weight:750;font-size:15px}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:9px;color:var(--muted);font-size:12px}.online-dot{width:8px;height:8px;border-radius:100%;background:#3cab83}.mobile-toggle{display:none;background:none;border:0;font-size:20px;color:var(--navy)}.content-wrap{padding:35px 37px 52px;max-width:1500px;margin:0 auto}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:22px;margin-bottom:27px}.page-heading h1{font-size:27px;font-weight:780;letter-spacing:-.8px;margin:1px 0 6px}.eyebrow{font-size:10px;letter-spacing:1.9px;color:#0b8a8d;font-weight:850;margin-bottom:5px}.muted{color:var(--muted)}.btn{font-weight:650;border-radius:9px;padding:10px 15px;font-size:13px}.btn-sm{font-size:12px;padding:6px 11px}.btn-brand{background:#087f85;border:1px solid #087f85;color:#fff}.btn-brand:hover,.btn-brand:focus{background:#06686e;border-color:#06686e;color:#fff}.btn-outline-primary{--bs-btn-color:#087f85;--bs-btn-border-color:#a5cdd0;--bs-btn-hover-bg:#087f85;--bs-btn-hover-border-color:#087f85;--bs-btn-active-bg:#087f85;--bs-btn-active-border-color:#087f85}.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:19px;margin:23px 0}.stat-card{background:#fff;border:1px solid var(--border);border-radius:15px;padding:22px 23px;display:flex;gap:19px;align-items:center;box-shadow:var(--shadow)}.stat-icon{width:49px;height:49px;display:grid;place-items:center;border-radius:13px;background:#edf8f8;color:var(--teal);font-size:19px}.stat-number{display:block;font-weight:800;font-size:26px;line-height:1.2}.stat-name{display:block;font-size:12px;color:var(--muted);margin-top:4px}.panel{background:#fff;border:1px solid var(--border);border-radius:15px;padding:26px;box-shadow:var(--shadow);margin-bottom:21px;min-width:0}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding-bottom:22px;margin-bottom:23px;border-bottom:1px solid var(--border)}.panel-heading h2{font-size:18px;font-weight:800;margin:0 0 4px;letter-spacing:-.25px}.panel-heading p{margin:0}.section-icon{font-size:21px;color:#b4c6ce;padding:9px}.project-table th,.point-table th{color:#738498;font-size:11px;text-transform:uppercase;letter-spacing:.75px;border-bottom-color:#e6ebef;font-weight:750}.project-table th,.project-table td,.point-table th,.point-table td{padding:14px 12px}.count-pill{background:#eef8f8;color:#08797c;padding:4px 10px;border-radius:8px;font-weight:800}.actions-cell{white-space:nowrap}.empty-state{text-align:center;padding:50px 20px}.empty-icon{width:72px;height:72px;border-radius:18px;background:#edf6f7;color:var(--teal);display:grid;place-items:center;font-size:29px;margin:0 auto 18px}.empty-state h3{font-size:18px;font-weight:780}.empty-state p{color:var(--muted);max-width:400px;margin:0 auto 17px}.help-strip{display:flex;gap:12px;align-items:flex-start;background:#eff7f8;border:1px solid #d9eaeb;border-radius:10px;padding:15px 17px;color:#436473;font-size:12px;margin-top:17px}.help-strip i{color:#0a8b91;margin-top:2px}.back-link{font-size:12px;font-weight:750;text-decoration:none}.toolbar-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.editor-grid{display:grid;grid-template-columns:250px minmax(0,1fr);gap:23px;align-items:start}.editor-nav{background:#fff;border:1px solid var(--border);border-radius:15px;padding:19px 10px;box-shadow:var(--shadow);position:sticky;top:18px}.editor-nav-title{font-size:10px;font-weight:850;color:#8da0af;letter-spacing:1.1px;padding:0 11px;margin:0 0 10px}.editor-tabs .nav-link{display:flex;align-items:center;text-align:left;gap:12px;padding:12px;border-radius:9px;color:#5c7182;margin-bottom:4px}.editor-tabs .nav-link:hover{background:#f3f8f9}.editor-tabs .nav-link.active{background:#ecf6f6;color:#087a81;box-shadow:inset 3px 0 #0c999e}.editor-tabs i{font-size:15px;width:23px;text-align:center}.editor-tabs strong{font-size:12px;display:block;line-height:1.35}.editor-tabs small{font-size:10px;font-weight:500;display:block;margin-top:2px;color:#91a0ac}.editor-nav-foot{font-size:11px;color:#8998a7;background:#f7fafb;border-radius:9px;margin:20px 7px 0;padding:12px}.editor-nav-foot i{display:block;font-size:15px;margin-bottom:7px;color:#0d9393}.form-label{font-size:12px;color:#35495b;font-weight:750;margin-bottom:7px}.form-control,.form-select{border:1px solid #d9e3e9;border-radius:9px;color:#223749;font-size:13px;padding:10px 12px;min-width:0}.form-control:focus,.form-select:focus{border-color:#53b6b5;box-shadow:0 0 0 .19rem #0d92951e}.form-control::placeholder{color:#9baab8}.form-text{color:#8a9ba7;font-size:11px;margin-top:7px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 20px}.grid-full{grid-column:1/-1}.form-field{min-width:0}.mono-textarea,.coord-input{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px}.mono-textarea{line-height:1.7}.hours-table{overflow-x:auto}.hours-head,.hours-row{display:grid;grid-template-columns:94px repeat(4,minmax(100px,1fr)) 125px;align-items:center;gap:9px;min-width:700px;padding:9px 0;border-bottom:1px solid #eef1f4}.hours-head{text-transform:uppercase;letter-spacing:.4px;color:#8699aa;font-size:10px;font-weight:850}.hours-row strong{font-size:12px}.hours-row .form-control{padding:8px;font-size:11px}.hour-checks{display:flex;flex-direction:column;gap:5px;font-size:11px;color:#52697b}.hour-checks label{display:flex;gap:6px;align-items:center}.field-title-row{display:flex;justify-content:space-between;align-items:center}.field-count{color:#6d8693;font-size:11px;font-weight:800;background:#eef5f6;border-radius:20px;padding:5px 10px;white-space:nowrap}.point-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:15px}.search-box{display:flex;align-items:center;gap:9px;border:1px solid #e0e7ec;border-radius:9px;padding:0 11px;max-width:330px;flex:1}.search-box i{color:#96a6b4}.search-box input{border:0;background:transparent;outline:none;padding:10px 0;font-size:12px;min-width:0;flex:1}.point-table{min-width:630px}.point-table td{font-size:12px}.point-table code{font-size:11px;color:#52718d}.point-colour-cell{display:flex;align-items:center;gap:9px}.mini-swatch{display:inline-block;width:14px;height:14px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 2px #f0f5f7}.point-colour-select{max-width:116px;padding:6px 9px}.icon-button{background:#f2f5f7;color:#556a7d;border:0;border-radius:7px;width:30px;height:30px;margin-left:4px}.icon-button:hover{background:#e3ebef;color:#112d44}.delete-icon:hover{background:#fff0ef;color:#be4f49}.empty-points{padding:25px;text-align:center;color:#7b93a3;font-size:12px}.empty-points i{font-size:22px;display:block;margin-bottom:7px}.separator{margin:22px 0;display:flex;align-items:center;gap:14px;color:#9aa8b5;letter-spacing:1px;font-size:10px;font-weight:800}.separator:before,.separator:after{content:"";height:1px;background:#e3ebee;flex:1}.setting-toggles{display:flex;flex-direction:column;gap:15px;margin:20px 0}.setting-toggles .form-check-label{font-size:13px}.form-check-input:checked{background-color:#0c9292;border-color:#0c9292}.swatch-group{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:9px}.swatch{border:1px solid #e0e8ed;border-radius:10px;padding:12px 4px;text-align:center;cursor:pointer;min-width:0;position:relative}.swatch:has(input:checked){border-color:#0e8b92;box-shadow:0 0 0 2px #0e8b921f;background:#f2f9f9}.swatch input{position:absolute;opacity:0;inset:0;cursor:pointer;width:100%;height:100%}.swatch-dot{display:block;width:24px;height:24px;margin:0 auto 8px;border-radius:50%;box-shadow:0 2px 5px #12283a2b}.swatch-name{display:block;font-size:11px;color:#60778a;font-weight:650}.range-combo{display:flex;gap:14px;align-items:center}.range-combo .form-range{flex:1}.range-combo output{background:#f2f6f8;padding:5px 10px;border-radius:6px;white-space:nowrap;font-size:12px;font-weight:700}.form-range::-webkit-slider-thumb{background:#0c8a91}.form-range::-moz-range-thumb{background:#0c8a91}.map-frame{width:100%;height:475px;background:#e9efed;border-radius:11px;border:1px solid #dde5e8;overflow:hidden;z-index:1}.map-caption{color:#899ba9;font-size:10px;margin-top:9px}.map-caption i{margin-right:4px}.custom-map-marker{font-size:32px;color:var(--marker);width:32px;height:40px;text-shadow:0 2px 5px #0003;line-height:1}.custom-map-marker i{filter:drop-shadow(0px 2px 2px #1d2c3a25)}.preview-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:20px}.preview-summary div{background:#f4f8f9;border-radius:10px;padding:14px}.preview-summary strong{display:block;font-size:17px}.preview-summary span{color:#7890a0;font-size:11px}.sticky-save{display:flex;justify-content:space-between;align-items:center;gap:20px;background:#eaf1f3;border:1px solid #dbe6ec;padding:15px 20px;border-radius:12px;color:#657e8e;font-size:12px}.import-form{display:block}.import-form input[type=file]{max-width:650px}.auth-body{background:radial-gradient(circle at 16% 20%,#215a68 0%,transparent 35%),linear-gradient(140deg,#152b42,#071b2d);min-height:100vh}.auth-main{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:25px}.auth-panel{background:#fff;border-radius:17px;padding:42px;box-shadow:0 24px 90px #0004;width:100%;max-width:440px}.auth-mark{width:53px;height:53px;margin-bottom:23px;font-size:24px}.auth-panel h1{font-weight:800;font-size:27px;margin:8px 0}.auth-panel .muted{margin-bottom:24px}.app-toasts{position:fixed;right:22px;bottom:22px;z-index:2000;width:min(390px,calc(100vw - 36px))}.app-toast{background:#153d4c;color:#fff;box-shadow:0 12px 28px #0a20364a;border-left:4px solid #4bcead;display:flex;align-items:center;gap:11px;border-radius:9px;padding:14px 16px;margin-top:8px;font-size:12px}.app-toast-danger{border-left-color:#f18b80}.app-toast i{font-size:17px}.table{--bs-table-bg:transparent}.leaflet-container{font-family:system-ui,Arial,sans-serif}.leaflet-popup-content{font-size:13px}.leaflet-popup-content p{margin:5px 0}.modal-content{border:0;border-radius:15px;padding:9px}.modal-header,.modal-footer{border-color:#e7edf1}.modal-title{font-weight:750}
@media(max-width:1199px){.swatch-group{grid-template-columns:repeat(4,1fr)}.editor-grid{grid-template-columns:210px minmax(0,1fr)}.editor-nav{padding:15px 6px}.content-wrap{padding:28px 22px}.topbar{padding:0 24px}}
@media(max-width:900px){.sidebar{position:fixed;left:-275px;top:0;transition:left .2s ease}.sidebar-open .sidebar{left:0}.mobile-toggle{display:block}.main-area{width:100%}.editor-grid{grid-template-columns:1fr}.editor-nav{position:static}.editor-tabs{flex-direction:row!important;overflow-x:auto;flex-wrap:nowrap!important;gap:6px}.editor-tabs .nav-link{white-space:nowrap;flex-shrink:0}.editor-tabs small,.editor-nav-title,.editor-nav-foot{display:none!important}.editor-nav{padding:9px}.editor-tabs .nav-link{margin:0}.stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:630px){.content-wrap{padding:20px 13px}.page-heading{display:block}.page-heading .toolbar-actions,.page-heading form{margin-top:18px}.page-heading h1{font-size:23px}.stat-grid{grid-template-columns:1fr}.stat-card{padding:14px}.panel{padding:19px 15px}.form-grid{grid-template-columns:1fr}.grid-full{grid-column:1}.swatch-group{grid-template-columns:repeat(4,1fr)}.sticky-save{display:block}.sticky-save button{margin-top:10px;width:100%}.preview-summary{grid-template-columns:1fr}.toolbar-actions{flex-wrap:wrap}.map-frame{height:380px}.topbar{padding:0 16px}.auth-panel{padding:27px 20px}}
