:root{--bg:#fbfaf7;--card:#fffdfa;--line:#e9e5de;--text:#181816;--muted:#77716b;--green:#18833b;--yellow:#d59b00;--orange:#e76213;--red:#b63d32;--shadow:0 12px 40px rgba(20,18,15,.04);--radius:18px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px;letter-spacing:-.01em}.topbar{height:118px;display:grid;grid-template-columns:360px 1fr 260px 330px auto;gap:22px;align-items:center;padding:22px 34px;border-bottom:1px solid var(--line);background:rgba(251,250,247,.88);backdrop-filter:blur(20px)}.brand{font-size:31px;letter-spacing:-.06em;font-weight:300;line-height:.9;white-space:nowrap}.brand span{font-size:.55em;letter-spacing:-.03em}.brand small{display:block;font-size:13px;letter-spacing:.55em;text-transform:lowercase;margin-left:58px;margin-top:12px;font-weight:300}.timebox{display:flex;align-items:center;gap:22px;justify-self:end}.timebox strong{font-weight:300;font-size:46px;letter-spacing:-.08em}.timebox span{border-left:1px solid var(--line);padding-left:20px;line-height:1.45;color:#3d3935}.pill{height:76px;border:1px solid var(--line);border-radius:16px;background:var(--card);display:flex;align-items:center;gap:14px;padding:14px 18px;box-shadow:var(--shadow)}.pill small{color:var(--muted)}.weather-icon{font-size:32px;color:var(--orange)}.status i{width:10px;height:10px;border-radius:50%;background:var(--green);display:block;flex:0 0 auto}.status.yellow i{background:var(--yellow)}.status.red i{background:var(--red)}.logout{color:var(--muted);text-decoration:none}.nav{display:flex;align-items:center;gap:8px;padding:16px 34px}.nav button,.btn{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:9px 14px;color:var(--text);cursor:pointer;font:inherit}.nav button.active,.btn.primary{background:#181816;color:#fff;border-color:#181816}.btn.ghost{background:transparent}.btn.mini{font-size:12px;padding:5px 10px}.searchbox{margin-left:auto;position:relative}.searchbox input,.toolbar input,input,select,textarea{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff;color:var(--text);font:inherit}.searchbox input{width:360px}.search-results{display:none;position:absolute;right:0;top:44px;width:420px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 20px 70px rgba(20,18,15,.12);z-index:5;padding:10px}.search-results.active{display:block}.search-results div{padding:10px;border-bottom:1px solid var(--line)}.search-results div:last-child{border-bottom:0}main{padding:0 28px 38px}.view{display:none}.view.active{display:block}.section-title{display:flex;align-items:center;justify-content:space-between;margin:18px 0 12px}.section-title h2{font-weight:400;font-size:18px;margin:0}.section-title h3,.card h3{font-weight:400;font-size:16px;margin:0}.compact{margin:0 0 10px}.project-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}.project-card{position:relative;min-height:154px;border:1px solid var(--line);background:var(--card);border-radius:var(--radius);padding:24px 22px;box-shadow:var(--shadow);cursor:pointer}.project-card h3{font-size:20px;font-weight:400;margin:0 0 20px}.dot{position:absolute;right:20px;top:20px;width:9px;height:9px;border-radius:50%;background:#aaa}.dot.green{background:var(--green)}.dot.yellow{background:var(--yellow)}.dot.orange{background:var(--orange)}.dot.red{background:var(--red)}.meta{color:var(--muted);font-size:12px}.meta b{color:var(--text);font-weight:500}.state.green{color:var(--green)}.state.yellow{color:var(--yellow)}.state.orange{color:var(--orange)}.state.red{color:var(--red)}.layout-main{display:grid;grid-template-columns:1fr 330px;gap:18px;margin-top:18px}.board-panel,.card,.table-card{border:1px solid var(--line);background:rgba(255,253,250,.74);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.board{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;min-height:400px}.column{border-left:1px solid var(--line);padding-left:16px}.column:first-child{border-left:0;padding-left:0}.column h3{font-size:14px;font-weight:500;margin:0 0 14px}.task-card{border:1px solid var(--line);border-radius:13px;background:#fff;padding:16px;margin-bottom:12px;cursor:grab;min-height:92px}.task-card h4{font-size:15px;font-weight:500;margin:0}.task-top{display:flex;justify-content:space-between;gap:10px}.task-card small{display:block;color:var(--muted);margin-top:4px}.progress{height:4px;background:#e2dfd8;border-radius:999px;margin-top:16px;overflow:hidden}.progress span{display:block;height:100%;background:#111;border-radius:999px}.assignees{display:flex;gap:4px;margin-top:8px}.avatar{width:24px;height:24px;border:1px solid var(--line);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#fbfaf7;color:#333;font-size:11px}.sidecol{display:flex;flex-direction:column;gap:14px}.side{padding:20px}#priorities{margin:12px 0 0;padding:0;list-style:none;counter-reset:item}#priorities li{counter-increment:item;border-top:1px solid var(--line);padding:14px 0 14px 34px;position:relative;font-size:13px}#priorities li:before{content:counter(item);position:absolute;left:0;color:var(--muted)}.calendar-head{display:flex;justify-content:space-between;align-items:center;margin:16px 0}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.calendar-grid div{aspect-ratio:1;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;color:#555;position:relative;cursor:pointer}.calendar-grid .dow{aspect-ratio:auto;color:var(--muted);font-size:10px;cursor:default}.calendar-grid .today{background:#181816;color:#fff}.calendar-grid .has:after{content:"";width:5px;height:5px;border-radius:50%;background:var(--orange);position:absolute;bottom:3px}.day-details{margin-top:16px;border-top:1px solid var(--line);padding-top:12px;font-size:12px}.toolbar{margin-bottom:14px}.project-table,.history-table{width:100%;border-collapse:collapse}.project-table th,.project-table td,.history-table th,.history-table td{padding:12px;border-bottom:1px solid var(--line);text-align:left;font-size:13px}.project-table th,.history-table th{color:var(--muted);font-weight:500}.row-actions{display:flex;gap:6px;flex-wrap:wrap}.people-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.person{border:1px solid var(--line);border-radius:16px;background:#fff;padding:18px;display:flex;gap:14px;align-items:flex-start}.person .avatar{width:42px;height:42px;font-size:14px}.work-groups{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.work-group{border:1px solid var(--line);border-radius:16px;background:#fff;padding:18px}.muted{color:var(--muted)}.notice{padding:12px;border-radius:12px;background:#f1eee8}.notice.error{background:#f8e8e6;color:#8a221a}.login-body{min-height:100vh;display:grid;place-items:center}.login-card{width:min(440px,calc(100vw - 36px));background:var(--card);border:1px solid var(--line);border-radius:24px;padding:38px;box-shadow:var(--shadow)}.login-card h1{font-weight:400;margin:28px 0 4px}.form-stack{display:grid;gap:14px;margin-top:24px}.form-stack label{display:grid;gap:6px;color:var(--muted)}.form-stack input,.form-stack select,.form-stack textarea{width:100%}dialog{border:1px solid var(--line);border-radius:22px;padding:0;width:min(720px,calc(100vw - 30px));box-shadow:0 30px 100px rgba(0,0,0,.18)}dialog::backdrop{background:rgba(18,18,16,.18);backdrop-filter:blur(4px)}#modalBody{padding:26px}.dialog-close{position:absolute;right:16px;top:12px;border:0;background:transparent;font-size:26px;cursor:pointer}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.form-grid .full{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.hidden,.admin-only.hidden{display:none!important}@media(max-width:1200px){.topbar{grid-template-columns:1fr 1fr}.project-grid{grid-template-columns:repeat(3,1fr)}.layout-main{grid-template-columns:1fr}.board{grid-template-columns:repeat(2,1fr)}}
/* Logo SANCHES DE CASTRO */
.brand-logo {
  display: flex;
  align-items: center;
  text-decoration: none;
  flex-shrink: 0;
  max-width: 260px;
}

.brand-logo img {
  width: 300px !important;
  max-width: 300px !important;
  height: auto !important;
  display: block;
}

/* Logo no ecrã de login pode ser maior */
.login-logo {
  justify-content: center;
  margin-bottom: 26px;
  max-width: none;
}

.login-logo img {
  width: 330px !important;
  max-width: 330px !important;
}
/* =========================
   MOBILE / TABLET FIX
   ========================= */

@media (max-width: 900px) {

  body {
    overflow-x: hidden;
  }

  .topbar,
  .header,
  .dashboard-header {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 18px !important;
    padding: 24px 22px !important;
  }

  .brand-logo {
    width: 180px !important;
    max-width: 180px !important;
  }

  .brand-logo img {
    width: 180px !important;
    max-width: 180px !important;
    height: auto !important;
  }

  .clock,
  .time-block,
  .header-time {
    font-size: 34px !important;
    line-height: 1 !important;
  }

  .header-meta,
  .date-block,
  .weather-card,
  .status-card {
    width: 100% !important;
    max-width: 100% !important;
  }

  .header-actions,
  .nav,
  .nav-tabs,
  .main-nav {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    width: 100% !important;
  }

  .nav a,
  .nav button,
  .nav-tabs a,
  .nav-tabs button,
  .main-nav a,
  .main-nav button {
    font-size: 13px !important;
    padding: 9px 13px !important;
    white-space: nowrap !important;
  }

  .search,
  .search-box,
  .global-search {
    width: 100% !important;
    max-width: 100% !important;
  }

  .projects-grid,
  .project-grid,
  .main-projects {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 14px !important;
  }

  .project-card {
    min-height: auto !important;
    padding: 18px !important;
  }

  .project-card h3,
  .project-card .title {
    font-size: 18px !important;
    line-height: 1.15 !important;
  }

  .layout,
  .dashboard-layout,
  .main-layout {
    display: block !important;
  }

  .kanban,
  .work-board,
  .board {
    overflow-x: auto !important;
    padding-bottom: 12px !important;
  }

  .kanban-columns,
  .board-columns,
  .columns {
    display: flex !important;
    gap: 14px !important;
    min-width: 980px !important;
  }

  .kanban-column,
  .board-column,
  .column {
    min-width: 260px !important;
  }

  .sidebar,
  .right-sidebar,
  .aside {
    width: 100% !important;
    margin-top: 22px !important;
  }
}
/* =========================
   MOBILE HEADER FIX
   ========================= */

@media screen and (max-width: 900px) {

  body {
    overflow-x: hidden !important;
  }

  header,
  .topbar,
  .app-header,
  .dashboard-header {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px !important;
    align-items: start !important;
    padding: 20px 18px !important;
    height: auto !important;
    min-height: unset !important;
  }

  .brand-logo {
    width: 170px !important;
    max-width: 170px !important;
    height: auto !important;
  }

  .brand-logo img {
    width: 170px !important;
    max-width: 170px !important;
    height: auto !important;
  }

  .clock,
  .time,
  .current-time,
  [data-clock] {
    font-size: 34px !important;
    line-height: 1 !important;
    margin: 0 !important;
  }

  .weather-card,
  .status-card,
  .header-card,
  .search-card {
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  nav,
  .nav,
  .tabs,
  .header-nav {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    width: 100% !important;
  }

  nav a,
  nav button,
  .nav a,
  .nav button,
  .tabs a,
  .tabs button {
    font-size: 12px !important;
    padding: 8px 11px !important;
    white-space: nowrap !important;
  }

  input[type="search"],
  .global-search,
  .search-input {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  main,
  .container,
  .dashboard,
  .content {
    padding-left: 16px !important;
    padding-right: 16px !important;
    box-sizing: border-box !important;
  }

  .projects-grid,
  .project-grid,
  .projects {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 12px !important;
  }

  .project-card {
    min-width: 0 !important;
    padding: 16px !important;
  }

  .project-card h3 {
    font-size: 17px !important;
    line-height: 1.15 !important;
  }

  .kanban,
  .board,
  .work-board {
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }

  .kanban-columns,
  .board-columns,
  .columns {
    display: flex !important;
    gap: 14px !important;
    min-width: 980px !important;
  }

  .kanban-column,
  .board-column,
  .column {
    min-width: 260px !important;
    width: 260px !important;
  }
}