:root{--ink:#303030;--muted:#707070;--accent:#cd3301;--accent-dark:#a32901;--paper:#f5f5f5;--border:#e5e5e5;--white:#fff;--green:#97cc00;--yellow:#ffff00;--red:#fe0000;--logo-gray:#8c8c8c;--sidebar:242px}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button{cursor:pointer}a:focus-visible,button:focus-visible{outline:3px solid var(--green);outline-offset:3px}h1,h2,h3,p{margin-top:0}h1{font-size:32px;line-height:1.2;letter-spacing:-1px;margin-bottom:10px;font-weight:600}h2{font-size:18px;font-weight:600;letter-spacing:-.3px;margin:0}h3{font-size:17px;margin:7px 0 10px;font-weight:600}small{font-size:12px}input,select,textarea{min-width:0;width:100%;border:1px solid #dadbd3;border-radius:6px;background:#fff;color:var(--ink);padding:10px 12px;outline:none}input:focus,select:focus,textarea:focus{box-shadow:none}input::placeholder,textarea::placeholder{color:#999c95}textarea{resize:vertical}input[type=checkbox]{width:17px;height:17px;accent-color:var(--accent);flex-shrink:0}input[type=file]{font-size:12px;max-width:400px;background:transparent;border:0}input[type=file]::file-selector-button{border:1px solid var(--border);background:#fff;border-radius:4px;padding:7px 12px;margin-right:12px;cursor:pointer}.muted{color:var(--muted)}.preserve{white-space:pre-wrap;overflow-wrap:anywhere}.mono{font-family:ui-monospace,SFMono-Regular,monospace;font-size:12px}.required{color:var(--accent)}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);padding:32px 20px 20px;background:#fff;border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:2}.brand{display:flex;gap:12px;align-items:center;color:var(--ink);font-size:28px;font-weight:600;letter-spacing:-1.4px;margin-bottom:46px}.brand:hover{text-decoration:none}.brand-mark{width:38px;height:42px;display:flex;align-items:center;justify-content:center;font-family:Georgia,serif;font-size:45px;font-style:italic;font-weight:400;color:var(--accent);line-height:1;border-bottom:2px solid var(--accent)}.brand small{display:block;font-size:8px;font-weight:500;letter-spacing:1.5px;margin-top:2px;color:var(--muted)}.nav-label{font-size:9px;letter-spacing:1.6px;color:#93968b;margin:18px 12px 12px}.sidebar>.nav-label{margin-top:0}.nav-link{display:flex;align-items:center;gap:13px;padding:11px 14px;color:#6b7067;border-radius:6px;margin:4px 0;font-size:13px}.nav-link:hover{text-decoration:none;background:#f3f3f3}.nav-link.selected{background:#fcebe5;color:var(--accent);font-weight:600}.nav-icon{font-size:21px;width:23px;line-height:1;text-align:center}.sidebar-footer{margin-top:auto;border-top:1px solid var(--border);padding-top:22px}.account-link{display:flex;align-items:center;gap:10px;color:var(--ink);font-size:12px;font-weight:600}.account-link small{display:block;color:var(--muted);font-size:10px;font-weight:400;margin-top:3px}.avatar{display:flex;align-items:center;justify-content:center;background:#e6e6dc;color:#5b6156;border-radius:50%;width:34px;height:34px;font-size:12px}.logout{background:none;border:0;color:var(--muted);font-size:11px;padding:13px 0 0 44px}.workspace{margin-left:var(--sidebar)}.topbar{height:65px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;padding:0 40px;font-size:11px;color:#84887e;background:#fafafa}.topbar .muted{margin:0 12px}.top-date{font-family:ui-monospace,monospace;font-size:11px}.page{padding:36px 40px 48px;width:100%;max-width:none;margin:0}.page-header{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:30px}.page-header p{margin:0;color:var(--muted);font-size:13px}.eyebrow{color:var(--accent);font-size:9px;font-weight:600;letter-spacing:1.7px;margin-bottom:12px}.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:18px;border:1px solid #d8d9d1;background:#fff;color:#555e51;min-height:39px;padding:9px 15px;border-radius:5px;font-size:12px;font-weight:500;white-space:nowrap}.btn:hover{text-decoration:none;background:#f9f8f4}.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn.primary:hover{background:var(--accent-dark)}.btn:disabled,.btn.disabled{opacity:.45;cursor:default}.btn.full{width:100%;justify-content:space-between}.text-link{font-size:11px;font-weight:600;white-space:nowrap}.text-danger{color:#a14837}.panel{background:var(--white);border:1px solid var(--border);border-radius:8px;margin-bottom:22px;overflow:hidden}.panel-heading{padding:24px;display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:1px solid var(--border)}.panel-heading p{font-size:11px;color:var(--muted);margin:6px 0 0}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:28px}.stat{padding:22px 24px 20px;background:#fff;border:1px solid var(--border);border-radius:8px;color:var(--ink);display:block}.stat:hover{text-decoration:none;border-color:#cfcbbf}.stat>span{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#6d7369}.stat-icon{font-size:19px;color:#909584}.stat strong{display:block;font-size:38px;font-weight:500;letter-spacing:-1px;margin:13px 0 5px;line-height:1.2}.stat small{font-size:10px;color:var(--muted)}.stat.accent{background:#eaece3;border-color:#dfe2d5}.stat.accent strong{color:#546347}.dashboard-grid{display:grid;grid-template-columns:1.65fr 1fr;gap:24px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left}th{padding:13px 24px;font-size:9px;color:#8b8f84;font-weight:500;text-transform:uppercase;letter-spacing:.9px;background:#fcfcfa;white-space:nowrap}td{padding:18px 24px;border-top:1px solid #efefe9;font-size:12px;vertical-align:middle;overflow-wrap:anywhere}td small{display:block;color:var(--muted);margin-top:5px;font-size:10px}.row-title{font-weight:600;color:var(--ink);font-size:12px}.badge{display:inline-flex;align-items:center;gap:6px;font-size:10px;padding:4px 9px;border-radius:4px;background:#f0f0ec;color:#73786d;white-space:nowrap}.badge:before{content:"";width:4px;height:4px;background:currentColor;border-radius:50%}.badge.aberto{background:#edf3ec;color:#537355}.badge.concluido{background:#eaf0f6;color:#567086}.badge.suspenso{background:#fcf1df;color:#ae8244}.badge.arquivado{background:#efefed;color:#7d8078}.activity-list{padding:0 24px}.activity{display:flex;gap:13px;padding:20px 0;border-bottom:1px solid #efefe9;color:var(--ink)}.activity:last-child{border-bottom:0}.activity:hover{text-decoration:none}.activity-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#f1eee6;color:#998367;border-radius:6px;flex-shrink:0}.activity strong{display:block;font-size:12px;margin:4px 0 7px}.activity small{display:block;color:var(--muted);font-size:10px}.mini-label{font-size:9px;color:var(--accent);letter-spacing:.8px;text-transform:uppercase}.tiny-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#89947b}.bottom-note{display:flex;align-items:center;gap:9px;font-size:10px;color:#989b90;margin-top:8px}.filter-bar{display:flex;gap:12px;align-items:center;padding:20px 24px;border-bottom:1px solid var(--border)}.filter-bar input{max-width:380px;font-size:12px}.filter-bar select{max-width:205px;font-size:12px}.empty{text-align:center;color:var(--muted);padding:50px 24px;line-height:2;font-size:12px}.pagination{padding:16px 24px;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--muted)}.pagination .btn{font-size:10px;min-height:31px;padding:5px 10px}.notice{padding:16px 20px;background:#f0ede3;border:1px solid #e3dcc9;border-radius:6px;margin-bottom:20px;font-size:12px}.notice.success{background:#edf4eb;color:#466443;border-color:#d6e4d1}.notice.error{background:#fff0eb;color:#9b4330;border-color:#f2d7cc}.notice ul{padding-left:18px;margin-bottom:0}.form-panel{padding:28px;width:100%;max-width:none}.section-heading{display:flex;gap:16px;align-items:center;margin-bottom:28px}.section-heading p{font-size:12px;color:var(--muted);margin:5px 0 0}.section-number{font-size:12px;font-family:ui-monospace,monospace;color:#a29c8c;border:1px solid #dfded3;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px 24px}.span-2{grid-column:1/-1}.field{display:flex;flex-direction:column;gap:7px;font-size:12px}.field>span{font-weight:500}.field-error{color:#a14837;font-size:10px}.form-stack{display:flex;flex-direction:column;gap:20px}.form-footer{display:flex;justify-content:flex-end;gap:12px;border-top:1px solid var(--border);padding-top:24px;margin-top:28px}.check{display:flex;align-items:center;gap:10px;font-size:12px;cursor:pointer}.check small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.team-row{display:grid;grid-template-columns:1.2fr 1.2fr .8fr .8fr;gap:16px;align-items:center;border-top:1px solid var(--border);padding:20px 0}.team-row:first-child{border-top:0}.detail-panel{padding:28px}.detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.detail-grid>div>span:first-child{display:block;color:var(--muted);font-size:10px;margin-bottom:8px}.detail-grid strong{font-size:12px;font-weight:500;display:block;overflow-wrap:anywhere}.notes{border-top:1px solid var(--border);padding-top:20px;margin-top:24px;font-size:13px}.project-team{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border-top:1px solid var(--border);padding-top:22px;margin-top:24px}.project-team>.mini-label{margin-right:8px}.team-chip{font-size:11px;padding:6px 10px;border:1px solid #e8e8df;border-radius:5px;background:#fafaf7}.team-chip small{font-size:10px;color:var(--muted)}.count{font-size:11px;color:#6e7665;background:#f0f1ea;padding:4px 9px;border-radius:4px;margin-left:10px}.movement-filter{flex-wrap:wrap;gap:10px}.movement-filter input[name=q]{flex:1;min-width:160px}.filter-date{font-size:10px;color:var(--muted);display:flex;gap:6px;align-items:center}.filter-date input{font-size:11px;max-width:150px}.timeline{padding:0 28px}.movement{display:grid;grid-template-columns:68px 1fr;gap:24px;padding:28px 0;border-bottom:1px solid var(--border);scroll-margin-top:20px}.movement:last-child{border-bottom:0}.movement-date{display:flex;flex-direction:column;align-items:center;border-right:1px solid var(--border);padding-right:22px;color:var(--muted);font-size:10px}.movement-date strong{font-size:25px;font-weight:500;color:#616a56}.movement-date small{font-size:9px;margin-top:4px}.movement-top{display:flex;justify-content:space-between;align-items:center}.movement-meta{display:flex;gap:14px;flex-wrap:wrap;color:var(--muted);font-size:11px}.meeting-details{padding:12px 0;font-size:12px;color:#757b6f}.movement details{font-size:12px;margin-top:14px}.movement summary{color:#717b62;cursor:pointer;font-size:11px}.movement details p{padding:15px;background:#fafaf6;border-radius:5px;line-height:1.8}.movement-footer{font-size:9px;color:#91958b;margin-top:17px}.attachments{display:flex;flex-wrap:wrap;gap:10px;margin-top:15px}.attachment{display:flex;align-items:center;gap:10px;color:var(--ink);font-size:11px;background:#faf9f5;border:1px solid var(--border);padding:10px 12px;border-radius:5px;max-width:100%;overflow-wrap:anywhere}.attachment small{display:block;color:var(--muted);font-size:9px;margin-top:3px}.attachment>span:first-child{font-size:18px;color:var(--accent)}.upload-box{border:1px dashed #ccc8b9;border-radius:8px;background:#fcfbf7;display:flex;flex-direction:column;align-items:center;text-align:center;padding:26px;gap:7px;cursor:pointer}.upload-icon{font-size:26px;color:var(--accent)}.upload-box strong{font-size:14px;font-weight:500}.upload-box span:not(.upload-icon),.upload-box small{font-size:11px;color:var(--muted)}.form-panel>.muted{font-size:11px;margin-top:15px}.existing-files{padding:0 24px}.existing-file{display:flex;justify-content:space-between;gap:20px;align-items:center;border-bottom:1px solid var(--border);padding:18px 0;font-size:12px;overflow-wrap:anywhere}.existing-file:last-child{border-bottom:0}.narrow{width:100%;max-width:none}.narrow h2{margin-bottom:5px}.narrow>.muted{margin-bottom:25px}.login-body{background:#fafafa}.login-shell{display:grid;grid-template-columns:1fr 1fr;min-height:100vh}.login-art{position:relative;overflow:hidden;background:#ededed;padding:50px 65px;display:flex;flex-direction:column;justify-content:space-between;min-height:750px}.login-art .brand{position:relative;z-index:1}.login-art h1{font-family:Georgia,serif;font-size:45px;line-height:1.2;letter-spacing:-1.6px;font-weight:400;margin:16px 0 20px}.login-art p{max-width:360px;font-size:13px;line-height:1.8;color:#777d6e}.login-art>.brand+div+div{position:relative;z-index:1;margin-top:240px}.login-art-foot{font-size:9px;letter-spacing:1.8px;color:#959987;margin-top:44px}.login-panel{display:flex;align-items:center;justify-content:center;padding:50px}.login-card{max-width:360px;width:100%}.login-card h2{font-size:28px;font-weight:500;letter-spacing:-.8px;margin-bottom:12px}.login-card>p{font-size:12px;margin-bottom:32px}.login-help{color:#969a90;font-size:10px!important;line-height:1.8;margin-top:28px}.plan-art{position:absolute;width:420px;height:370px;top:120px;left:90px;transform:rotate(-12deg);opacity:.6;border:1px solid #c0bda9}.plan-room{position:absolute;border:3px double #aba892}.plan-room.one{inset:25px 145px 120px 25px}.plan-room.two{inset:25px 25px 120px 285px}.plan-room.three{inset:265px 25px 25px 25px}.plan-axis{position:absolute;left:50%;height:470px;top:-50px;border-left:1px dashed #b8b4a1}.plan-axis:after{content:"";position:absolute;width:520px;top:170px;left:-260px;border-top:1px dashed #b8b4a1}
@media(min-width:1500px){.page{padding-top:44px}.stat{padding:26px}.dashboard-grid{grid-template-columns:1.7fr 1fr}}
@media(max-width:1150px){:root{--sidebar:205px}.sidebar{padding:25px 15px}.page{padding:28px 24px}.topbar{padding:0 24px}.stats-grid{gap:12px}.stat{padding:18px}.stat small{font-size:9px}.dashboard-grid{grid-template-columns:1fr}.detail-grid{grid-template-columns:1fr 1fr}.team-row{grid-template-columns:1fr 1fr}.login-art{padding:40px}.login-art h1{font-size:37px}}
@media(max-width:760px){.sidebar{position:relative;width:100%;padding:18px;border-right:0;border-bottom:1px solid var(--border)}.sidebar .brand{margin:0;font-size:23px}.sidebar .brand-mark{font-size:34px;height:32px;width:28px}.sidebar>.nav-label,.sidebar nav>.nav-label{display:none}.sidebar nav{display:flex;flex-wrap:wrap;gap:3px;margin-top:12px}.nav-link{font-size:11px;padding:7px 9px;gap:5px;margin:0}.nav-icon{font-size:16px;width:18px}.sidebar-footer{display:flex;justify-content:space-between;align-items:center;padding:12px 0 0;margin-top:12px}.account-link{font-size:10px}.avatar{width:26px;height:26px;font-size:10px}.account-link small{display:none}.logout{padding:0;font-size:10px}.workspace{margin-left:0}.topbar{height:45px;padding:0 20px}.page{padding:24px 18px}h1{font-size:27px}.page-header{align-items:flex-start;flex-direction:column;gap:18px;margin-bottom:24px}.stats-grid{grid-template-columns:1fr 1fr}.stat strong{font-size:31px}.stat>span{font-size:10px}.panel-heading{padding:20px}th,td{padding:15px 18px}.filter-bar{padding:16px;flex-wrap:wrap}.filter-bar input,.filter-bar select{max-width:none}.form-panel,.detail-panel{padding:22px 18px}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.form-grid>div:empty{display:none}.detail-grid{gap:22px 15px}.team-row{gap:14px}.team-row>.check{grid-column:1/-1}.team-row>.field:nth-of-type(2){grid-column:1/-1}.pagination{flex-wrap:wrap;gap:10px;padding:15px}.timeline{padding:0 16px}.movement{grid-template-columns:46px 1fr;gap:14px}.movement-date{padding-right:10px}.movement-top{gap:10px}.movement-meta{gap:8px}.login-shell{grid-template-columns:1fr}.login-art{min-height:240px;padding:28px}.login-art .brand{margin-bottom:25px}.login-art h1{font-size:29px;margin:10px 0}.login-art p,.login-art-foot{display:none}.login-art>.brand+div+div{margin-top:0}.plan-art{left:auto;right:-150px;top:-90px;opacity:.35}.login-panel{padding:35px 24px}.login-card{max-width:440px}.login-card h2{font-size:25px}}

/* Original PLARQ artwork; the image is preserved and the white margins are framed with CSS. */
.brand{flex-direction:column;align-items:flex-start;gap:1px;letter-spacing:normal}
.brand-logo{display:block;width:185px;height:82px;object-fit:cover;object-position:50% 54%}
.brand>small{padding-left:12px;font-size:8px;letter-spacing:1.4px}
.login-art .brand-logo{width:230px;height:102px}
.movement-actions{display:flex;align-items:center;gap:12px}
@media(max-width:760px){.sidebar .brand-logo{width:155px;height:69px}.sidebar .brand>small{font-size:7px}.login-art .brand-logo{width:190px;height:84px}.movement-actions{gap:9px}}

/* PLARQ palette, with dark text on the green and yellow highlights. */
.sidebar{border-top:4px solid var(--accent)}
.topbar{border-top:4px solid transparent}
.stat{border-top:3px solid var(--logo-gray)}
.stat:nth-child(2){border-top-color:var(--accent)}
.stat:nth-child(3){border-top-color:var(--green)}
.stat:nth-child(4){border-top-color:var(--yellow)}
.stat.accent{background:#f4f9e7;border-color:#dce9bb;border-top-color:var(--green)}
.stat.accent strong{color:#3e5300}.stat-icon{color:var(--logo-gray)}
.badge.aberto,.badge.concluido{background:#eef6d5;color:#435b00}
.badge.suspenso{background:#ffffcc;color:#625c00}
.badge.arquivado{background:#efefef;color:#686868}
.badge:before{width:6px;height:6px}.badge.aberto:before,.badge.concluido:before{background:var(--green)}.badge.suspenso:before{background:var(--yellow)}
.activity-icon{background:#fcebe5;color:var(--accent)}.tiny-dot{background:var(--green)}
.count{color:#435b00;background:#eef6d5}.text-danger,.field-error{color:#b00000}
.notice.success{background:#f4f9e7;color:#435b00;border-color:#dce9bb}
.notice.error{background:#fff0f0;color:#b00000;border-color:#ffcaca}
.avatar{background:#ededed;color:#626262}.team-chip{background:#fafafa;border-color:var(--border)}
.movement-date strong{color:var(--logo-gray)}.movement summary{color:var(--accent)}
.login-art{border-top:5px solid var(--accent)}.plan-art{border-color:#c4c4c4}.plan-room{border-color:var(--logo-gray)}.plan-room.one{border-color:var(--accent)}.plan-room.two{border-color:var(--green)}.plan-room.three{border-color:#a4a400}.plan-axis,.plan-axis:after{border-color:#b8b8b8}
.history-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.coordination-block{border-top:1px solid var(--border);padding-top:26px;margin-top:20px;margin-bottom:32px;padding-bottom:32px;border-bottom:1px solid var(--border)}.coordinator-options{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
@media(max-width:760px){.panel-heading:has(.history-actions){align-items:flex-start;flex-direction:column}.coordinator-options{grid-template-columns:1fr}.movement-top{flex-wrap:wrap}}

.project-map{display:block;width:100%;height:360px;border:0;background:#ededed}.map-credit{padding:10px 24px;margin:0;font-size:10px;color:var(--muted)}

.sidebar .brand>small{font-size:8px;letter-spacing:.45px;padding-left:12px;max-width:185px;line-height:1.5}
@media(max-width:1150px){.sidebar .brand>small{font-size:7px;letter-spacing:.35px}}

.hours-summary{display:flex;gap:10px;flex-wrap:wrap;padding:18px 24px;border-bottom:1px solid var(--border)}.hours-value{white-space:nowrap;font-weight:600}.time-task{min-width:200px;max-width:500px}.time-actions{display:flex;align-items:center;gap:14px}.time-actions .text-danger{font-size:11px}.hours-help{align-self:center;font-size:12px}

.person-avatar{display:inline-flex;width:26px;height:26px;flex-shrink:0;border-radius:50%;object-fit:cover;vertical-align:middle;background:#ededed}.person-avatar-medium{width:42px;height:42px}.person-avatar-large{width:88px;height:88px}.person-avatar-placeholder{align-items:center;justify-content:center;color:#686868;font-weight:600;font-size:12px}.person-avatar-medium.person-avatar-placeholder{font-size:16px}.person-avatar-large.person-avatar-placeholder{font-size:30px}.person-list-item{display:flex;align-items:center;gap:12px}.profile-photo-edit{display:flex;align-items:center;gap:22px;padding:0 0 22px;margin-bottom:4px;border-bottom:1px solid var(--border)}.photo-controls{flex:1;min-width:0}.photo-controls input[type=file]{width:100%;padding-left:0}.remove-photo{margin-top:12px}.team-chip:has(.person-avatar){display:inline-flex;align-items:center;gap:8px}.photo-controls .muted{font-size:10px}
@media(max-width:760px){.profile-photo-edit{align-items:flex-start;gap:14px}.person-avatar-large{width:64px;height:64px}.person-avatar-large.person-avatar-placeholder{font-size:24px}}

.registry-tabs { display: flex; gap: 8px; margin-bottom: 16px; }
.record-actions { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.record-actions form { margin: 0; }
.record-actions button { cursor: pointer; }

.map-icon { width: 40px; height: 50px; display: block; }
.map-icon-picker { border: 1px solid var(--border); border-radius: 6px; padding: 16px; min-width: 0; }
.map-icon-picker legend { padding: 0 6px; font-size: 12px; font-weight: 600; }
.map-color-field { display: grid; grid-template-columns: auto 72px 1fr; align-items: center; gap: 12px; margin-top: 18px; }
.map-color-field input { width: 72px; height: 40px; padding: 4px; cursor: pointer; }
.map-color-field small { color: var(--muted); }
.project-map { position: relative; overflow: hidden; isolation: isolate; }
.project-map:focus-visible { outline: 3px solid var(--green); outline-offset: 2px; }
.atelier-map-marker { background: none; border: 0; filter: drop-shadow(0 2px 3px #0006); }
.atelier-map-marker .map-icon { width: 48px; height: 60px; }
.map-controls { position: absolute; top: 12px; left: 12px; z-index: 1100; display: flex; flex-direction: column; border: 1px solid #aaa; border-radius: 5px; overflow: hidden; box-shadow: 0 1px 5px #0003; }
.map-controls button { width: 38px; height: 38px; background: white; border: 0; border-bottom: 1px solid #ddd; color: #333; font-size: 24px; line-height: 1; display: flex; align-items: center; justify-content: center; padding: 0; }
.map-controls button:last-child { border-bottom: 0; }
.map-controls button:hover { background: #f3f3f3; }
.map-controls button:disabled { color: #aaa; cursor: default; }
.map-attribution { position: absolute; right: 0; bottom: 0; z-index: 2; background: #fffffff0; padding: 4px 8px; font-size: 10px; }
.map-unavailable { position: absolute; bottom: 26px; left: 12px; right: 12px; z-index: 1100; background: white; padding: 8px 12px; margin: 0; font-size: 12px; }
@media(max-width:600px) { .map-color-field { grid-template-columns: 1fr 72px; } .map-color-field small { grid-column: 1 / -1; } }

:root { --bs-primary: #cd3301; --bs-primary-rgb: 205,51,1; --bs-link-color: #cd3301; --bs-link-hover-color: #a72b03; --bs-border-color: #e0e0e0; }
.fa-icon { display: inline-block; width: 1.1em; height: 1em; vertical-align: -.125em; flex-shrink: 0; overflow: visible; }
.nav-icon { display: inline-flex; align-items: center; justify-content: center; }
.stat-icon .fa-icon { width: 1em; }
.btn { gap: 8px; }
.btn-primary { --bs-btn-bg: #cd3301; --bs-btn-border-color: #cd3301; --bs-btn-hover-bg: #a72b03; --bs-btn-hover-border-color: #a72b03; --bs-btn-active-bg: #a72b03; --bs-btn-active-border-color: #a72b03; }
.table { --bs-table-bg: transparent; --bs-table-color: var(--ink); --bs-table-border-color: var(--border); --bs-table-hover-bg: #faf7f4; margin-bottom: 0; }
.table > :not(caption) > * > * { padding: 18px 24px; }
.form-control,.form-select { font-size: inherit; }
.form-check-input { margin-top: 0; }
.form-check-input:checked { background-color: var(--accent); border-color: var(--accent); }
.sidebar-brand-row { display: flex; align-items: center; justify-content: space-between; }
.sidebar-toggle { display: none; }
.map-controls .fa-icon { font-size: 15px; display: block; }
.map-controls [data-fullscreen-enter], .map-controls [data-fullscreen-exit] { display: flex; align-items: center; justify-content: center; }
.map-controls [data-fullscreen-enter][hidden], .map-controls [data-fullscreen-exit][hidden] { display: none; }
.swal2-popup { font-family: inherit; border-radius: 10px; }
.swal2-actions { gap: 12px; }
.swal2-title { font-size: 24px; }
.swal2-html-container { white-space: pre-line; }
@media(min-width:761px) { .sidebar nav.collapse { display: block !important; } }
@media(max-width:760px) { .sidebar-toggle { display: inline-flex; } .sidebar nav.collapsing,.sidebar nav.collapse.show { display: flex; } .table > :not(caption) > * > * { padding: 15px 18px; } }

.workspace { min-height: 100vh; display: flex; flex-direction: column; }
.workspace .page { flex: 1; }
.platform-footer { padding: 20px 40px; border-top: 1px solid var(--border); color: var(--muted); font-size: 11px; display: flex; gap: 12px; flex-wrap: wrap; }
.platform-footer address { margin: 0; font-style: normal; }
.platform-footer strong { color: var(--accent); }
.login-footer { justify-content: center; }
.marker-settings { display: flex; align-items: center; gap: 24px; }
.marker-settings .field { flex: 1; max-width: 360px; }
.marker-preview { padding: 10px; border-radius: 6px; background: #f5f5f5; }
.bootstrap-select > .dropdown-toggle { background: white; color: var(--ink); border: 1px solid var(--border); min-height: 42px; font-size: 12px; padding: 10px 12px; }
.bootstrap-select .dropdown-menu { font-size: 12px; max-width: 100%; }
.bootstrap-select .dropdown-menu li a { padding: 8px 14px; }
.bootstrap-select .dropdown-item.active { background: var(--accent); color: white; }
.bootstrap-select .dropdown-toggle:focus { outline: none !important; box-shadow: none; }
.bootstrap-select .bs-searchbox .form-control { width: 100%; }
.filter-bar > .bootstrap-select { max-width: 205px; }
.bootstrap-select .filter-option-inner-inner { overflow: hidden; text-overflow: ellipsis; }
@media(max-width:760px) { .platform-footer { padding: 20px 18px; } .filter-bar > .bootstrap-select { max-width: none; } .sidebar nav.collapse:not(.show) { display: none; } }

.projects-overview-map { height: 440px; }
.project-map .leaflet-control-layers { font-family: inherit; font-size: 12px; border: 1px solid #aaa; border-radius: 5px; }
.project-map .leaflet-control-layers label { display: flex; align-items: center; margin: 0; padding: 3px 0; cursor: pointer; }
.project-map .leaflet-control-layers input { width: auto; margin: 0 7px 0 0; accent-color: var(--accent); }
.project-map .leaflet-popup-content { font-family: inherit; margin: 16px 20px; }
.map-project-popup { min-width: 200px; max-width: 300px; overflow-wrap: anywhere; }
.map-project-popup dl { margin: 0 0 14px; }
.map-project-popup dt { color: var(--muted); font-size: 10px; font-weight: 500; margin-bottom: 3px; }
.map-project-popup dd { color: var(--ink); font-size: 13px; font-weight: 600; margin: 0 0 10px; }
.map-project-popup .text-link { color: var(--accent); display: inline-flex; align-items: center; gap: 6px; font-size: 12px; }
@media(max-width:760px) { .projects-overview-map { height: 360px; } }

.topbar-tools { display: flex; align-items: center; gap: 18px; }
.topbar-time { display: flex; align-items: center; gap: 14px; white-space: nowrap; }
.top-clock { display: inline-flex; align-items: center; gap: 7px; }
.top-clock time { font-variant-numeric: tabular-nums; min-width: 60px; }
.notifications-toggle { position: relative; width: 36px; height: 36px; min-height: 36px; padding: 0; border: 0; background: transparent; font-size: 16px; }
.notification-count { position: absolute; top: -2px; right: -4px; min-width: 17px; height: 17px; padding: 0 4px; display: inline-flex; align-items: center; justify-content: center; border-radius: 10px; background: var(--accent); color: white; font-size: 9px; font-weight: 600; }
.notification-count[hidden] { display: none; }
.notifications-menu { width: min(380px, calc(100vw - 32px)); padding: 0; border-color: var(--border); box-shadow: 0 6px 20px #0002; }
.notifications-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px; border-bottom: 1px solid var(--border); font-size: 12px; }
.notifications-heading { flex-wrap: wrap; }
.notifications-heading button:disabled { opacity: .5; cursor: default; }
.notifications-status { padding: 24px 16px; margin: 0; font-size: 12px; line-height: 1.7; color: var(--muted); }
.notifications-list { list-style: none; padding: 0; margin: 0; max-height: 420px; overflow: auto; }
.notification-item { border-bottom: 1px solid var(--border); }
.notification-item:last-child { border-bottom: 0; }
.notification-item.unread { background: #fff7f3; box-shadow: inset 3px 0 var(--accent); }
.notification-item > a,.notification-item > button { display: block; width: 100%; padding: 16px; text-align: left; background: transparent; border: 0; color: var(--ink); text-decoration: none; }
.notification-item > a:hover,.notification-item > button:hover { background: #f5f5f5; }
.notification-project,.notification-subject,.notification-client,.notification-meta,.notification-unavailable { display: block; overflow-wrap: anywhere; white-space: normal; }
.notification-project { font-size: 12px; margin-bottom: 5px; }
.notification-subject { font-size: 12px; margin-bottom: 5px; }
.notification-client,.notification-meta { font-size: 10px; color: var(--muted); line-height: 1.8; }
.notification-unavailable { font-size: 10px; color: var(--accent); margin-top: 6px; }
@media(max-width:760px) { .topbar-tools { gap: 8px; } .topbar-time { gap: 8px; font-size: 10px; } .top-clock { gap: 4px; } .topbar > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin-right: 12px; } }

.rich-content { white-space: normal; overflow-wrap: anywhere; }
.rich-content p:last-child { margin-bottom: 0; }
.rich-content table { width: 100%; border-collapse: collapse; }
.rich-content td, .rich-content th { border: 1px solid #ddd; padding: .5rem; }
.tox-tinymce { width: 100% !important; border-radius: 8px !important; }
.avatar { object-fit: cover; }

.password-control { position: relative; width: 100%; }
.password-control input { padding-right: 78px; }
.password-toggle { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); border: 0; background: transparent; color: var(--accent); font-size: 11px; padding: 7px 6px; }
.password-toggle:focus-visible { outline: 2px solid var(--accent); border-radius: 3px; }
.password-toggle[hidden] { display: none; }
.movement-actions { align-items: center; flex-wrap: wrap; }

.login-art.login-arena { background: linear-gradient(180deg, rgba(8,20,30,.05) 15%, rgba(8,20,30,.08) 40%, rgba(8,20,30,.92) 100%), url('../images/arena-gremio-lance.jpg') center / cover; padding: 44px 48px 88px; min-height: 750px; justify-content: center; align-items: center; gap: 42px; text-align: center; }
.login-arena .login-brand-card { position: absolute; top: 44px; left: 50%; transform: translateX(-50%); background: transparent; border-radius: 0; padding: 0; width: min(290px,100%); box-shadow: none; margin: 0; display: flex; flex-direction: column; align-items: center; gap: 0; }
.login-arena .login-brand-card small { color: #fff; font-size: 10px; letter-spacing: .2px; text-transform: none; margin-top: 8px; padding-left: 0; text-align: center; }
.login-arena .login-arena-message { position: relative; margin-top: 0; padding-top: 0; width: 100%; container-type: inline-size; }
.login-arena .login-arena-message h1 { color: #fff; font-size: 42px; }
.login-arena .login-arena-message .eyebrow { color: var(--yellow); }
.login-arena .login-arena-message p { color: #e5e8ea; max-width: none; white-space: nowrap; font-size: min(13px, 3cqi); margin-bottom: 0; }
.login-photo-caption { position: relative; display: flex; flex-direction: column; gap: 4px; color: #fff; margin-top: 24px; font-size: 11px; }
.login-photo-caption small, .login-photo-caption a { color: #cdd3d8; font-size: 9px; }
@media(max-width:760px) { .login-art.login-arena { min-height: 360px; padding: 24px; background-position: center 62%; } .login-arena .login-brand-card { width: 235px; padding: 0; } .login-arena .login-arena-message { padding-top: 0; } .login-arena .login-arena-message h1 { font-size: 28px; } .login-arena .login-arena-message p { display: none; } .login-photo-caption { margin-top: 15px; } }

.movement-icon-action { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; padding: 8px; border: 0; border-radius: 4px; background: transparent; color: var(--accent); }
.movement-icon-action.text-danger { color: #dc3545; }
.movement-icon-action:hover, .movement-icon-action:focus-visible { background: #f5f5f5; outline-offset: 2px; text-decoration: none; }
.movement-actions:has(.movement-icon-action) { gap: 6px; }

.movement-pdf-action { width: auto; gap: 6px; font-size: 11px; font-weight: 600; }

.hours-chart { padding: 24px; margin: 0; border-bottom: 1px solid var(--border); }
.hours-chart figcaption { font-size: 14px; font-weight: 600; margin-bottom: 5px; }
.hours-chart > p { font-size: 11px; margin-bottom: 18px; }
.hours-chart-scroll { overflow-x: auto; }
.hours-chart-canvas { position: relative; width: 100%; min-width: 440px; height: 220px; }
.hours-chart-row { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 18px; font-size: 12px; padding: 8px 0; }
.hours-chart-name { overflow-wrap: anywhere; }
.hours-chart-name small { display: block; color: var(--muted); }
.hours-chart-row strong { text-align: right; font-size: 12px; white-space: nowrap; }
@media(max-width:600px) { .hours-chart { padding: 20px 16px; } .hours-chart-row { gap: 10px; font-size: 11px; } }

.login-card .btn.full { position: relative; white-space: normal; text-align: center; justify-content: center; padding-inline: 40px; }
.login-card .btn.full > span { position: absolute; right: 15px; }

.login-arena .login-brand-card .brand-logo { width: 100%; height: auto; object-fit: contain; }

.tox-tinymce.rich-text-invalid { border: 2px solid #dc3545 !important; box-shadow: 0 0 0 2px #dc35451a; }

.client-validation-error { display: block; color: #dc3545; font-size: 11px; margin-top: 4px; }
.bootstrap-select.select-invalid > .dropdown-toggle { border: 2px solid #dc3545 !important; }
.password-control input.is-invalid { background-image: none; padding-right: 78px; }


.topbar-tools { flex-shrink: 0; }
.topbar-profile { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; flex-shrink: 0; border-radius: 50%; border: 0; padding: 0; background: transparent; color: inherit; }
.topbar-profile .avatar { width: 36px; height: 36px; font-size: 13px; margin: 0; }
.topbar-profile:hover { text-decoration: none; box-shadow: 0 0 0 3px #cd33011a; }
.sidebar-footer .logout { padding: 0; }

.profile-menu { min-width: 250px; max-width: min(360px, calc(100vw - 32px)); padding: 8px 0; }
.profile-menu-heading { padding: 10px 16px; display: flex; flex-direction: column; gap: 4px; overflow-wrap: anywhere; }
.profile-menu-heading small { color: var(--muted); font-size: 12px; }
.profile-menu .dropdown-item { display: flex; align-items: center; gap: 10px; padding: 10px 16px; font-size: 13px; }

.login-art.login-arena .login-photo-caption { position: absolute; left: 24px; right: 24px; bottom: 28px; margin-top: 0; align-items: center; text-align: center; }
.login-shell .login-card > .eyebrow, .login-shell .login-card > h2, .login-shell .login-card > p { text-align: center; }
@media (max-width: 760px) { .login-art.login-arena { gap: 24px; padding-top: 168px; padding-bottom: 80px; } .login-arena .login-brand-card { top: 24px; left: 50%; } .login-art.login-arena .login-photo-caption { bottom: 16px; } }

.error-code { display: block; color: var(--accent); font-size: 64px; font-weight: 700; line-height: 1; margin: 16px 0 22px; text-align: center; }
.error-page-actions { display: flex; flex-direction: column; gap: 14px; margin-top: 28px; text-align: center; }

.client-image{object-fit:contain;border:1px solid var(--border);border-radius:6px;background:#fff;padding:4px;flex-shrink:0}.client-image-small{width:44px;height:44px}.client-image-large{width:96px;height:96px}.client-image-placeholder{display:inline-flex;align-items:center;justify-content:center;color:var(--muted)}.client-image[hidden]{display:none}.client-detail-image{margin-bottom:24px}

.workspace{padding-bottom:0}.platform-footer{position:static;background:var(--paper);z-index:1000;padding-bottom:calc(20px + env(safe-area-inset-bottom))}.project-map:fullscreen{width:100vw;height:100vh;height:100dvh}.project-map.map-fullscreen-fallback{position:fixed;inset:0;width:100vw;height:100vh;height:100dvh;z-index:10000}.map-fullscreen-open{overflow:hidden}.map-controls [hidden]{display:none}@media(max-width:760px){.platform-footer{left:0}}

.platform-footer{justify-content:center;text-align:center}.platform-footer address{overflow-wrap:anywhere}

.activity-list+.bottom-note{margin:0;padding:16px 24px;border-top:1px solid var(--border)}

.topbar{position:sticky;top:0;z-index:1020;flex-shrink:0}
html{scroll-padding-top:81px}
@media(max-width:760px){html{scroll-padding-top:61px}}

.project-tabs{gap:8px;flex-wrap:nowrap;align-items:stretch;width:100%;margin-bottom:18px}
.project-tabs-panel>.project-tabs{padding:28px 28px 18px;margin-bottom:0}
.project-tabs-panel{border-bottom:0;border-radius:8px 8px 0 0;margin-bottom:0}.project-section-panel{border-top:0;border-radius:0 0 8px 8px}
.project-map[data-map-editable]:not(:fullscreen):not(.map-fullscreen-fallback){height:450px}
.project-tabs .nav-link{margin:0;padding:14px 20px;min-height:48px;min-width:0;font-size:13px;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--muted);justify-content:center;text-align:center;white-space:normal}
.project-tabs .nav-link:hover{background:#fcebe5;text-decoration:none;color:var(--accent)}
.project-tabs .nav-link.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}
@media(max-width:760px){.project-tabs .nav-link{padding:12px 10px;font-size:12px}.project-tabs-panel>.project-tabs{padding:22px 18px 18px}}

:root{--field-height:42px}
form input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]):not([type=color]):not([type=button]):not([type=submit]),form select,.bootstrap-select>.dropdown-toggle{height:var(--field-height);min-height:var(--field-height)}

.movement-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:16px;padding:20px 24px;border-bottom:1px solid var(--border)}
.movement-toolbar>.movement-filter{flex:1 1 620px;padding:0;border-bottom:0;min-width:0}
.movement-filter-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-shrink:0;margin-left:auto}
.movement-filter-actions .count{margin:0}
@media(max-width:760px){.movement-toolbar{padding:20px 16px}.movement-filter-actions{flex-wrap:wrap;max-width:100%}}

.form-control:focus,.form-select:focus{border-color:var(--bs-border-color);box-shadow:none}
.form-control.is-invalid:focus,.form-select.is-invalid:focus,.was-validated .form-control:invalid:focus,.was-validated .form-select:invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:none}
.form-control.is-valid:focus,.form-select.is-valid:focus,.was-validated .form-control:valid:focus,.was-validated .form-select:valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:none}

.tox.tox-edit-focus .tox-edit-area::before{opacity:0!important}

a.team-chip{color:var(--ink)}

.movement{grid-template-columns:110px minmax(0,1fr)}
.movement-date{padding-right:16px}
.movement-date strong{font-size:14px;white-space:nowrap}
.movement-date small{font-size:11px;margin-top:8px}
@media(max-width:760px){.movement{grid-template-columns:90px minmax(0,1fr);gap:16px}.movement-date{padding-right:12px}.movement-date strong{font-size:12px}}

[data-project-team-panes]>.coordination-block{border:0;margin:0;padding:0}
.movement-date{justify-content:center}

.date-control{position:relative;min-width:0;width:100%}
.date-control input:not([type=hidden]){padding-right:30px}
.date-control::after{content:"";position:absolute;right:12px;top:14px;width:12px;height:12px;border:1px solid var(--muted);border-radius:2px;border-top-width:3px;pointer-events:none}
.filter-date .date-control{width:150px}
.date-control input.is-invalid{border-color:#dc3545!important;background-image:none}
.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_current,.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box>div>div.xdsoft_current{background:var(--accent);box-shadow:none}
.xdsoft_datetimepicker .xdsoft_calendar td:hover,.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box>div>div:hover{background:var(--accent-dark)!important}

.project-form-actions{border-top:0;margin-top:0;padding-top:0;margin-bottom:24px}

.tox.tox-tinymce{border-color:#eee!important;box-shadow:none}
.tox.tox-tinymce.rich-text-invalid{border-color:#dc3545!important}

.btn:not(:disabled):not(.disabled):hover,button:not(:disabled):hover,[role=button]:not([aria-disabled=true]):hover,.movement-icon-action:hover,.tox .tox-tbtn:not(:disabled):hover,.tox .tox-mbtn:hover{background-color:#fcebe5!important;color:var(--accent)!important}
.tox .tox-tbtn:not(:disabled):hover svg{fill:var(--accent)}

.movement-date strong{color:var(--accent)}

select,.form-select,.bootstrap-select>.dropdown-toggle{border-radius:6px!important}
select:not(.is-invalid):not(.is-valid),.form-select:not(.is-invalid):not(.is-valid){border-color:var(--border)}
select:focus,select:focus-visible,.form-select:focus,.bootstrap-select>.dropdown-toggle:focus,.bootstrap-select>.dropdown-toggle:focus-visible{outline:none!important;box-shadow:none!important}
.bootstrap-select:not(.select-invalid)>.dropdown-toggle{border-color:var(--border)!important}

input[type=checkbox]{appearance:none;-webkit-appearance:none;width:17px;height:17px;padding:0;border:1px solid var(--border);border-radius:50%!important;background-color:#fff;background-position:center;background-size:100% 100%;background-repeat:no-repeat;flex-shrink:0;cursor:pointer}
input[type=checkbox]:checked,input[type=checkbox]:indeterminate{background-color:var(--accent);border-color:var(--accent)}
input[type=checkbox]:not(:checked):not(:indeterminate):not(.is-invalid){border-color:var(--border)}
input[type=checkbox]:checked{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m4 8 3 3 5-6'/%3E%3C/svg%3E")}
input[type=checkbox]:indeterminate{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath stroke='%23fff' stroke-linecap='round' stroke-width='2' d='M4 8h8'/%3E%3C/svg%3E")}
input[type=checkbox]:focus,input[type=checkbox]:focus-visible{outline:none!important;box-shadow:none!important}
input[type=checkbox].is-invalid{border-color:#dc3545}
input[type=checkbox]:disabled{opacity:.5;cursor:default}

.current-photo-control{display:flex;align-items:center;gap:12px}.current-photo-control .check{margin:0}

.profile-menu-last-access { display: flex; flex-direction: column; gap: 3px; padding: 8px 16px; font-size: 11px; color: var(--muted); }
.profile-menu-last-access time { font-size: 12px; color: var(--ink); }
.profile-menu-last-access small { font-size: 10px; overflow-wrap: anywhere; }
@media (max-width: 600px) { .topbar { flex-wrap: wrap; height: auto; } }

.image-upload-gallery { display: flex; flex-wrap: wrap; gap: 12px; padding-top: 12px; }
.image-upload-gallery figure { margin: 0; width: 140px; }
.image-upload-gallery img { width: 140px; height: 110px; object-fit: contain; border: 1px solid #ddd; border-radius: 6px; }
.image-upload-gallery figcaption { font-size: 11px; overflow-wrap: anywhere; padding-top: 4px; }

.person-avatar[hidden], .image-upload-gallery[hidden] { display: none; }
@media (max-width:600px) { .topbar-tools { flex-wrap: wrap; justify-content: flex-end; max-width: 100%; padding: 8px 0; } }

.platform-footer { display: flex; justify-content: space-between; align-items: center; flex-wrap: nowrap; gap: 20px; text-align: left; }
.footer-company { display: flex; flex: 1 1 auto; min-width: 0; flex-wrap: wrap; align-items: center; gap: 8px 16px; }
.footer-company > * { max-width: 100%; overflow-wrap: anywhere; }
.footer-company address { margin: 0; }
.footer-credits { display: flex; flex-direction: column; flex-shrink: 0; margin-left: auto; text-align: right; font-size: 11px; }
img.image-zoomable { cursor: zoom-in; }
.mfp-bg.plarq-image-popup { z-index: 10999; }
.mfp-wrap.plarq-image-popup { z-index: 11000; }
.plarq-image-popup .mfp-close { color: #fff; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.plarq-image-popup .mfp-close:hover, .plarq-image-popup .mfp-close:focus { color: #fff!important; background: transparent!important; opacity: 1; }
.plarq-image-popup .mfp-title { overflow-wrap: anywhere; }
@media(max-width: 760px) { .platform-footer { flex-wrap: wrap; gap: 8px; } .footer-company { flex-basis: 100%; gap: 4px 8px; } .footer-credits { font-size: 10px; } }

.access-fields-row { display: grid; gap: 20px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.access-fields-row.access-fields-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.audit-summary { overflow-wrap: anywhere; min-width: 240px; }
@media(max-width: 760px) { .access-fields-row, .access-fields-row.access-fields-three { grid-template-columns: 1fr; } }

/* Map markers retain their transparent surface in every interaction state. */
.project-map .atelier-map-marker,
.project-map .atelier-map-marker:hover,
.project-map .atelier-map-marker:focus,
.project-map .atelier-map-marker:focus-visible,
.project-map .atelier-map-marker:active {
    background: transparent!important;
    border: 0!important;
    box-shadow: none!important;
}
.topbar, .platform-footer { background: var(--accent); color: #f0e7e3; border-color: var(--accent); }
.topbar > span .muted { color: #f0e7e3; }
.topbar .notifications-toggle { color: #fff; }
.topbar .notification-count { background: #fff; color: var(--accent); }
.platform-footer strong, .platform-footer a { color: #fff; }
.platform-footer a:hover { color: #fff; }

.badge.declaration-expired { background: #fff0eb; color: #a32901; }

.platform-footer { background: #ccc; border-color: #ccc; border-bottom-right-radius: 16px; color: #171717; }
.platform-footer strong, .platform-footer a, .platform-footer a:hover { color: var(--accent); }

.action-details { gap: 8px; }
.action-icon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 46px; height: 39px; min-width: 46px; min-height: 39px;
    flex-shrink: 0; padding: 0; border: 1px solid var(--border);
    border-radius: 5px; background: #fff;
    color: var(--accent); font-size: 13px; line-height: 1;
}
.action-icon.text-danger { color: #dc3545; }
.action-icon:hover { text-decoration: none; }

.sidebar .brand { align-items: center; text-align: center; }
.sidebar .brand > small { padding-left: 0; text-align: center; }
.sidebar .nav-label { text-align: center; color: var(--accent); }
@media(min-width: 761px) { .sidebar-brand-row { justify-content: center; } .sidebar .brand { width: 100%; } }
@media(max-width: 760px) { .sidebar-brand-row { position: relative; justify-content: center; } .sidebar-toggle { position: absolute; right: 0; } }

.topbar-context { display: flex; align-items: center; gap: 12px; min-width: 0; }
.topbar-context > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-desktop-toggle { width: 36px; height: 36px; min-height: 36px; padding: 0; border: 0; background: transparent; color: #fff; flex-shrink: 0; }
.account-password-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
@media(min-width: 761px) { .sidebar-collapsed .sidebar { display: none; } }
@media(max-width: 760px) { .sidebar-desktop-toggle { display: none; } .account-password-fields { grid-template-columns: 1fr; } }
.session-lock-modal { z-index: 30000; }
.session-is-locked .modal-backdrop { z-index: 29999; }
.session-lock-modal .modal-content { border-radius: 16px; }
.session-lock-modal .modal-body { padding: 32px; }
.session-lock-modal h2 { font-size: 26px; }
.session-lock-modal .field-error:empty { display: none; }

.action-icon:not(:disabled):not(.disabled):hover { background-color: #fcebe5!important; color: var(--accent)!important; text-decoration: none; }

.topbar-profile .avatar { border: 2px solid var(--green); }
.session-is-locked .topbar-profile .avatar { border-color: var(--yellow); }

.audit-filter-bar { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 16px; }
.audit-filter-bar .field { margin: 0; flex: 1 1 160px; }
.audit-filter-bar .field:first-child { flex-basis: 220px; }
.audit-filter-bar .field .bootstrap-select { width: 100%!important; }

#add-record-document .modal-body > .notes { border-top: 0; margin-top: 0; padding-top: 0; }

table td .record-actions, table td .time-actions, table td > .actions { justify-content: flex-end; }
table td:has(> .record-actions, > .time-actions, > .actions, > .btn, > .action-details, > .action-icon, > form) { text-align: right; }

.topbar-profile, .topbar-profile .avatar { width: 55px; height: 55px; }
.topbar { min-height: 65px; }

.dashboard-stats { grid-template-columns: repeat(5, minmax(0, 1fr)); }
@media(max-width:1150px) { .dashboard-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media(max-width:760px) { .dashboard-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media(max-width:420px) { .dashboard-stats { grid-template-columns: 1fr; } }

.session-lock-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px;align-items:center}
.session-lock-actions>form[data-session-unlock]{display:contents}
.session-lock-actions [data-session-unlock]>.field,.session-lock-actions [data-session-error]{flex:0 0 100%;order:-1}
.session-lock-actions>form:not([data-session-unlock]){margin:0}
.session-lock-actions .btn{white-space:nowrap}
.team-details{color:var(--accent)}
@media(min-width:761px){
.sidebar{transition:transform .35s cubic-bezier(.22,.61,.36,1),visibility .35s; width:var(--sidebar);will-change:transform}
.workspace{transition:margin-left .35s cubic-bezier(.22,.61,.36,1)}
.topbar,.platform-footer{transition:left .35s cubic-bezier(.22,.61,.36,1)}

.sidebar-collapsed .sidebar{display:flex;transform:translateX(-100%);visibility:hidden;pointer-events:none}
.sidebar-collapsed .workspace{margin-left:0}
.sidebar-collapsed .topbar,.sidebar-collapsed .platform-footer{left:0}
}
@media(prefers-reduced-motion:reduce){.sidebar,.workspace,.topbar,.platform-footer{transition:none!important}}

.profile-menu-last-access{align-items:center;text-align:center}
.map-controls{overflow:visible}
.map-controls .leaflet-draw{margin:0;float:none;clear:none;box-shadow:none}
.map-controls .leaflet-draw-toolbar{margin:0;border:0;box-shadow:none;border-radius:0}
.map-controls .leaflet-draw-toolbar a{width:38px;height:38px;border-radius:0!important;border-top:1px solid #ddd;border-bottom:0;display:flex;align-items:center;justify-content:center;padding:0;background-image:none!important}
.map-controls .leaflet-draw-toolbar a::before{content:"";display:block;flex:none;width:30px;height:30px;background:url("../vendor/leaflet-draw/images/spritesheet.svg") var(--draw-icon-position,0px) center/300px 30px no-repeat}
.map-controls .leaflet-draw-draw-polygon{--draw-icon-position:-30px}
.map-controls .leaflet-draw-draw-marker{--draw-icon-position:-120px}
.map-controls .leaflet-draw-edit-edit{--draw-icon-position:-150px}
.map-controls .leaflet-draw-edit-remove{--draw-icon-position:-180px}
.map-controls .leaflet-draw-edit-edit.leaflet-disabled{--draw-icon-position:-210px}
.map-controls .leaflet-draw-edit-remove.leaflet-disabled{--draw-icon-position:-240px}
.map-controls .leaflet-draw-section{position:relative}
.map-controls .leaflet-draw-actions{left:38px}
.map-controls .leaflet-draw-actions a{height:38px;line-height:38px}
.map-controls .map-mode-selected{background-color:#fcebe5}
.map-controls>button:last-of-type{border-bottom:0}
.project-map [hidden],.form-grid [data-map-marker-field][hidden]{display:none!important}
.project-map .leaflet-draw-toolbar a:hover{background-color:#fae9e3}
.project-map .leaflet-draw-actions a{color:#fff;background-color:var(--accent)}
.project-map .leaflet-draw-actions a:hover{background-color:#a62900}

.session-account-name{text-align:center;font-weight:600}

.map-import-panel{position:absolute;top:12px;left:60px;width:min(420px,calc(100% - 76px));max-height:calc(100% - 24px);overflow:auto;z-index:1200;background:white;border:1px solid var(--border);border-radius:6px;box-shadow:0 4px 16px #0003;padding:16px;display:grid;gap:12px;font-family:inherit;font-size:13px;color:var(--ink)}
.map-import-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.map-import-heading .btn{padding:6px 8px}.map-import-panel .field{margin:0}.map-import-panel .field-help{margin:0}.map-import-panel input[type=file]{max-width:100%;font-size:12px}.map-import-panel .field small{font-size:11px}.map-import-panel .field-error{color:#dc3545}.map-import-panel .form-select{font-size:13px}

.project-map.map-importing .leaflet-draw{pointer-events:none;opacity:.5}

.login-shell .session-lock-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:stretch}
.login-shell .session-lock-actions [data-session-unlock]>.field,.login-shell .session-lock-actions [data-session-error]{grid-column:1/-1}
.login-shell .session-lock-actions .btn{width:100%;height:var(--field-height);justify-content:center;padding:8px 10px}

.travel-summary{display:flex;flex-wrap:wrap;gap:20px;padding:20px 24px;border-bottom:1px solid var(--border)}
.travel-summary>div{display:flex;flex-direction:column;gap:4px;min-width:160px}
.travel-summary span{color:var(--muted);font-size:12px}
.travel-summary strong,.travel-total{color:var(--accent);font-size:22px;font-weight:700}
.travel-total{display:block;padding:12px 0}
.travel-round-trip{align-self:center}

.pdf-history{margin-top:0}

.filter-bar{flex-wrap:wrap}.filter-actions{display:inline-flex;flex:0 0 auto;align-items:center;gap:12px;white-space:nowrap}.filter-actions>.text-link{display:inline-flex;align-items:center;min-height:39px}.document-filter{flex-wrap:wrap}.address-fields{display:grid;grid-template-columns:2fr 1fr 1fr;gap:20px 24px;min-width:0}
@media(max-width:760px){.address-fields{grid-template-columns:1fr}}

.contact-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 24px}
@media(max-width:760px){.contact-fields{grid-template-columns:1fr}}

.action-icon,.movement-icon-action,.action-details,.record-actions .btn:not(.primary):not(.btn-primary),.time-actions .btn:not(.primary):not(.btn-primary){border:1px solid var(--border);background:#fff;transition:background-color .15s ease,color .15s ease}
.movement-icon-action{width:46px;height:39px;min-width:46px;min-height:39px;flex-shrink:0;border-radius:5px}
.movement-pdf-action{width:auto;padding:8px 10px;border-radius:5px}
.action-icon:not(:disabled):hover,.movement-icon-action:not(:disabled):hover,.action-details:not(.disabled):hover,.record-actions .btn:not(:disabled):not(.disabled):hover,.time-actions .btn:not(:disabled):not(.disabled):hover{border-color:var(--border);background-color:#fcebe5!important;color:var(--accent)!important;text-decoration:none}
@media(prefers-reduced-motion:reduce){.action-icon,.movement-icon-action,.action-details{transition:none}}

/* Visão geral: cartões neutros e gráficos de atividade. */
.dashboard-period-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:-8px 0 22px;flex-wrap:wrap}
.dashboard-period-heading>p{margin:0;font-size:12px}
.dashboard-period{display:flex;gap:4px;padding:4px;border:1px solid var(--border);border-radius:8px;background:#fff}
.dashboard-period button{border:0;border-radius:5px;background:transparent;color:var(--muted);padding:9px 13px;font-size:12px}
.dashboard-period button[aria-pressed=true]{background:var(--accent);color:#fff}
.dashboard-chart-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:22px}
.dashboard-chart-stats .stat{display:flex;flex-direction:column;min-width:0;padding:22px;min-height:280px;transition:transform .2s ease,box-shadow .2s ease}
.dashboard-chart-stats .stat:hover{transform:translateY(-2px);border-color:var(--border);box-shadow:0 5px 18px #00000008}
.dashboard-chart-stats .stat>span{font-size:13px;gap:8px;align-items:flex-start;min-height:24px}
.dashboard-chart-stats .stat>span>a{color:inherit}
.dashboard-chart-stats .stat strong{font-size:36px}
.dashboard-chart-stats .stat small{font-size:12px;line-height:1.5;margin-bottom:12px}
.dashboard-chart-stats .stat-icon{color:var(--accent)}
.dashboard-mini-chart{position:relative;height:110px;min-width:0;margin-top:auto}
.dashboard-mini-chart canvas{width:100%;height:100%}
.dashboard-status-legend{display:flex;justify-content:center;flex-wrap:wrap;gap:4px 10px;margin-top:10px;font-size:11px;color:var(--muted)}
.dashboard-status-legend i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--status-color);margin-right:4px}
.dashboard-chart-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:22px}
.dashboard-chart-panel{min-width:0}
.dashboard-large-chart{height:310px;position:relative;min-width:0;margin:20px 22px 0}
.dashboard-chart-note{font-size:12px;color:var(--muted);margin:8px 22px 22px}
.dashboard-chart-empty{position:absolute;inset:0;display:grid;place-content:center;text-align:center;color:var(--muted);font-size:12px;margin:0}
.dashboard-chart-empty[hidden]{display:none}
.dashboard-chart-data{margin:-6px 0 24px;font-size:12px;color:var(--muted)}
.dashboard-chart-data summary{cursor:pointer;color:var(--accent)}
.dashboard-chart-data .table-wrap{background:#fff;border:1px solid var(--border);border-radius:8px;margin-top:12px}
@media(max-width:1150px){.dashboard-chart-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-chart-grid{grid-template-columns:1fr}.dashboard-chart-stats .stat{min-height:260px}}
@media(max-width:600px){.dashboard-chart-stats{gap:12px}.dashboard-chart-stats .stat{padding:16px;min-height:270px}.dashboard-chart-stats .stat strong{font-size:30px}.dashboard-chart-stats .stat>span{min-height:40px}.dashboard-chart-stats .stat small{font-size:11px}.dashboard-large-chart{height:300px;margin:18px 12px 0}.dashboard-period-heading{margin-top:0}.dashboard-chart-note{margin-left:16px;margin-right:16px}}
@media(max-width:360px){.dashboard-chart-stats{grid-template-columns:1fr}.dashboard-chart-stats .stat{min-height:245px}}
@media(prefers-reduced-motion:reduce){.dashboard-chart-stats .stat{transition:none}.dashboard-chart-stats .stat:hover{transform:none}}
.dashboard-chart-stats .stat:nth-child(1) .stat-icon{color:var(--accent)}
.dashboard-chart-stats .stat:nth-child(2) .stat-icon{color:var(--plarq-icon-hours)}
.dashboard-chart-stats .stat:nth-child(3) .stat-icon{color:var(--plarq-icon-collaborators)}
.dashboard-chart-stats .stat:nth-child(4) .stat-icon{color:var(--plarq-icon-coordinators)}

.dashboard-chart-stats .stat{border:1px solid var(--border)}

.dashboard-status-legend>span{display:inline-flex;align-items:center;gap:8px}
.dashboard-status-legend i{margin-right:0;flex-shrink:0}

.dashboard-period{flex-wrap:wrap}
.dashboard-range-filter{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-left:auto}
.dashboard-range-filter input{width:150px}
.dashboard-range-filter .filter-actions{display:inline-flex;align-items:center;gap:12px;white-space:nowrap}
@media(max-width:600px){.dashboard-range-filter{margin-left:0;width:100%}.dashboard-range-filter .filter-date{flex:1;min-width:135px}.dashboard-range-filter input{width:100%}.dashboard-period-heading{gap:12px}}

/* Agenda partilhada da PLARQ. */
.meeting-filters{flex-wrap:wrap}
.meeting-filters input[name=q]{flex:1;min-width:170px}
.meeting-filters select{flex:1;min-width:160px}
.meeting-filters .filter-actions{display:inline-flex;align-items:center;gap:12px;white-space:nowrap}
.meeting-filters .text-link{border:0;background:transparent;color:var(--accent);padding:6px 0}
.meeting-mine{white-space:nowrap}
.meeting-calendar{padding:24px;--fc-button-bg-color:var(--accent);--fc-button-border-color:var(--accent);--fc-button-hover-bg-color:var(--accent-dark);--fc-button-hover-border-color:var(--accent-dark);--fc-button-active-bg-color:var(--accent-dark);--fc-button-active-border-color:var(--accent-dark);--fc-border-color:var(--border);--fc-today-bg-color:#fcebe5;--fc-neutral-text-color:var(--muted);--fc-list-event-hover-bg-color:#fcebe5}
.meeting-calendar .fc-button{font-size:12px;padding:8px 12px;box-shadow:none!important}
.meeting-calendar .fc-toolbar-title{font-size:22px}
.meeting-calendar a{color:var(--ink)}
.meeting-calendar .fc-event{cursor:pointer}
.meeting-calendar .fc-daygrid-event{white-space:normal}
.meeting-calendar .fc-event-title{overflow-wrap:anywhere}
.meeting-calendar .fc-event-main{color:#fff}
.meeting-calendar-message{padding:12px 24px;margin:0;font-size:12px;color:var(--muted)}
.meeting-calendar-message.error{color:#a14837}
.meeting-calendar-message[hidden]{display:none}
.calendar-loading .meeting-calendar{opacity:.6}
.meeting-legend{display:flex;justify-content:center;flex-wrap:wrap;gap:20px;padding:0 24px 24px;color:var(--muted);font-size:12px}
.meeting-legend>span{display:inline-flex;align-items:center;gap:9px}
.meeting-legend i{width:9px;height:9px;border-radius:50%;background:var(--meeting-color)}
.meeting-details dl,.meeting-record dl{display:grid;grid-template-columns:150px 1fr;gap:12px 18px;margin:16px 0}
.modal-body.meeting-details{padding:24px}
.meeting-details dt{font-weight:500;color:var(--muted)}
.meeting-details dd{margin:0;overflow-wrap:anywhere}
.meeting-record dl{margin:28px 0}
.meeting-participants{border:1px solid var(--border);border-radius:8px;padding:18px}
.meeting-participants legend{font-size:14px;float:none;width:auto;padding:0 8px;margin:0}
.meeting-participant-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.meeting-record .actions form{margin:0}
@media(max-width:900px){.meeting-calendar .fc-header-toolbar{gap:14px;flex-wrap:wrap}.meeting-calendar .fc-toolbar-title{font-size:19px}.meeting-participant-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.meeting-calendar{padding:14px 10px}.meeting-calendar .fc-header-toolbar{justify-content:center}.meeting-calendar .fc-toolbar-chunk:nth-child(2){order:-1;flex:0 0 100%;text-align:center}.meeting-calendar .fc-button{padding:7px 9px}.meeting-details dl,.meeting-record dl{grid-template-columns:1fr;gap:4px}.meeting-details dd{margin-bottom:12px}.meeting-participant-grid{grid-template-columns:1fr}.meeting-calendar .fc-list-event-time{white-space:normal}}

:root{--plarq-icon-projects:var(--accent);--plarq-icon-hours:#3983d8;--plarq-icon-collaborators:#9360d5;--plarq-icon-coordinators:#21a5a0;--plarq-icon-clients:#537cbb;--plarq-icon-agenda:#b47b26;--plarq-icon-company:#78885a;--plarq-icon-accesses:#a96530;--plarq-icon-technicians:#a5588e;--plarq-icon-history:#4b8f9c}
.sidebar .nav-icon-overview,.sidebar .nav-icon-projects{color:var(--plarq-icon-projects)}
.sidebar .nav-icon-clients{color:var(--plarq-icon-clients)}
.sidebar .nav-icon-agenda{color:var(--plarq-icon-agenda)}
.sidebar .nav-icon-coordinators{color:var(--plarq-icon-coordinators)}
.sidebar .nav-icon-collaborators{color:var(--plarq-icon-collaborators)}
.sidebar .nav-icon-company{color:var(--plarq-icon-company)}
.sidebar .nav-icon-accesses{color:var(--plarq-icon-accesses)}
.sidebar .nav-icon-technicians{color:var(--plarq-icon-technicians)}
.sidebar .nav-icon-history{color:var(--plarq-icon-history)}
.form-panel p.muted,.form-panel small.muted,.form-panel .section-heading p,.field>small:not(.field-error),.field-help,.hours-help,.login-help,.login-card>p.muted,.session-lock p.muted,.upload-box span:not(.upload-icon),.upload-box small,.dashboard-chart-note{color:var(--accent)}
.client-filters{flex-wrap:wrap}.client-filters input[name=q]{flex:2;min-width:200px}.client-filters select{flex:1;min-width:160px}.client-filters .filter-actions{display:inline-flex;align-items:center;gap:12px;white-space:nowrap}

.sidebar .nav-icon-hours{color:var(--plarq-icon-hours)}
.registered-hours-filters{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end;padding:24px;border-bottom:1px solid var(--border)}
.registered-hours-filters>label{display:flex;flex-direction:column;gap:6px;flex:1;min-width:170px;color:var(--muted);font-size:12px}.registered-hours-filters .filter-actions{display:inline-flex;align-items:center;gap:12px;white-space:nowrap;min-height:40px}
.registered-hours-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.registered-hours-stats .stat-icon{color:var(--plarq-icon-hours)}.registered-hours-stats .stat:nth-child(2) .stat-icon{color:var(--plarq-icon-projects)}.registered-hours-stats .stat:nth-child(3) .stat-icon{color:var(--plarq-icon-collaborators)}
.registered-hours-chart{height:300px;position:relative;margin:20px;min-width:0}.registered-hours-values{margin:0 24px 20px;font-size:12px}.registered-hours-values summary{color:var(--accent);cursor:pointer}.registered-hours-values ul{padding-left:18px}.registered-hours-empty{padding:30px;text-align:center;color:var(--muted)}
@media(max-width:650px){.registered-hours-stats{grid-template-columns:1fr}.registered-hours-filters{padding:18px}.registered-hours-filters>label{min-width:130px}.registered-hours-chart{margin:16px 10px}}

.registered-hours-stats .stat{border:1px solid var(--border)}

.page-header>div>p,.section-heading p,.panel-heading p,.hours-chart>p.muted,.login-arena-message p,.form-help,.form-text{color:var(--accent)}

.meeting-calendar .fc-event-time{white-space:nowrap;flex-shrink:0}
.meeting-calendar .fc-daygrid-dot-event{flex-wrap:wrap}
.meeting-calendar .fc-daygrid-dot-event .fc-event-title{min-width:0;flex-basis:100%;padding:3px 4px}

button, a.btn, a.action-icon, a.action-details, a.movement-icon-action { touch-action: manipulation; }
button > *, a.btn > *, a.action-icon > *, a.action-details > *, a.movement-icon-action > * { pointer-events: none; }

.overview-map-search{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;padding:18px 24px;border-bottom:1px solid var(--border)}
.overview-map-search .field{flex:1;min-width:220px}
.overview-map-search-status{flex-basis:100%;font-size:12px;color:var(--accent);overflow-wrap:anywhere}
.overview-map-search-status:empty{display:none}
.project-map .atelier-map-cluster{background:#cd330138;border:0;border-radius:50%;padding:6px;box-shadow:0 2px 6px #0002}
.project-map .atelier-map-cluster span{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:#CD3301;color:#fff;font-family:inherit;font-size:13px;font-weight:600;line-height:1}
.project-map .atelier-map-cluster:hover span{background:#a62900}
@media(max-width:600px){.overview-map-search{padding:16px;align-items:stretch}.overview-map-search .field{flex-basis:100%;min-width:0}.overview-map-search .btn{width:100%}}

.bootstrap-select>.dropdown-toggle{height:auto!important;min-height:var(--field-height);padding-right:36px!important;white-space:normal}
.bootstrap-select>.dropdown-toggle .filter-option{position:static!important;height:auto!important;padding:0!important;float:none}
.bootstrap-select>.dropdown-toggle .filter-option-inner{padding-right:0!important}
.bootstrap-select>.dropdown-toggle .filter-option-inner-inner{white-space:normal;overflow:visible;overflow-wrap:anywhere}
.bootstrap-select .dropdown-menu li a,.bs-container .dropdown-menu li a{white-space:normal}
.bootstrap-select .dropdown-menu li a span.text,.bs-container .dropdown-menu li a span.text{display:block;white-space:normal;overflow-wrap:anywhere}

table td .record-actions,table td .time-actions,table td>.actions{display:flex;flex-wrap:nowrap;align-items:center;justify-content:flex-end;min-width:max-content}
table td .record-actions>* ,table td .time-actions>*,table td>.actions>*{flex-shrink:0}
table td .record-actions form,table td .time-actions form,table td>.actions form{display:inline-flex;margin:0}
table td:has(>.record-actions,>.time-actions,>.actions,>.action-icon,>.action-details){white-space:nowrap}

.overview-map-search [data-map-show-all]{height:var(--field-height);min-height:var(--field-height)}

.overview-map-search{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch}
.overview-map-search .field{display:contents}
.overview-map-search .field>span,.overview-map-search-status{grid-column:1/-1}
.overview-map-search [data-map-show-all]{height:auto;align-self:stretch}
@media(max-width:600px){.overview-map-search{grid-template-columns:minmax(0,1fr)}.overview-map-search [data-map-show-all]{grid-column:1}}

.uniform-filter-controls input:not([type=hidden]):not([type=checkbox]):not([type=radio]),
.uniform-filter-controls select,
.uniform-filter-controls .bootstrap-select>.dropdown-toggle,
.uniform-filter-controls .filter-actions>.btn,
.uniform-filter-controls .movement-filter-actions>.btn,
.uniform-filter-controls>button.btn{
height:var(--filter-control-height,var(--field-height))!important;
min-height:var(--filter-control-height,var(--field-height))!important;
box-sizing:border-box}
.sidebar .nav-link .nav-icon{color:var(--muted)!important}
.sidebar .nav-link.selected .nav-icon{color:var(--accent)!important}

.bootstrap-select .dropdown-menu div.inner,.bs-container .dropdown-menu div.inner{max-height:min(340px,calc(100dvh - 200px))!important;overflow-y:auto!important;overflow-x:hidden!important}
.chart-export-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;padding:12px 18px;border-top:1px solid var(--border);margin-top:12px}
.chart-export-actions .btn{font-size:11px;padding:8px 12px;min-height:36px}
.stat .chart-export-actions{padding:10px 0 0;justify-content:flex-end}
.bootstrap-select,.bs-container{--bs-dropdown-link-active-bg:var(--accent);--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-hover-bg:#fae9e3;--bs-dropdown-link-hover-color:var(--accent)}
.bootstrap-select .dropdown-menu .dropdown-item:focus,.bs-container .dropdown-menu .dropdown-item:focus{background:#fae9e3;color:var(--accent);outline:none}
.bootstrap-select .dropdown-menu .dropdown-item.active,.bs-container .dropdown-menu .dropdown-item.active{background:var(--accent)!important;color:#fff!important}
.bootstrap-select .bs-searchbox input:focus,.bs-container .bs-searchbox input:focus{box-shadow:none!important;border-color:var(--accent)!important;outline:none}

.bootstrap-select .dropdown-menu li a,.bs-container .dropdown-menu li a{position:relative;padding-right:36px}
.bootstrap-select .dropdown-menu .bs-ok-default,.bs-container .dropdown-menu .bs-ok-default{right:14px;top:50%;transform:translateY(-50%);color:currentColor}

.chart-export-status{width:100%;text-align:right;color:var(--accent);font-size:12px}

.bootstrap-select .dropdown-menu li.selected a .bs-ok-default,.bs-container .dropdown-menu li.selected a .bs-ok-default{position:absolute!important;top:50%!important;right:14px!important;transform:translateY(-50%)!important;margin:0!important}

.company-mileage-note{align-self:end;min-height:var(--field-height);display:flex;align-items:center;margin:0}

/* A tabela e o cartão partilham uma única linha inferior. */
.table-wrap .table>tbody>tr:last-child>*{border-bottom-width:0}
.sidebar nav>.administration-label{margin-top:36px}
.technician-team-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
@media(max-width:760px){.technician-team-row{grid-template-columns:1fr}}

.panel>:last-child:is(.filter-bar,.registered-hours-filters,.panel-heading,.movement-toolbar){border-bottom:0}
.registered-hours-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) max-content;gap:18px 14px;border-bottom:0}
.registered-hours-filters>label{min-width:0}
.registered-hours-filters>label:nth-of-type(1){grid-area:1/1}
.registered-hours-filters>label:nth-of-type(2){grid-area:1/2}
.registered-hours-filters>label:nth-of-type(3){grid-area:1/3}
.registered-hours-filters>label:nth-of-type(4){grid-area:2/1}
.registered-hours-filters>label:nth-of-type(5){grid-area:2/2}
.registered-hours-filters>label:nth-of-type(6){grid-area:2/3}
.registered-hours-filters>.filter-actions{grid-area:2/4;justify-content:flex-end}
@media(max-width:1050px){.registered-hours-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.registered-hours-filters>label:nth-of-type(n){grid-area:auto}.registered-hours-filters>.filter-actions{grid-area:auto;grid-column:1/-1;justify-content:flex-start}}
@media(max-width:550px){.registered-hours-filters{grid-template-columns:1fr}}

/* Navegação e conteúdo adaptados a tablet e telemóvel. */
.workspace,.page,.panel,.form-grid>*{min-width:0}
.sidebar{overflow-y:auto;overscroll-behavior:contain}
.table-wrap{max-width:100%;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.table-wrap:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.panel-heading>div,.section-heading>div,.movement-content,.activity>div{min-width:0}
.panel-heading h2,.section-heading h2,.page-header h1,.team-chip{overflow-wrap:anywhere}
.meeting-mine>span{cursor:default}
@media(max-width:1024px){
    .sidebar,.sidebar-collapsed .sidebar{position:relative;inset:auto;width:100%;padding:12px 20px;border-right:0;border-bottom:1px solid var(--border);transform:none;visibility:visible;pointer-events:auto;overflow:visible}
    .sidebar>.nav-label{display:none}
    .sidebar-brand-row{position:relative;justify-content:center}
    .sidebar .brand{width:auto;margin:0;gap:3px;flex-direction:column}
    .sidebar .brand-logo{width:120px;height:53px}
    .sidebar .brand>small{font-size:7px;max-width:160px}
    .sidebar-toggle{display:inline-flex;position:absolute;right:0;min-width:44px;min-height:44px}
    .sidebar-desktop-toggle{display:none}
    .sidebar nav.collapse:not(.show){display:none!important}
    .sidebar nav.collapse.show,.sidebar nav.collapsing{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin-top:14px}
    .sidebar nav>.nav-label{display:block;grid-column:1/-1;margin:24px 14px 6px;text-align:left}
    .sidebar .nav-link{min-height:44px;font-size:13px;margin:0;white-space:normal}
    .sidebar .nav-icon{flex-shrink:0}
    .workspace,.sidebar-collapsed .workspace{margin-left:0;width:100%}
    .topbar{padding:4px 20px;min-height:65px;height:auto;flex-wrap:nowrap;gap:12px}
    .topbar-tools{flex-wrap:nowrap;padding:0}
    .topbar-context{flex:1;margin-right:0!important}
    .page{padding:28px 20px 36px}
    .page-header{flex-wrap:wrap;align-items:flex-start}
    .dashboard-grid{grid-template-columns:minmax(0,1fr)}
    .registered-hours-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
    .platform-footer{left:0;flex-wrap:wrap;gap:14px;padding:20px}
    .panel-heading{flex-wrap:wrap;align-items:flex-start}
    .form-grid,.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .meeting-calendar .fc-header-toolbar{flex-wrap:wrap;gap:12px}
}
@media(max-width:600px){
    :root{--field-height:44px}
    html{scroll-padding-top:80px}
    .page{padding:22px 14px 28px}
    .page-header{gap:14px;flex-direction:column;margin-bottom:22px}
    h1{font-size:27px}
    .topbar{padding:4px 12px;gap:8px}
    .topbar-time{flex-direction:column;align-items:flex-end;gap:2px}
    .topbar .muted{margin:0 5px}
    .topbar-tools{gap:8px}
    .notifications-toggle{min-width:44px;min-height:44px}
    .actions,.history-actions,.movement-filter-actions,.form-footer{max-width:100%;flex-wrap:wrap;gap:10px}
    .page-header>.actions{width:100%}
    .btn{min-height:44px}
    .action-icon,.movement-icon-action{width:46px;height:44px;min-width:46px;min-height:44px}
    .movement-pdf-action{width:auto}
    .form-panel,.detail-panel{padding:20px 16px}
    .form-grid,.detail-grid,.account-password-fields,.address-fields,.contact-fields{grid-template-columns:minmax(0,1fr);gap:18px}
    .form-grid .span-2{grid-column:1/-1}
    .form-footer .btn{flex:1;min-width:0;white-space:normal;text-align:center}
    .filter-bar{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;padding:16px}
    .filter-bar input:not([type=checkbox]):not([type=radio]),.filter-bar select,.filter-bar>.bootstrap-select{width:100%!important;max-width:none;min-width:0}
    .filter-date{display:flex;align-items:center;gap:10px;width:100%;min-width:0}
    .filter-date input{flex:1;min-width:0}
    .filter-actions{flex-wrap:nowrap;max-width:100%}
    .filter-actions .btn{flex:1}
    .client-filters input[name=q],.client-filters select{min-width:0}
    .meeting-mine{min-height:44px}
    .registered-hours-filters{padding:16px}
    .registered-hours-filters>label{min-width:0}
    .registered-hours-stats,.dashboard-chart-stats{grid-template-columns:minmax(0,1fr)}
    .stat strong{white-space:nowrap}
    .dashboard-chart-stats .stat{min-height:245px}
    .dashboard-large-chart,.registered-hours-chart{margin-left:12px;margin-right:12px}
    .project-tabs{flex-wrap:wrap}
    .project-tabs .nav-link{flex:1 1 140px;min-height:44px}
    .project-team{gap:10px}
    .team-chip{max-width:100%;white-space:normal}
    .team-row{grid-template-columns:minmax(0,1fr)}
    .team-row>.check,.team-row>.field{grid-column:1/-1}
    .movement{grid-template-columns:minmax(0,1fr)}
    .movement-date{display:flex;gap:8px;align-items:center;border-right:0;padding:0}
    .movement-actions{max-width:100%;flex-wrap:wrap}
    .table-wrap table{min-width:600px}
    .table-wrap .table>:not(caption)>*>*{padding:14px 16px}
    .pagination{padding:16px;flex-wrap:wrap;gap:12px}
    .platform-footer{padding:20px 16px;flex-direction:column;align-items:flex-start;text-align:left;gap:12px;border-radius:0}
    .platform-footer address{margin:0}
    .modal-dialog{margin:12px}
    .modal-header,.modal-body,.modal-body.meeting-details,.modal-footer{padding:20px}
    .modal-footer{gap:10px}
    .modal-footer>.btn{margin:0;max-width:100%;white-space:normal}
    .modal-footer>[data-meeting-download]{width:100%}
    .project-map:not(:fullscreen):not(.map-fullscreen-fallback){height:340px}
    .project-map[data-map-editable]:not(:fullscreen):not(.map-fullscreen-fallback){height:380px}
    .chart-export-toolbar{flex-wrap:wrap}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.company-principal-section{margin-top:28px;padding-top:24px;border-top:1px solid var(--border)}
.company-principal-actions{align-self:end;align-items:center}
.company-principal-note{font-size:12px;margin:18px 0 0}

.general-coordinator-block{margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid var(--border)}
.general-coordinator-block .section-heading{margin-bottom:14px}

@media(max-width:1024px){.bs-container .dropdown-menu{max-width:calc(100vw - 24px)}}
@media(max-width:600px){.meeting-calendar .fc-button{min-height:44px}.meeting-calendar .fc-view-harness{overflow-x:auto}.meeting-calendar .fc-timeGridWeek-view .fc-scrollgrid{min-width:640px}}

.company-principal-actions>.btn{height:var(--filter-control-height,var(--field-height));min-height:var(--filter-control-height,var(--field-height));box-sizing:border-box}

.project-team.general-coordinator-block{border-bottom:0;margin-bottom:0;padding-bottom:0}

.filter-bar input[type=checkbox]{width:17px!important;min-width:17px;max-width:17px;flex:0 0 17px}
input[type=checkbox]:focus-visible{outline:2px solid var(--accent)!important;outline-offset:3px}

.technician-filters { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.technician-filters .count { justify-self: start; }
@media (max-width: 1024px) { .technician-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .technician-filters { grid-template-columns: minmax(0, 1fr); } }

.dashboard-period a,.dashboard-period .selected-period{display:flex;align-items:center;border:0;border-radius:5px;background:transparent;color:var(--muted);padding:9px 13px;font-size:12px;text-decoration:none}
.dashboard-period a[aria-current=true],.dashboard-period .selected-period{background:var(--accent);color:#fff}
.dashboard-period a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media(max-width:600px){.dashboard-period button,.dashboard-period a,.dashboard-period .selected-period{min-height:44px}.registered-hours-period .dashboard-period{width:100%}}

.technician-filters>.bootstrap-select{width:100%!important;min-width:0;max-width:100%}
.technician-filters>.filter-actions{justify-content:flex-start;gap:12px;min-width:0}
.technician-filters>.filter-actions .count{flex-shrink:0}
.meeting-participant-grid input[type=radio]{width:17px;height:17px;flex-shrink:0;accent-color:var(--accent)}

.bootstrap-select:not(.mobile-device)>select{pointer-events:none!important;min-width:0!important;min-height:0!important;width:.5px!important;height:.5px!important;padding:0!important}

.company-identity-fields{display:grid;grid-template-columns:2fr 1fr 1fr;gap:20px 24px;min-width:0}.company-identity-fields>.field:first-child{grid-column:span 2}
@media(max-width:760px){.company-identity-fields{grid-template-columns:minmax(0,1fr)}.company-identity-fields>.field:first-child{grid-column:auto}}

.communication-areas{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}.communication-actions{display:flex;flex-wrap:nowrap;align-items:center;gap:10px;white-space:nowrap}.communication-actions form{margin:0}.communication-preview{display:block;width:100%;min-height:650px;border:1px solid var(--border,#dededb);border-radius:8px;margin-top:24px;background:white}.communication-filters{flex-wrap:wrap}

.communication-panel>.communication-areas{padding:24px 24px 16px;margin:0;gap:8px}.communication-areas>.nav-link{flex:1 1 0;display:flex;align-items:center;justify-content:center}.communication-toolbar{display:flex;justify-content:flex-end;padding:0 24px 20px}.communication-history-note{padding:20px 24px;margin:0;border-top:1px solid var(--border)}
@media(max-width:1000px){.communication-areas>.nav-link{flex-basis:140px}}
@media(max-width:760px){.communication-panel>.communication-areas{padding:18px 16px 14px}.communication-toolbar{padding:0 16px 16px}.communication-history-note{padding:18px 16px}}

.communication-detail-actions{justify-content:flex-end;margin-bottom:24px}

.person-list-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.person-list-filters>input,.person-list-filters>select,.person-list-filters>.bootstrap-select{width:100%!important;max-width:none!important}.person-list-filters>.filter-actions{align-self:center;justify-content:flex-end}
@media(max-width:1000px){.person-list-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.person-list-filters{grid-template-columns:minmax(0,1fr)}.person-list-filters>.filter-actions{justify-content:flex-start}}

.project-team-filters{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr) auto;gap:16px;align-items:end;margin-bottom:24px}.project-team-filters>.filter-actions{align-self:end;display:flex;align-items:center;gap:12px;height:var(--field-height,48px)}.project-team-filters .bootstrap-select{width:100%!important;min-width:0}.project-team-box [data-team-person][hidden]{display:none!important}.project-team-box [data-team-empty]{margin:0 0 20px}.project-team-filters .count{margin:0;white-space:nowrap}.project-team-filters input,.project-team-filters .btn{min-height:var(--field-height,48px)}
@media(max-width:1100px){.project-team-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.project-team-filters{grid-template-columns:minmax(0,1fr)}}
.meeting-calendar .fc-event-draggable{cursor:grab}.meeting-calendar .fc-event-resizer{min-height:10px}.meeting-calendar .fc-event-resizer:after{content:"";position:absolute;left:50%;width:22px;max-width:70%;border-top:2px solid currentColor;transform:translateX(-50%);opacity:.8;top:4px}.meeting-calendar .fc-daygrid-event .fc-event-resizer:after{width:2px;height:10px;border-top:0;border-left:2px solid currentColor;top:50%;transform:translate(-50%,-50%)}.meeting-calendar[aria-busy=true]{opacity:.7}

.meeting-calendar .fc-event-resizable .fc-event-resizer{display:block}

.communication-actions{justify-content:flex-end}.communication-panel th:last-child{text-align:right}

.meeting-calendar-panel>.panel-heading{align-items:flex-start}.meeting-calendar-panel>.panel-heading>div:first-child{flex:1;min-width:0}.meeting-calendar-panel>.panel-heading>.actions{flex-wrap:nowrap;flex-shrink:0}
@media(max-width:760px){.meeting-calendar-panel>.panel-heading{flex-direction:column}.meeting-calendar-panel>.panel-heading>.actions{width:100%;justify-content:flex-end}}

.communication-panel td.communication-date,.communication-panel td.communication-area,.communication-panel td.communication-status{white-space:nowrap}

.technician-filters+ .table-wrap td:first-child{min-width:220px}.trash-tools{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:18px 24px;border-bottom:1px solid var(--border)}.trash-tools>.actions,.trash-tools>form{margin-left:auto}.trash-tools input[type=checkbox],.trash-selection-column input[type=checkbox]{width:18px;height:18px;padding:0;cursor:pointer}.trash-selection-column{width:85px;white-space:nowrap}.trash-tools form{margin:0}.trash-tools>form{margin-left:auto}.trash-tools .btn{min-height:42px}.trash-tools+.table-wrap td:has(.person-list-item){min-width:220px}@media(max-width:760px){.trash-tools{padding:16px}.trash-tools>.actions{margin-left:0;width:100%;justify-content:flex-end}}
