@font-face{font-family:Inter;src:local("Inter");font-display:swap}
:root{font-family:Inter,"Segoe UI",sans-serif;color:#29241e;background:#fbf8f3;--ink:#29241e;--dim:#6f665b;--line:#e9dfd3;--paper:#fffdf9;--orange:#d74822;--green:#3d6351;--sidebar:229px}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0}
button,input,select,textarea{font:inherit}
button,select{cursor:pointer}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid #db773d;outline-offset:3px}
button{color:inherit}
button:disabled{cursor:wait;opacity:.55}
img{display:block;max-width:100%}
h1,h2,h3,p{margin:0}
small{color:var(--dim)}
.workspace{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);min-height:100dvh}
.sidebar{height:100dvh;position:sticky;top:0;display:flex;flex-direction:column;background:#fffdf9;padding:26px 15px 14px;border-right:1px solid #eadfd2}
.brand{padding:0 9px 24px;display:flex;align-items:center;gap:7px}
.brand img{width:123px;height:auto}
.brand span{font-size:.6rem;letter-spacing:.12em;font-weight:800;padding:4px 5px;border-radius:4px;background:#f7e4d6;color:#8b3d24}
.sidebar-user{display:flex;align-items:center;gap:11px;min-width:0}
.project-label{display:grid;gap:5px;padding:12px 2px;border-top:1px solid #e1d8cc;margin-bottom:14px}
.project-label label{font-size:.68rem;color:var(--dim);padding-left:2px}
.project-label select{width:100%;font-size:.84rem;font-weight:650}
.project-add{width:max-content;text-align:left;background:none;border:none;color:#96381b;padding:5px 2px;font-weight:650;font-size:.76rem}
.project-add:hover{text-decoration:underline}
.sidebar-user strong{font-size:.87rem;display:block;overflow-wrap:anywhere}
.sidebar-user small{display:block;font-size:.72rem;margin-top:4px;line-height:1.3}
.nav{display:grid;gap:6px}
.nav button,.tool,.icon-btn{border:1px solid transparent;background:transparent}
.nav button{width:100%;text-align:left;border-radius:8px;padding:11px 9px;font-weight:600;font-size:.89rem;display:flex;align-items:center;gap:11px}
.nav button:hover{background:#faf7f1}
.nav button[aria-current=page]{background:#f7e8dc;border-color:#f0dccd;color:#9d3519}
.nav-icon{width:25px;height:25px;flex:none;display:grid;place-items:center;border-radius:7px;background:#f6ece0}
.nav-icon img{width:17px;height:17px;object-fit:contain}
.sidebar-user{border-top:1px solid #dfd5c9;margin-top:auto;padding:15px 0 0}
.logout{border:none;background:none;margin-left:auto;padding:5px;font-size:1.1rem}
.avatar{display:inline-grid;place-items:center;border-radius:50%;width:31px;height:31px;flex:none;font-size:.68rem;font-weight:750;background:#eee2d1;color:#5b442a}
.tone-orange{background:#f6dfd0;color:#993919}.tone-green{background:#ddebe2;color:#305641}.tone-blue{background:#e0ebf2;color:#315b76}.tone-purple{background:#eae0f0;color:#694678}.tone-sand{background:#eee3d1;color:#604b30}
.content{min-width:0}
.topbar{height:67px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 30px;border-bottom:1px solid var(--line);background:#fffdf9}
.breadcrumb{font-size:.85rem;color:var(--dim)}
.breadcrumb span{margin:0 6px;color:#8d8071}
.breadcrumb strong{color:var(--ink)}
.top-actions{display:flex;gap:8px}
.button{border:1px solid #e0d7ca;border-radius:8px;padding:9px 13px;background:var(--paper);font-size:.83rem;font-weight:650;line-height:1.2;white-space:nowrap}
.button:hover{background:#f5efe7}
.button.primary{background:var(--orange);color:white;border-color:var(--orange)}
.button.primary:hover{background:#ac391a}
.button.subtle{background:transparent}
.button.danger{color:#a72f25}
#view{min-width:0}
.page{padding:28px 30px 34px}
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:19px}
.page-head h1{font-size:clamp(1.7rem,3vw,2.4rem);letter-spacing:-.045em;line-height:1.07}
.page-head p{font-size:.89rem;color:var(--dim);margin-top:8px;line-height:1.45}
.project-banner{background:#f7eadb url("/equipo-oficina.webp") right 46% / 53% auto no-repeat;border:1px solid #eedfce;border-radius:16px;overflow:hidden;margin-bottom:13px;min-height:178px}
.project-banner-content{min-height:inherit;padding:21px 25px;background:linear-gradient(90deg,#f8eddf 0%,#f8eddf 45%,#f8eddf00 76%);display:flex;flex-direction:column;align-items:flex-start;justify-content:center}
.project-banner h1{font-size:clamp(1.65rem,3.2vw,2.65rem);letter-spacing:-.045em;max-width:62%;overflow-wrap:anywhere}
.project-banner p{color:#6d5140;font-size:.86rem;line-height:1.4;margin-top:5px;max-width:58%;overflow-wrap:anywhere}
.project-banner .button{margin-top:14px;border-radius:999px}
.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:0 0 18px}
.metric{position:relative;display:flex;align-items:baseline;gap:7px;padding:11px 13px;background:#fffdf9;border:1px solid #ebdfd3;border-radius:9px;font-size:.77rem;color:#624e3e;overflow:hidden}
.metric::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:#a87759}
.metric:nth-child(2)::before{background:#db9a46}.metric:nth-child(3)::before{background:#d34d2c}.metric:nth-child(4)::before{background:#729778}
.metric strong{font-size:1.25rem;color:var(--ink)}
.filters{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:17px}
input,select,textarea{background:#fffdf9;border:1px solid #ded4c7;border-radius:7px;padding:8px 10px;color:var(--ink);min-width:0}
input::placeholder,textarea::placeholder{color:#82786b}
.filters input{width:min(310px,100%);font-size:.85rem}.filters select{font-size:.8rem;max-width:100%}
.board{display:grid;grid-template-columns:repeat(4,minmax(216px,1fr));gap:12px;overflow-x:auto;padding-bottom:10px}
.column{border:1px solid #e9ded2;border-radius:12px;padding:10px;background:#f5eee5;min-height:250px}
.column.drag-over{outline:2px solid var(--orange);outline-offset:-2px;background:#f7e9dc}
.column-header{display:flex;align-items:center;gap:8px;padding:4px 2px 12px;font-size:.82rem;font-weight:740}
.column-header .count{margin-left:auto;border-radius:10px;background:#e6dccc;padding:2px 7px;font-size:.7rem}
.status-dot{width:8px;height:8px;border-radius:100%;background:#948678}
.status-doing .status-dot{background:#c74d25}.status-review .status-dot{background:#a57935}.status-done .status-dot{background:#4c795d}
.task-list{display:grid;gap:8px}
.task-card{width:100%;text-align:left;display:block;border:1px solid #e4dbce;background:#fffcf8;border-radius:10px;padding:10px;box-shadow:0 2px 3px #48301d08;cursor:grab}
.task-card:hover{border-color:#c9a98c;background:#fff}
.task-meta,.task-foot{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:.68rem;color:#6b6154}
.task-card h3{font-size:.88rem;line-height:1.36;letter-spacing:-.01em;margin:9px 0 11px;overflow-wrap:anywhere}
.task-foot>span:first-child{overflow-wrap:anywhere}
.task-foot .avatar{width:24px;height:24px;font-size:.59rem}
.priority{padding:2px 5px;border-radius:4px;background:#f1e9de}
.priority.high{color:#a33c1c;background:#fae5d8}
.task-blocked{color:#963d23;background:#f9e4d7;border-radius:5px;padding:2px 5px;font-size:.7rem;font-weight:650}
.task-card>.task-blocked{display:inline-block;margin-bottom:7px}
.dependency-form{border:1px solid var(--line);border-radius:8px;padding:9px 10px;font-size:.82rem}
.dependency-form summary{font-weight:650;cursor:pointer}
.dependency-form p{margin:7px 0;line-height:1.4}
.dependency-form .roster{max-height:180px;overflow:auto;margin-top:8px}
.gantt-summary{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:14px;font-size:.8rem}
.gantt-summary>span{background:#fffdf9;border:1px solid var(--line);padding:7px 10px;border-radius:7px}
.gantt-summary>span.task-blocked{background:#f9e4d7}
.gantt-summary>label{display:flex;align-items:center;margin-left:auto}
.gantt-scroll{overflow:auto;max-height:calc(100dvh - 218px);min-height:230px;border:1px solid #e9ded2;border-radius:12px;background:#fffdf9}
.gantt-chart{--task-width:285px;min-width:calc(var(--task-width) + var(--timeline));font-size:.79rem}
.gantt-header,.gantt-row{display:grid;grid-template-columns:var(--task-width) var(--timeline)}
.gantt-header{position:sticky;top:0;z-index:6;background:#f6e9da;font-weight:700}
.gantt-weeks{display:grid;grid-auto-flow:column;grid-auto-columns:var(--week);align-items:center;height:39px}
.gantt-weeks>span{padding:0 9px;border-right:1px solid #e5d7c7}
.gantt-header .gantt-label{display:flex;align-items:center;padding-left:12px;background:#f6e9da}
.gantt-rows{position:relative}
.gantt-row{height:62px;border-bottom:1px solid #eee5da}
.gantt-row:nth-of-type(even){background:#fdf8f0}
.gantt-label{position:sticky;left:0;z-index:5;background:#fffdf9;border-right:1px solid #e9ded2;min-width:0}
.gantt-row:nth-of-type(even) .gantt-label{background:#fdf8f0}
.gantt-label button{width:100%;height:100%;text-align:left;display:grid;align-content:center;gap:3px;min-width:0;padding:7px 10px;border:0;background:none}
.gantt-label button:hover{background:#f4e5d6}
.gantt-label button>span{font-weight:650;line-height:1.18;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.gantt-label small{font-size:.66rem;justify-self:start}
.gantt-track{position:relative;background:repeating-linear-gradient(to right,#e9e0d4 0 1px,transparent 1px var(--week))}
.gantt-links{position:absolute;left:var(--task-width);top:0;pointer-events:none;z-index:1;overflow:visible}
.gantt-bar{position:absolute;top:13px;z-index:2;height:22px;background:#e4bb91;border:0;border-radius:6px;padding:1px 6px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:clip;font-size:.64rem;color:#533820;font-weight:700}
.gantt-bar:hover{filter:saturate(1.55) brightness(.95)}
.gantt-blocked{background:#f5cdbc;color:#77351f}
.gantt-doing{background:#eaa27a;color:#542e1d}
.gantt-review{background:#edd4a4;color:#664b24}
.gantt-done{background:#c7dfcc;color:#2f5540}
.gantt-no-date{position:absolute;top:15px;left:8px;color:var(--dim);font-size:.72rem}
.empty{padding:13px 2px;color:#7c7062;font-size:.82rem}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(265px,1fr));gap:13px}
.info-card{background:#fffdf9;border:1px solid var(--line);border-radius:12px;padding:17px;min-width:0}
.info-card h2{font-size:1rem;line-height:1.3}
.info-card p{font-size:.83rem;color:var(--dim);line-height:1.5;margin-top:7px}
.info-card .button{margin-top:13px}
.progress{height:8px;border-radius:10px;background:#eee6da;margin-top:15px;overflow:hidden}
.progress div{height:100%;background:var(--green)}
.person-head{display:flex;align-items:center;gap:10px}
.person-head .avatar{width:36px;height:36px}
.status-text{display:inline-block;color:var(--green);font-size:.76rem;font-weight:650;margin-top:11px}
.status-text.pending{color:#805936}
.login{display:grid;min-height:100dvh;place-items:center;background:linear-gradient(115deg,#35251d95,#2c281db8),url("/coffee-corner.webp") center/cover,#4a3326;padding:16px}
.login-card{width:min(100%,425px);background:#fffaf3;border-radius:18px;padding:35px;box-shadow:0 18px 90px #0005}
.login-card h1{font-size:2rem;letter-spacing:-.05em;margin-top:23px}
.login-card>p{font-size:.9rem;margin:8px 0 19px;color:var(--dim);line-height:1.45}
.login form{display:grid;gap:13px}
.consent-card{width:min(100%,505px)}
.consent-card form>p,.connection-info{color:var(--dim);font-size:.84rem;line-height:1.48}
.connection-list{display:grid;gap:8px;margin-top:12px}
.connection-item{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:8px}
.connection-item small{display:block;margin-top:3px}
label{display:grid;gap:6px;font-weight:600;font-size:.83rem;color:#504539}
.error{font-size:.84rem;color:#9a2e24;line-height:1.45}
dialog{width:min(640px,calc(100% - 24px));max-height:90dvh;border:1px solid #dbcebe;border-radius:15px;background:#fffaf4;padding:22px;color:var(--ink);box-shadow:0 16px 70px #1e1a1455}
dialog::backdrop{background:#2a211aa0}
.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:9px;margin-bottom:15px}
.dialog-head h2{font-size:1.3rem;line-height:1.25}
.dialog-head small{display:block;margin-bottom:5px}
.icon-btn{border-radius:6px;padding:3px 8px;font-size:1.3rem;line-height:1.2}
.icon-btn:hover{background:#eee4d7}
.dialog-form{display:grid;gap:12px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}
.form-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:7px}
textarea{resize:vertical;line-height:1.45}
.detail-section{border-top:1px solid var(--line);margin-top:17px;padding-top:13px}
.detail-section h3{font-size:.92rem}
.comment{font-size:.83rem;line-height:1.5;padding:9px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.comment p{white-space:pre-wrap}
.comment-form{margin-top:10px;display:grid;gap:7px}
.invite-url{width:100%;margin-top:10px}
.roster{display:grid;gap:6px;border:1px solid var(--line);border-radius:8px;padding:9px 12px}
.roster legend{font-size:.81rem;font-weight:650;color:var(--dim)}
.roster label{display:flex;align-items:center;gap:6px}
#toast{position:fixed;bottom:17px;right:17px;max-width:min(420px,90vw);border-radius:9px;padding:11px 15px;color:white;background:#242c23;z-index:100;font-size:.83rem;box-shadow:0 5px 22px #0003}
.canvas-view{height:calc(100dvh - 67px);min-height:460px;display:flex;flex-direction:column}
.canvas-head{padding:12px 18px;background:#fbf0e4;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line)}
.canvas-head h1{font-size:1.12rem;letter-spacing:-.02em}
.canvas-head p{font-size:.75rem;color:var(--dim);margin-top:2px}
.canvas-actions,.zoom-tools{display:flex;gap:5px;align-items:center}
.canvas-actions{flex-wrap:wrap}
.canvas-shell{flex:1;position:relative;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 202px}
.canvas-shell.layers-off{grid-template-columns:minmax(0,1fr)}
.canvas-viewport{position:relative;min-width:0;overflow:hidden;background-color:#fbf7ef;background-image:radial-gradient(#decebc 1px,transparent 1px);background-size:18px 18px;touch-action:none;cursor:grab}
.canvas-viewport.hand{cursor:grab}.canvas-viewport.grabbing{cursor:grabbing}.canvas-viewport.connect{cursor:crosshair}
.world{position:absolute;left:0;top:0;transform-origin:0 0}
.links{position:absolute;inset:0;pointer-events:none}
.canvas-node{position:absolute;border:1px solid #e0d3c3;border-radius:11px;background:#fffdf8;display:flex;flex-direction:column;overflow:hidden;user-select:none;box-shadow:0 6px 17px #4b342218;cursor:move}
.canvas-node.selected{outline:2px solid var(--orange);outline-offset:2px}
.canvas-node.frame{z-index:0;border-style:dashed;border-width:2px;box-shadow:none;background:#fffdf788}
.canvas-node.note,.canvas-node.image{z-index:2}
.canvas-node.note .node-body{background:var(--note-bg,#faecde)}
.canvas-node.tone-green{--note-bg:#e8f0e7}.canvas-node.tone-sand{--note-bg:#f4ebdb}.canvas-node.tone-purple{--note-bg:#f0e8f2}.canvas-node.tone-blue{--note-bg:#e7f0f4}
.node-head{color:#2c251d;padding:10px 12px;border-bottom:1px solid #e5dacf;font-size:14px;font-weight:750;line-height:1.25;overflow-wrap:anywhere}
.frame .node-head{background:#efe3d4;font-size:16px}.frame.tone-green .node-head{background:#e1ebe2}
.node-body{padding:10px 12px;color:#52463a;font-size:13px;line-height:1.42;min-height:0;overflow:hidden;overflow-wrap:anywhere;white-space:pre-wrap;flex:1}
.node-photo{min-height:0;flex:1;width:100%;object-fit:contain;background:white;pointer-events:none;padding:5px}
.image .node-body{flex:0 1 auto;min-height:36px;max-height:59px}
.task-chip{align-self:flex-start;font-weight:700;font-size:11px;color:#913619;background:#f8e4d6;border:none;border-radius:5px;margin:1px 11px 7px;padding:4px 6px;cursor:pointer}
.resize{position:absolute;bottom:0;right:0;background:linear-gradient(135deg,transparent 48%,#ae704d 50%,#ae704d 58%,transparent 60%,transparent 68%,#ae704d 70%,#ae704d 77%,transparent 79%);border:0;width:19px;height:19px;cursor:nwse-resize}
.canvas-tools{position:absolute;z-index:4;bottom:12px;left:12px;display:flex;align-items:center;gap:5px;flex-wrap:wrap;background:#fffdf9;border:1px solid var(--line);border-radius:9px;padding:5px;box-shadow:0 4px 15px #47321f10}
.tool{font-weight:650;font-size:.75rem;padding:6px 8px;border-radius:5px}
.tool:hover,.tool[aria-pressed=true]{background:#f5e1d3;color:#9f3b1d}
.zoom-read{min-width:43px;text-align:center;font-size:.73rem;color:var(--dim)}
.minimap{position:absolute;right:12px;bottom:12px;z-index:3;border:1px solid #dacebf;background:#fffaf4;border-radius:7px;cursor:crosshair}
.layers{background:#fffdf8;border-left:1px solid var(--line);padding:12px;overflow:auto}
.layers h2{font-size:.82rem;margin-bottom:10px}
.layer-row{display:flex;align-items:center;width:100%;text-align:left;background:none;border:0;border-radius:5px;font-size:.73rem;gap:7px;padding:7px 5px;overflow-wrap:anywhere}
.layer-row:hover,.layer-row.active{background:#f4e6d9;color:#96381b}
.layer-symbol{font-size:.95rem;flex:none}
.canvas-help{color:var(--dim);font-size:.7rem;line-height:1.4;margin-top:10px}
@media(max-width:1150px){.board{grid-template-columns:repeat(4,minmax(200px,1fr))}.page{padding-inline:19px}.topbar{padding-inline:19px}.canvas-shell{grid-template-columns:minmax(0,1fr) 159px}}
@media(max-width:760px){
  .workspace{display:block}.sidebar{position:static;height:auto;padding:10px 12px 8px;display:grid;grid-template-columns:1fr auto;gap:4px;align-items:center;border:0;border-bottom:1px solid var(--line)}
  .brand{padding:2px}.brand img{width:109px}.project-label{grid-column:1/-1;display:flex;align-items:center;padding:3px 0;margin:0;border:0}.project-label select{width:auto;max-width:53%;padding:5px 8px;font-size:.75rem}.project-label label{white-space:nowrap}.sidebar-user{grid-column:2;grid-row:1;border:0;padding:0}.sidebar-user strong{font-size:.72rem}.sidebar-user small{display:none}.sidebar-user .avatar{width:24px;height:24px}
  .nav{grid-column:1/-1;display:flex;gap:4px}.nav button{font-size:.76rem;justify-content:center;padding:8px 4px;gap:4px}.nav-icon{width:21px;height:21px}.nav-icon img{width:14px;height:14px}
  .topbar{height:52px;padding-inline:12px}.breadcrumb{font-size:.72rem}.breadcrumb span{margin:0 2px}
  .top-actions .button{padding:7px;font-size:.7rem}.page{padding:20px 12px}.board{grid-template-columns:repeat(4,230px)}
  .canvas-view{height:calc(100dvh - 170px);min-height:420px}.canvas-head{padding:8px;align-items:flex-start}.canvas-head p{display:none}.canvas-head h1{font-size:.96rem}
  .canvas-actions .button{font-size:.7rem;padding:6px}.canvas-shell{grid-template-columns:minmax(0,1fr)}.canvas-shell.layers-on .layers{position:absolute;right:0;top:0;bottom:0;width:170px;z-index:5}
  .minimap{width:107px;height:67px;bottom:58px}.canvas-tools{bottom:6px;left:6px}.canvas-tools .tool{font-size:.69rem;padding:5px}.form-grid{grid-template-columns:1fr}
  .project-banner{min-height:142px;background-size:65% auto}.project-banner-content{padding:14px;background-image:linear-gradient(90deg,#f8eddf 0%,#f8eddf 46%,#f8eddf00 89%)}.project-banner .button{padding:7px;font-size:.72rem}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gantt-chart{--task-width:170px}.gantt-scroll{max-height:calc(100dvh - 275px)}.gantt-summary>label{margin-left:0}
}
