/* «Design novo» (experimental): only under html[data-design="novo"]; without it the app looks exactly as before.
   Light warm background, white cards with large radius and hairlines, green accent, menu with icons, phone bottom bar. */
/* Fonts (SIL Open Font License 1.1): Geist (Vercel) and Archivo (Omnibus-Type), served from lib/fonts. */
@font-face{font-family:Geist;src:url(../lib/fonts/geist-var.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:Archivo;src:url(../lib/fonts/archivo-latin-500.woff2) format("woff2");font-weight:500;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Archivo;src:url(../lib/fonts/archivo-latin-ext-500.woff2) format("woff2");font-weight:500;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Archivo;src:url(../lib/fonts/archivo-latin-600.woff2) format("woff2");font-weight:600;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Archivo;src:url(../lib/fonts/archivo-latin-ext-600.woff2) format("woff2");font-weight:600;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Archivo;src:url(../lib/fonts/archivo-latin-700.woff2) format("woff2");font-weight:700;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Archivo;src:url(../lib/fonts/archivo-latin-ext-700.woff2) format("woff2");font-weight:700;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
html[data-design=novo]{
 --dn-bg:#f5f4ef;--dn-surface:#fff;--dn-text:#15181e;--dn-muted:#646a77;--dn-line:rgba(21,24,30,.09);--dn-line-strong:rgba(21,24,30,.16);
 --dn-green:#0e7c66;--dn-green-hover:#0b6151;--dn-green-soft:#e7f5ee;--dn-green-text:#198754;--dn-red:#c0492f;--dn-gold:#b08d57;
 --dn-radius:12px;--dn-card-radius:17px;--dn-shadow:0 4px 20px rgba(0,0,0,.04);
 --dn-font:Geist,"Inter","Segoe UI",system-ui,-apple-system,sans-serif;--dn-display:Archivo,"Segoe UI Semibold","Segoe UI",system-ui,sans-serif;
 --blue:#15181e;--green:#0e7c66;--line:var(--dn-line);
 font-family:var(--dn-font);color:var(--dn-text);background:var(--dn-bg)
}
html[data-design=novo][data-theme=dark]{
 --dn-bg:#0f1413;--dn-surface:#171e1c;--dn-text:#e8ece9;--dn-muted:#9aa3a0;--dn-line:rgba(232,236,233,.10);--dn-line-strong:rgba(232,236,233,.18);
 --dn-green:#2fa385;--dn-green-hover:#3bb895;--dn-green-soft:rgba(47,163,133,.16);--dn-green-text:#5fd0ac;--dn-shadow:none;--blue:#e8ece9
}
html[data-design=novo] body{background:var(--dn-bg);color:var(--dn-text)}
/* Typography */
html[data-design=novo] h1{font-family:var(--dn-display);font-weight:700;letter-spacing:-.03em;font-size:1.85rem}
html[data-design=novo] h2,html[data-design=novo] h3{font-family:var(--dn-display);font-weight:600;letter-spacing:-.015em}
html[data-design=novo] .muted,html[data-design=novo] .small{color:var(--dn-muted)}
/* Header: light, hairline under it */
html[data-design=novo] #app-header{background:color-mix(in srgb,var(--dn-bg) 92%,transparent);color:var(--dn-text);border-bottom:1px solid var(--dn-line);backdrop-filter:blur(8px)}
html[data-design=novo] #app-header small,html[data-design=novo] #header-tagline{color:var(--dn-muted)}
html[data-design=novo] #app-header .header-action,html[data-design=novo] #app-header .alert-bell{background:transparent;color:var(--dn-text);border:1px solid var(--dn-line)}
html[data-design=novo] #top-save-status{color:var(--dn-muted)!important}
html[data-design=novo] .app-brand img{background:transparent}
/* Side menu */
html[data-design=novo] #app-navigation{background:transparent;border-right:1px solid var(--dn-line);padding:16px;gap:2px}
html[data-design=novo] #app-navigation .nav-group{font-size:10px;font-weight:700;letter-spacing:1.3px;text-transform:uppercase;color:var(--dn-muted);margin:16px 12px 6px}
html[data-design=novo] #app-navigation button{display:flex;align-items:center;gap:10px;min-height:36px;padding:8px 12px;border-radius:var(--dn-radius);font-size:13px;font-weight:400;color:var(--dn-muted);background:transparent}
html[data-design=novo] #app-navigation button:hover{background:color-mix(in srgb,var(--dn-green-soft) 60%,transparent);color:var(--dn-text)}
html[data-design=novo] #app-navigation button.active{background:var(--dn-green-soft);color:var(--dn-green-text);font-weight:500}
html[data-design=novo] #app-navigation summary{font-size:13px;color:var(--dn-muted);padding:8px 12px;border-radius:var(--dn-radius)}
html[data-design=novo] .dn-icon{flex:none}
html:not([data-design=novo]) .dn-icon,html:not([data-design=novo]) #dn-bottom{display:none!important}
.dn-toggle{margin-top:10px;font-size:12px!important;border:1px dashed var(--line)!important;justify-content:center}
html[data-design=novo] .dn-toggle{color:var(--dn-green-text)!important;border-color:var(--dn-green)!important}
/* Buttons and fields */
html[data-design=novo] button{border-radius:var(--dn-radius);border:1px solid var(--dn-line-strong);background:var(--dn-surface);color:var(--dn-text);font-weight:500}
html[data-design=novo] button:hover{background:var(--dn-green-soft)}
html[data-design=novo] button.primary{background:var(--dn-green);border-color:var(--dn-green);color:#fff;box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1)}
html[data-design=novo] button.primary:hover{background:var(--dn-green-hover)}
html[data-design=novo] input,html[data-design=novo] select,html[data-design=novo] textarea{border-radius:var(--dn-radius);border:1px solid var(--dn-line-strong);background:var(--dn-surface);color:var(--dn-text)}
html[data-design=novo] input[type=checkbox]{accent-color:var(--dn-green)}
html[data-design=novo] a{color:var(--dn-green)}
/* Cards, panels, metrics */
html[data-design=novo] .card,html[data-design=novo] .panel,html[data-design=novo] .metric,html[data-design=novo] .work-card,html[data-design=novo] .person-card{background:var(--dn-surface);border:1px solid var(--dn-line);border-radius:var(--dn-card-radius);box-shadow:var(--dn-shadow)}
html[data-design=novo] .metric strong{font-family:var(--dn-display);font-weight:700;letter-spacing:-.02em}
html[data-design=novo] .metric span{color:var(--dn-muted)}
/* Tabs: segmented white bar */
html[data-design=novo] .tabs{background:var(--dn-surface);border:1px solid var(--dn-line);border-radius:var(--dn-card-radius);padding:6px;gap:4px;box-shadow:var(--dn-shadow)}
html[data-design=novo] .tabs button{border:0;background:transparent;color:var(--dn-muted);border-radius:var(--dn-radius)}
html[data-design=novo] .tabs button.active,html[data-design=novo] .tabs .active{background:var(--dn-green-soft)!important;color:var(--dn-green-text)!important}
/* Tables */
html[data-design=novo] .legal-table th,html[data-design=novo] .report-table th{color:var(--dn-muted);font-weight:600}
html[data-design=novo] dialog{border-radius:var(--dn-card-radius);border:1px solid var(--dn-line)}
/* Phones: bottom bar with icons instead of the hamburger menu */
#dn-bottom{display:none}
@media (max-width:980px){
 html[data-design=novo] #dn-bottom{display:grid;grid-template-columns:repeat(6,1fr);position:fixed;left:0;right:0;bottom:0;top:auto;height:auto;width:auto;transform:none;z-index:60;background:var(--dn-surface);border-top:1px solid var(--dn-line);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}
 html[data-design=novo] #dn-bottom button{display:flex;flex-direction:column;align-items:center;gap:3px;min-height:52px;padding:4px 2px;border:0;background:transparent;color:var(--dn-muted);font-size:11px;font-weight:500;border-radius:10px}
 html[data-design=novo] #dn-bottom button .dn-icon{width:22px;height:22px}
 html[data-design=novo] #dn-bottom button.active{color:var(--dn-green-text)}
 html[data-design=novo] body{padding-bottom:76px}
 html[data-design=novo] #nav-toggle{display:none}
}
/* Menu items without boxes; wider menu on computers */
html[data-design=novo] #app-navigation button,html[data-design=novo] #app-navigation summary{border:0!important;box-shadow:none}
html[data-design=novo] #app-navigation .dn-toggle{border:1px dashed var(--dn-green)!important}
@media (min-width:981px){html[data-design=novo] body:not(.nav-collapsed) .shell{grid-template-columns:240px minmax(0,1fr)}}
/* Distribution grid: keep the original look (work colours visible; cells are buttons but must not look like buttons) */
html[data-design=novo] .allocation-grid button,html[data-design=novo] .allocation-grid button:hover{background:transparent;border:0;border-radius:0;box-shadow:none;color:inherit;font-weight:400}
html[data-design=novo] .allocation-grid button:hover{background:#ffffff55}
html[data-design=novo] .allocation-grid th button,html[data-design=novo] .allocation-grid .grid-name button{font-weight:600}
/* New logo (header): ALOCA wordmark, orange A */
.dn-wordmark{display:none}
html[data-design=novo] #app-header .app-brand img{display:none}
html[data-design=novo] .dn-wordmark{display:block;color:var(--dn-text);flex:none}
/* Phone: «Mais» opens the full menu as a solid panel above the content */
@media (max-width:980px){
 html[data-design=novo] #app-navigation{background:var(--dn-surface)!important;border-right:1px solid var(--dn-line);box-shadow:0 12px 40px rgba(0,0,0,.18);bottom:72px!important;overflow-y:auto;padding:12px 12px 20px}
 html[data-design=novo] body.nav-open #nav-backdrop{display:block;background:rgba(21,24,30,.35)}
 html[data-design=novo] #app-navigation button{min-height:44px;font-size:14px}
}
/* Phone: floating controls (grid zoom) sit above the bottom bar */
@media (max-width:980px){html[data-design=novo] .grid-zoom-controls{bottom:calc(84px + env(safe-area-inset-bottom));z-index:61}}
/* Names that open a record (lists, alerts, people per work): plain text, no button outline */
html[data-design=novo] button.person,html[data-design=novo] button.site-person,html[data-design=novo] .link-button{border:0;background:transparent;box-shadow:none}
html[data-design=novo] button.person:hover,html[data-design=novo] button.site-person:hover{background:var(--dn-green-soft)}
/* Distribution: day figures and people per work */
.grid-summary{margin:10px 0;padding:12px 16px}
.grid-metrics{margin:0 0 10px;grid-template-columns:repeat(4,minmax(0,1fr))}
.grid-metrics .metric{padding:10px 12px}.grid-metrics .metric strong{font-size:1.5rem}
.grid-summary summary{cursor:pointer;padding:4px 0}
.grid-site-counts{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px 14px}
.grid-site-counts li{display:grid;grid-template-columns:1fr auto;gap:0 8px;padding:6px 0;border-bottom:1px solid var(--line)}
.grid-site-counts li small{grid-column:1/-1;color:var(--dn-muted,#597183)}
.grid-find{margin:8px 0}.grid-find input{flex:1;max-width:420px}
@media (max-width:700px){.grid-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
html[data-design=novo] .grid-zoom-controls button{min-height:34px;min-width:34px;padding:2px 6px;font-size:16px}
/* Corner mark of a day changed by a collaborator (the grid button reset above removes background images). */
html[data-design=novo] .allocation-grid .grid-cell.collab-edited,html[data-design=novo] .allocation-grid .grid-cell.collab-edited:hover{background-image:linear-gradient(225deg,#8b5cf6 0 7px,transparent 7px)}
