.auth-screen{min-height:100dvh;display:grid;place-items:center;background:radial-gradient(ellipse at top left,#dcf2ff,#f4f7fa 55%);padding:22px}.auth-card{background:white;width:min(455px,100%);border:1px solid var(--border);box-shadow:0 20px 70px #123d5722;padding:33px;border-radius:20px}.auth-logo{width:220px;max-height:90px;object-fit:contain}.auth-tag{font-size:10px;letter-spacing:1.6px;font-weight:800;color:#427b9a;margin:12px 0}.auth-card h1{margin:14px 0 6px;font-size:26px}.auth-card p{color:var(--muted);font-size:13px;line-height:1.6}.auth-card .field{margin:12px 0;font-size:12px;font-weight:700}.role-tabs{display:flex;background:#eef5fa;padding:4px;border-radius:11px;margin:23px 0 18px;gap:5px}.role-tabs button{flex:1;border:0;background:transparent;padding:12px 5px;border-radius:8px;color:#426479;font-weight:700;font-size:12px}.role-tabs button.active{background:white;color:#095e98;box-shadow:0 2px 9px #1736511b}.auth-submit{width:100%;font-size:14px;padding:13px}.auth-info{font-size:11px!important}.app-locked{display:none!important}body:not(.logged-in) #mobile-nav{display:none!important}.user-name{font-size:12px;font-weight:750;color:#32617d}.week-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:15px}.week-label{font-weight:800;font-size:14px;min-width:195px;text-align:center}.calendar-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;margin:14px 0 19px}.day-cell{background:#fff;border:1px solid #dfeaf0;border-radius:11px;min-height:76px;padding:9px 5px;display:flex;flex-direction:column;align-items:center;gap:6px;color:#56758b}.day-cell b{font-size:18px;color:#103451}.day-cell small{font-size:10px}.day-cell.today{border-color:#007cc2;background:#e9f6ff}.day-cell .day-dot{height:5px;width:22px;background:#087dbb;border-radius:9px}.campaign-item{border:1px solid #e1eaf1;border-radius:13px;padding:16px;margin:10px 0;background:#fcfeff}.campaign-item h3{margin:3px 0 8px;font-size:15px}.campaign-item .campaign-meta{font-size:12px;color:#536c80;line-height:1.8}.campaign-comment{background:#eaf5fc;border-left:3px solid #0d8bc4;border-radius:5px;padding:10px 12px;color:#245d7b;font-size:12px;margin-top:12px}.kpi-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:12px 0}.kpi{border:1px solid #e2edf4;border-radius:10px;padding:11px;text-align:center;background:#f9fcfe}.kpi b{display:block;font-size:22px}.kpi small{color:#758b9d;font-size:10px}.pin-add{position:absolute;top:12px;right:13px;z-index:950;border:0;background:#087aba;color:white;font-size:26px;width:45px;height:45px;border-radius:14px;box-shadow:0 4px 16px #0e395b40}.map-controls{right:70px}.type-chip{display:inline-block;background:#eaf3f9;color:#276687;font-weight:700;padding:5px 8px;border-radius:7px;font-size:10px}.star-button{background:transparent;border:0;color:#263c4d;font-size:31px;padding:0 9px 0 0}.star-button.is-premium{color:#e5a726}.location-entry{border:1px solid var(--border);background:#fff;border-radius:12px;padding:13px;margin-bottom:11px}.location-entry header{display:flex;align-items:center;justify-content:space-between;gap:8px}.proof-slot{border:1px dashed #b8d2e1;padding:10px;border-radius:9px;background:#f6fafc;margin:7px 0;display:flex;justify-content:space-between;align-items:center;gap:9px}.proof-slot small{font-size:11px;color:#5f7e91}.proof-slot.done{border-style:solid;background:#effaf3;border-color:#bce3c9}.people-list{display:grid;gap:10px}.person{border:1px solid var(--border);padding:13px;border-radius:11px;display:flex;justify-content:space-between;align-items:center;gap:8px}.dist{font-weight:800;font-size:11px;color:#256d9a;white-space:nowrap}.message-row{max-width:90%;padding:12px 13px;background:#edf6fb;border-radius:12px;margin:8px 0}.message-row.mine{margin-left:auto;background:#d9f2fb}.message-row small{color:#6c8496;font-size:10px}.message-row p{margin:5px 0;font-size:13px;white-space:pre-wrap}.tiny-help{font-size:11px;color:#687f91}.readonly{color:#59738a;font-size:12px}.big-status{font-size:12px}.reports-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(125px,1fr));gap:12px}.reports-gallery figure{margin:0}.reports-gallery img{width:100%;height:135px;object-fit:cover;border-radius:9px}.reports-gallery figcaption{font-size:10px;color:#6f8495;margin-top:5px}.locked-banner{background:#fff4e2;border:1px solid #ecd19c;color:#805b20;border-radius:10px;padding:12px;margin-bottom:17px;font-size:12px;line-height:1.7}.camp-filter{margin-bottom:15px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}.camp-filter select{min-width:200px}.side-brand img{max-height:60px}.pre-wrap{white-space:pre-wrap}.note-line{line-height:1.55;color:#5e778a;font-size:12px}.map-status{display:flex;gap:12px;flex-wrap:wrap;font-size:11px;color:#59788b;padding:11px 0}.map-status i{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:4px}.pin-div{border:2px solid white;border-radius:50%;width:20px;height:20px;box-shadow:0 1px 7px #10344d99}.detail-photo{width:100%;height:170px;object-fit:cover;border-radius:11px;background:#edf4f8}.section-divider{border:0;border-top:1px solid #e6edf1;margin:16px 0}.inline-form{display:flex;gap:7px}.inline-form input{flex:1}.photo-ack{font-size:12px;color:#147a55}.admin-only{}@media(max-width:760px){.auth-card{padding:21px}.calendar-strip{gap:3px}.day-cell{padding:7px 2px;min-height:64px}.day-cell b{font-size:15px}.day-cell small{font-size:9px}.page-head{flex-wrap:wrap}.kpi-row{gap:5px}.kpi{padding:8px 3px}.kpi b{font-size:18px}.user-name{max-width:94px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-controls{top:66px;right:10px}.pin-add{right:10px}.campaign-item{padding:12px}.proof-slot{align-items:flex-start}.proof-slot .btn{font-size:10px}.day-cell .day-dot{width:15px}.dialog{max-height:94dvh}}
@media print{.sidebar,.topbar,#mobile-nav,.page-head .buttons,.week-toolbar,.btn,.map-controls,.pin-add,#toast{display:none!important}#app{display:block}main{padding:0}.panel{box-shadow:none;break-inside:avoid}.report-print{display:block!important}.map{height:380px!important}}

[hidden]{display:none!important}

/* Loiremedia V3 */
.map-pin{display:block;position:relative;width:30px;height:34px;background:var(--pin);border:2px solid #fff;border-radius:54% 54% 54% 3%;transform:rotate(-45deg);box-shadow:0 3px 9px #123a5580;color:white;font-size:0}.map-pin:before{content:'';position:absolute;top:9px;left:9px;width:9px;height:9px;border-radius:50%;background:white}.custom-location-pin{background:none;border:0}.geolocate-address{grid-column:1/-1;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.geolocate-address small{color:#647e91}.assign-grid{display:grid;gap:5px;max-height:250px;overflow:auto;border:1px solid #d9e6ef;padding:10px;border-radius:9px}.assign-item{display:flex;align-items:center;gap:10px;background:#f5f9fc;padding:8px;border-radius:8px}.assign-item small{display:block;color:#668195}.user-guide{padding-left:25px;color:#4a6c82;line-height:1.9;font-size:13px}.report-brand{border-top:5px solid #1684bc}.report-heading{display:flex;align-items:center;gap:25px}.report-heading img{width:155px;max-height:75px;object-fit:contain}.report-heading h2{margin:0 0 6px}.report-section{margin-top:15px}.report-section .reports-gallery{margin-top:15px}.searchbar select{max-width:220px}@media(max-width:760px){.searchbar{flex-wrap:wrap}.searchbar select{max-width:none;width:100%}.report-heading{gap:10px}.report-heading img{width:120px}}

#authError:not([hidden]){display:block;background:#fff0f0;color:#a21e2b;border:1px solid #f3bec6;border-radius:9px;padding:11px 13px;margin-top:12px;font-size:13px;font-weight:600;line-height:1.45}
