:root{--bg: #9e7b57;--bg-elev: #e3d9c8;--bg-card: #e9decc;--bg-tile: #e7db9d;--bg-tile-hover: #ede2ad;--border: #b49d79;--border-strong: #927652;--text: #35281d;--text-dim: #4b3a2b;--text-faint: #4f3d2c;--accent: #d17b29;--accent-2: #b2541a;--green: #6b9f47;--yellow: #d9aa1d;--red: #b95249;--orange: #d88739;--purple: #9270c6;--blue: #4b86c5;--gray: #8f7f6a;--shadow: 0 10px 18px rgba(44, 29, 14, .2);--shadow-sm: 0 4px 8px rgba(44, 29, 14, .16);--radius: 12px;--note-font: "Comic Sans MS", "Bradley Hand", "Segoe Print", "Chalkboard SE", "Marker Felt", cursive}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;height:100%;font-family:Plus Jakarta Sans,Avenir Next,IBM Plex Sans,Segoe UI,system-ui,sans-serif;background:radial-gradient(1100px 600px at 8% 0%,rgba(248,218,175,.14),transparent 62%),radial-gradient(900px 500px at 100% 100%,rgba(92,60,29,.16),transparent 65%),repeating-linear-gradient(14deg,rgba(107,67,33,.05),rgba(107,67,33,.05) 2px,transparent 2px,transparent 8px),linear-gradient(135deg,#9f7b57,#8a6647);color:var(--text);font-size:clamp(14px,.5vw + 12px,16px);-webkit-text-size-adjust:100%;text-size-adjust:100%;overscroll-behavior:none}body{overflow:hidden}#root{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;height:var(--app-vh, 100dvh)}.app-route-root{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden}.hidden{display:none!important}input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{background:var(--bg-elev);color:var(--text);border:1px solid var(--border);border-radius:10px;font:inherit}input::placeholder,textarea::placeholder{color:var(--text-faint);opacity:.9}input:focus,select:focus,textarea:focus{outline:2px solid color-mix(in srgb,var(--accent) 45%,transparent);outline-offset:1px;border-color:var(--border-strong)}select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--text-faint) 50%),linear-gradient(135deg,var(--text-faint) 50%,transparent 50%);background-position:calc(100% - 14px) calc(50% - 2px),calc(100% - 9px) calc(50% - 2px);background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:28px}img,svg,video,canvas,iframe{max-width:100%;height:auto}.loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;display:flex;align-items:center;justify-content:center;background:#e8e2d8;padding:clamp(12px,3vw,48px)}.loading-pencil-wrap{display:grid;place-items:center;gap:10px}.loading-pencil-text{font-weight:700;color:var(--text)}.doodle-loader{--dl-ink: #2d2826;--dl-paper: #f4efe3;--dl-card: #fdfaf3;--dl-purple: #7b5ea7;--dl-orange: #c85a28;--dl-green: #3d7a52;--dl-muted: #a89880;--dl-grid: #c4baa8;--dl-track: #e5ddd0;font-family:Segoe Script,Comic Sans MS,Bradley Hand,cursive;position:relative;display:inline-flex;align-items:center;justify-content:center;padding:2.2em 2.6em;background-color:var(--dl-paper);background-image:radial-gradient(circle,var(--dl-grid) 1.5px,transparent 1.5px);background-size:1.75em 1.75em;border-radius:.75em;font-size:9px;transform:scale(2.1);transform-origin:center}.doodle-loader.is-compact{transform:scale(1.2)}.dl-doodle{position:absolute;pointer-events:none}.dl-d1{top:.7em;left:.9em;width:3em;height:3em;animation:dl-float-a 3.5s ease-in-out infinite}.dl-d2{top:.5em;right:1.1em;width:2.4em;height:2.4em;animation:dl-float-b 3s ease-in-out infinite .4s}.dl-d3{bottom:.9em;left:1.1em;width:2.1em;height:3.2em;animation:dl-float-a 4s ease-in-out infinite .8s}.dl-d4{bottom:.7em;right:1em;width:2.75em;height:2.5em;animation:dl-float-b 3.2s ease-in-out infinite 1s}.dl-d5{top:3em;left:.6em;width:3.4em;height:3.4em;animation:dl-float-a 4.2s ease-in-out infinite .6s}.dl-d6{bottom:2.4em;right:.4em;width:5.6em;height:1.5em;animation:dl-float-b 3.8s ease-in-out infinite .2s}@keyframes dl-float-a{0%,to{transform:translateY(0) rotate(-8deg)}50%{transform:translateY(-.8em) rotate(6deg)}}@keyframes dl-float-b{0%,to{transform:translateY(0) rotate(6deg)}50%{transform:translateY(-.7em) rotate(-8deg)}}.dl-card{position:relative;background:var(--dl-card);padding:2em 2.7em 1.6em;border:.13em solid var(--dl-ink);border-radius:.2em .5em .3em .65em/.45em .2em .6em .3em;box-shadow:.4em .4em 0 0 var(--dl-ink)}.dl-card:before{content:"";position:absolute;top:.6em;right:.6em;bottom:.6em;left:.6em;border:.09em dashed var(--dl-grid);border-radius:.15em;pointer-events:none}.dl-tape{position:absolute;top:-.95em;left:50%;transform:translate(-50%) rotate(-1.8deg);width:5.5em;height:1.6em;background:#a88ae061;z-index:3}.dl-pencil{position:absolute;top:-2.1em;right:2em;width:1.9em;height:2.3em;transform-origin:bottom center;animation:dl-write 2.4s ease-in-out infinite;z-index:4}@keyframes dl-write{0%,to{transform:rotate(-18deg) translateY(0)}50%{transform:rotate(-4deg) translateY(.5em)}}.dl-row{display:flex;align-items:center;gap:.35em}.dl-prefix,.dl-word{font-size:2em}.dl-prefix{font-weight:600;color:var(--dl-ink)}.dl-words{height:2em;overflow:hidden;position:relative}.dl-word{display:block;height:100%;line-height:1;font-weight:700;color:var(--dl-purple);padding-left:.22em;animation:dl-cycle 4s infinite}.dl-sub{font-size:.95em;color:var(--dl-muted);text-align:center;margin-top:.45em;animation:dl-blink 2.2s ease-in-out infinite}@keyframes dl-blink{0%,to{opacity:1}50%{opacity:.3}}.dl-track{height:.58em;background:var(--dl-track);border:.09em solid var(--dl-ink);border-radius:1em;overflow:hidden;margin-top:.9em}.dl-dots{display:flex;justify-content:center;gap:.75em;margin-top:.9em}.dl-dot{display:inline-block;width:.65em;height:.65em;border-radius:50%;background:var(--dl-ink);animation:dl-bounce 1.4s ease-in-out infinite}@keyframes dl-bounce{0%,60%,to{transform:translateY(0);background:var(--dl-ink)}30%{transform:translateY(-1em);background:var(--dl-purple)}}.pencil{display:block;width:10em;height:10em}.pencil__body1,.pencil__body2,.pencil__body3,.pencil__eraser,.pencil__eraser-skew,.pencil__point,.pencil__rotate,.pencil__stroke{animation-duration:3s;animation-timing-function:linear;animation-iteration-count:infinite}.pencil__body1,.pencil__body2,.pencil__body3{transform:rotate(-90deg)}.pencil__body1{animation-name:pencilBody1}.pencil__body2{animation-name:pencilBody2}.pencil__body3{animation-name:pencilBody3}.pencil__eraser{animation-name:pencilEraser;transform:rotate(-90deg) translate(49px)}.pencil__eraser-skew{animation-name:pencilEraserSkew;animation-timing-function:ease-in-out}.pencil__point{animation-name:pencilPoint;transform:rotate(-90deg) translate(49px,-30px)}.pencil__rotate{animation-name:pencilRotate}.pencil__stroke{animation-name:pencilStroke;transform:translate(100px,100px) rotate(-113deg)}@keyframes pencilBody1{0%,to{stroke-dashoffset:351.86;transform:rotate(-90deg)}50%{stroke-dashoffset:150.8;transform:rotate(-225deg)}}@keyframes pencilBody2{0%,to{stroke-dashoffset:406.84;transform:rotate(-90deg)}50%{stroke-dashoffset:174.36;transform:rotate(-225deg)}}@keyframes pencilBody3{0%,to{stroke-dashoffset:296.88;transform:rotate(-90deg)}50%{stroke-dashoffset:127.23;transform:rotate(-225deg)}}@keyframes pencilEraser{0%,to{transform:rotate(-45deg) translate(49px)}50%{transform:rotate(0) translate(49px)}}@keyframes pencilEraserSkew{0%,32.5%,67.5%,to{transform:skew(0)}35%,65%{transform:skew(-4deg)}37.5%,62.5%{transform:skew(8deg)}40%,45%,50%,55%,60%{transform:skew(-15deg)}42.5%,47.5%,52.5%,57.5%{transform:skew(15deg)}}@keyframes pencilPoint{0%,to{transform:rotate(-90deg) translate(49px,-30px)}50%{transform:rotate(-225deg) translate(49px,-30px)}}@keyframes pencilRotate{0%{transform:translate(100px,100px) rotate(0)}to{transform:translate(100px,100px) rotate(720deg)}}@keyframes pencilStroke{0%{stroke-dashoffset:439.82;transform:translate(100px,100px) rotate(-113deg)}50%{stroke-dashoffset:164.93;transform:translate(100px,100px) rotate(-113deg)}75%,to{stroke-dashoffset:439.82;transform:translate(100px,100px) rotate(112deg)}}.doodle-loader{--dl-ink: #2d2826;--dl-paper: #f4efe3;--dl-card: #fdfaf3;--dl-purple: #7b5ea7;--dl-muted: #a89880;--dl-grid: #c4baa8;--dl-track: #e5ddd0;position:relative;display:inline-flex;align-items:center;justify-content:center;padding:clamp(1.2em,2.8vw,2.8em) clamp(1.4em,3.2vw,3.2em);background-color:var(--dl-paper);background-image:radial-gradient(circle,var(--dl-grid) 1.5px,transparent 1.5px);background-size:1.75em 1.75em;border-radius:.75em;font-family:Segoe Script,Comic Sans MS,Bradley Hand,cursive}.dl-doodle{position:absolute;border:2px solid #7b5ea7;border-radius:999px;opacity:.55}.dl-d1{top:.6em;left:.7em;width:1.8em;height:1.8em;animation:dl-float-a 3.5s ease-in-out infinite}.dl-d2{top:.5em;right:.9em;width:1.5em;height:1.5em;animation:dl-float-b 3s ease-in-out infinite .4s}.dl-d3{bottom:.7em;left:.9em;width:1.2em;height:2em;animation:dl-float-a 4s ease-in-out infinite .8s}.dl-d4{bottom:.5em;right:.8em;width:1.7em;height:1.4em;animation:dl-float-b 3.2s ease-in-out infinite 1s}.dl-d5{top:2.2em;left:.5em;width:2.2em;height:2.2em;animation:dl-float-a 4.2s ease-in-out infinite .6s}.dl-d6{bottom:1.9em;right:.3em;width:3.6em;height:1em;animation:dl-float-b 3.8s ease-in-out infinite .2s}@keyframes dl-float-a{0%,to{transform:translateY(0) rotate(-8deg)}50%{transform:translateY(-.5em) rotate(6deg)}}@keyframes dl-float-b{0%,to{transform:translateY(0) rotate(6deg)}50%{transform:translateY(-.5em) rotate(-8deg)}}.dl-card{position:relative;background:var(--dl-card);padding:1.45em 1.9em 1.35em;border:.13em solid var(--dl-ink);border-radius:.2em .5em .3em .65em/.45em .2em .6em .3em;box-shadow:.32em .32em 0 0 var(--dl-ink)}.dl-card:before{content:"";position:absolute;top:.45em;right:.45em;bottom:.45em;left:.45em;border:.09em dashed var(--dl-grid);border-radius:.15em;pointer-events:none}.dl-tape{position:absolute;top:-.75em;left:50%;transform:translate(-50%) rotate(-1.8deg);width:4.2em;height:1.1em;background:#a88ae061}.dl-row{display:flex;align-items:center;gap:.28em}.dl-prefix{font-size:clamp(1rem,1.6vw,1.5rem);font-weight:700;color:var(--dl-ink)}.dl-words{height:1.5em;overflow:hidden;position:relative}.dl-word{display:block;height:100%;font-size:clamp(1rem,1.6vw,1.5rem);line-height:1;font-weight:700;color:var(--dl-purple);padding-left:.16em;animation:dl-cycle 4s infinite}@keyframes dl-cycle{10%{transform:translateY(-102%)}25%{transform:translateY(-100%)}35%{transform:translateY(-202%)}50%{transform:translateY(-200%)}60%{transform:translateY(-302%)}75%{transform:translateY(-300%)}85%{transform:translateY(-402%)}to{transform:translateY(-400%)}}.dl-sub{font-size:.85em;color:var(--dl-muted);text-align:center;margin-top:.5em;animation:dl-blink 2.2s ease-in-out infinite}@keyframes dl-blink{0%,to{opacity:1}50%{opacity:.35}}.dl-track{height:.5em;background:var(--dl-track);border:.09em solid var(--dl-ink);border-radius:1em;overflow:hidden;margin-top:.8em}.dl-fill{height:100%;width:30%;background:var(--dl-purple);border-radius:1em;animation:dl-sweep 2.6s ease-in-out infinite}@keyframes dl-sweep{0%{width:15%;transform:translate(-120%)}45%,55%{width:55%}to{width:15%;transform:translate(750%)}}.dl-dots{display:flex;justify-content:center;gap:.5em;margin-top:.75em}.dl-dot{display:inline-block;width:.48em;height:.48em;border-radius:50%;background:var(--dl-ink);animation:dl-bounce 1.4s ease-in-out infinite}.dl-dot:nth-child(2){animation-delay:.16s}.dl-dot:nth-child(3){animation-delay:.32s}@keyframes dl-bounce{0%,60%,to{transform:translateY(0);background:var(--dl-ink)}30%{transform:translateY(-.6em);background:var(--dl-purple)}}:root{--pad-x: clamp(12px, 2.2vw, 28px);--pad-y: clamp(10px, 1.4vw, 18px);--gap-sm: clamp(6px, .6vw, 10px);--gap-md: clamp(8px, 1vw, 16px);--sidebar-w: clamp(180px, 18vw, 260px);--kanban-col: clamp(220px, 18vw, 300px);--grid-tile-min: clamp(220px, 22vw, 300px);--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--app-vw: 100vw;--app-vh: 100dvh;--app-min: 100vmin;--app-max: 100vmax}.login-screen{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:radial-gradient(circle at 16% 22%,rgba(255,222,154,.24),transparent 52%),radial-gradient(circle at 84% 72%,rgba(126,82,40,.22),transparent 50%),linear-gradient(135deg,#b68a5a,#a6794d);z-index:50}.login-card{width:min(420px,92vw);background:radial-gradient(circle at 14% 18%,rgba(255,255,255,.32) .7px,transparent 1.4px),radial-gradient(circle at 68% 46%,rgba(90,62,32,.11) .8px,transparent 1.5px),#fff5d4;border:1px solid #bda37a;border-radius:16px;padding:28px;box-shadow:0 14px 26px #2c1d0e42,inset 0 1px #ffffff59;transform:rotate(-.5deg);position:relative}.login-card:before{content:"";position:absolute;top:-10px;left:50%;transform:translate(-50%) rotate(-2deg);width:96px;height:18px;border-radius:2px;background:#e6d1aaeb;box-shadow:0 2px 4px #261a0c33;pointer-events:none}.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:18px}.login-card h2{margin:0 0 4px;font-size:22px}.login-help{color:var(--text-faint);margin:0 0 18px;font-size:13px}.login-form{display:flex;flex-direction:column;gap:8px}.login-form label{font-size:11px;color:var(--text-faint);text-transform:uppercase;letter-spacing:1px;font-weight:600;margin-top:6px}.login-form .primary-btn{margin-top:14px;padding:11px}.login-form .modal-input{background:#fff6e0f5;border-color:#bfa67e;box-shadow:inset 0 1px #ffffff59}.login-form .modal-input:focus{border-color:#b47534;box-shadow:0 0 0 2px #b4753429,inset 0 1px #ffffff59}.login-form .primary-btn{border:1px solid #a95f22;box-shadow:0 3px #4e2c1047}.login-error{margin-top:8px;background:#ff6b6b1f;border:1px solid rgba(255,107,107,.35);color:var(--red);padding:8px 10px;border-radius:6px;font-size:12px}.login-success{margin-top:8px;background:#48bb781f;border:1px solid rgba(72,187,120,.35);color:var(--green, #2f855a);padding:8px 10px;border-radius:6px;font-size:12px}.login-footer{margin-top:18px;padding-top:14px;border-top:1px solid var(--border);font-size:12px;color:var(--text-faint);text-align:center}.login-footer code{background:var(--bg-tile);padding:2px 6px;border-radius:4px;color:var(--text)}.doodle-wrapper{--ink: #323232;--paper-front: #fff9e6;--bg-color: #ffffff;--primary-btn: #ff6b6b;--primary-btn-hover: #ff5252;--input-focus: #2d8cf0;--card-width: min(320px, 92vw);--card-height: auto;--input-width: min(250px, 76vw);--input-height: 40px;--btn-width: 130px;--btn-height: 40px;--border-width: 2px;--shadow-offset: 4px;--sketch-radius-1: 8px 24px 8px 24px / 24px 8px 24px 8px;--sketch-radius-2: 24px 8px 24px 8px / 8px 24px 8px 24px;--sketch-radius-btn: 16px 5px 16px 5px / 5px 16px 5px 16px;font-family:Comic Sans MS,Chalkboard SE,Marker Felt,Gochi Hand,sans-serif;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}.doodle-card-scene{position:relative;width:var(--card-width);height:var(--card-height);z-index:2}.doodle-svg{position:absolute;z-index:-1;pointer-events:none;color:#7b5ea7;font-size:28px}.doodle-star{top:-20px;left:-24px;animation:float-star 4s ease-in-out infinite}.doodle-sparkle{bottom:-16px;right:-18px;animation:float-sparkle 4s ease-in-out infinite 1s}.doodle-swirl{top:30px;right:-24px;animation:float-swirl 4s ease-in-out infinite 2s}@keyframes float-star{0%,to{transform:translateY(0) rotate(-15deg)}50%{transform:translateY(-8px) rotate(-10deg)}}@keyframes float-sparkle{0%,to{transform:translateY(0) rotate(10deg)}50%{transform:translateY(-8px) rotate(15deg)}}@keyframes float-swirl{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-8px) rotate(5deg)}}.doodle-card-front{width:100%;min-height:350px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;box-sizing:border-box;border:var(--border-width) solid var(--ink);border-radius:var(--sketch-radius-1);box-shadow:var(--shadow-offset) var(--shadow-offset) 0 var(--ink);background-color:var(--paper-front);background-image:repeating-linear-gradient(transparent,transparent 28px,rgba(0,0,0,.06) 28px,rgba(0,0,0,.06) 30px);background-position:0 15px}.doodle-title{font-size:25px;font-weight:900;color:var(--ink);margin:8px 0 18px;text-transform:uppercase;letter-spacing:1px;transform:rotate(-3deg)}.doodle-form{display:flex;flex-direction:column;gap:14px;width:100%;align-items:center}.doodle-input{width:var(--input-width);height:var(--input-height);padding:5px 15px;box-sizing:border-box;font-family:inherit;font-size:15px;font-weight:600;color:var(--ink);background-color:var(--bg-color);border:var(--border-width) solid var(--ink);border-radius:var(--sketch-radius-1);box-shadow:3px 3px 0 var(--ink);outline:none;transition:all .2s ease}.doodle-input:hover{transform:translateY(-2px);box-shadow:4px 4px 0 var(--ink)}.doodle-input:focus,.doodle-input:focus-visible{border:var(--border-width) solid var(--input-focus);border-radius:var(--sketch-radius-2);background-color:#fffdf5;box-shadow:4px 4px 0 var(--ink)}.doodle-btn{margin:10px 0 4px;width:var(--btn-width);height:var(--btn-height);font-family:inherit;font-size:17px;font-weight:900;letter-spacing:1px;color:var(--ink);background-color:var(--primary-btn);border:var(--border-width) solid var(--ink);border-radius:var(--sketch-radius-btn);box-shadow:4px 4px 0 var(--ink);cursor:pointer;transition:all .15s ease;transform:rotate(-1deg)}.doodle-btn:hover{background-color:var(--primary-btn-hover);transform:translateY(-2px) rotate(-2deg);box-shadow:5px 5px 0 var(--ink)}.doodle-btn:active{transform:translate(3px,3px) rotate(0);box-shadow:0 0 0 var(--ink)}.app-shell{display:grid;grid-template-columns:var(--sidebar-w) 1fr;height:var(--app-vh, 100dvh);min-height:var(--app-vh, 100dvh);overflow:hidden;transition:grid-template-columns .2s ease;padding-top:var(--safe-top);padding-bottom:var(--safe-bottom);padding-left:var(--safe-left);padding-right:var(--safe-right)}.app-shell.sidebar-collapsed{grid-template-columns:0 1fr}.app-shell.sidebar-collapsed .sidebar{visibility:hidden;padding:0;border:0;overflow:hidden;min-width:0}body.role-member .admin-only,body.role-viewer .admin-only{display:none!important}body.role-viewer .tile{cursor:default!important}body.role-viewer .tile [contenteditable=true]{pointer-events:none}body.role-viewer .add-tile,body.role-viewer .add-group,body.role-viewer .group-actions,body.role-viewer .delete-btn,body.role-viewer .board-del,body.role-viewer #addGroupBtn,body.role-viewer #newProjectBtn,body.role-viewer .icon-btn[data-act=delete]{display:none!important}body.role-viewer .cu-role.viewer{background:#6e7686;color:#fff}.sidebar{background:radial-gradient(120% 100% at 8% 0%,rgba(255,250,220,.58),transparent 48%),var(--bg-elev);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:clamp(10px,1.4vw,18px) clamp(8px,1vw,14px);gap:clamp(10px,1.4vw,18px);min-height:0;min-width:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;box-shadow:inset -1px 0 #ffffff40;position:relative}.sidebar::-webkit-scrollbar{width:3px}.sidebar::-webkit-scrollbar-thumb{background:var(--border);border-radius:99px}.sidebar:before{content:"";position:absolute;top:0;bottom:0;right:10px;width:1px;background:#b99c798c}.sidebar:after{content:"";position:absolute;top:0;bottom:0;right:14px;width:1px;background:#fff9}.brand{display:flex;align-items:center;justify-content:center;margin:0 -2px 2px;padding:24px 6px 22px;background:radial-gradient(140% 120% at 50% 0%,rgba(255,255,255,.55),transparent 52%),linear-gradient(180deg,#f8f1e1,#f0e6cf);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 3px 10px #3a24101a,inset 0 1px #ffffffb3;position:relative;flex-shrink:0;transform-origin:top center;animation:brand-note-enter .75s cubic-bezier(.2,.9,.2,1) both,brand-note-sway 7s ease-in-out .75s infinite}.brand:before{content:"";position:absolute;top:-7px;left:50%;transform:translate(-50%) rotate(-2deg);width:72px;height:18px;border-radius:2px;background:#edd6afe0;box-shadow:0 2px 4px #3c2a1724;pointer-events:none;animation:brand-tape-flutter 3.8s ease-in-out infinite}.brand-logo{width:100%;height:auto;max-height:120px;object-fit:contain;display:block;position:relative;z-index:1;transform-origin:center center;animation:brand-logo-breathe 5.5s ease-in-out infinite}@keyframes brand-note-enter{0%{opacity:0;transform:rotate(-5deg) translateY(-14px) scale(.94)}to{opacity:1;transform:rotate(-.5deg) translateY(0) scale(1)}}@keyframes brand-note-sway{0%,to{transform:rotate(-.5deg) translateY(0)}50%{transform:rotate(.7deg) translateY(-3px)}}@keyframes brand-tape-flutter{0%,to{transform:translate(-50%) rotate(-2deg) translateY(0)}35%{transform:translate(calc(-50% - 1px)) rotate(-3.5deg) translateY(-1px)}70%{transform:translate(calc(-50% + 1px)) rotate(-.5deg) translateY(0)}}@keyframes brand-logo-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.025)}}@media (prefers-reduced-motion: reduce){.brand,.brand:before,.brand-logo{animation:none!important}}.brand-name{font-weight:700;letter-spacing:.2px}.brand-sub{font-size:11px;color:var(--text-faint)}.nav{display:flex;flex-direction:column;gap:4px;flex:1;padding-bottom:8px}.nav-section-title{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint);padding:6px 6px 2px;flex-shrink:0}.board-list{list-style:none;padding:0;margin:0}.board-add-btn{width:100%;justify-content:flex-start;margin:0 0 8px;font-weight:600;color:var(--accent);border:1px dashed var(--border);border-radius:10px;padding:8px 10px}.board-add-btn:hover{background:color-mix(in srgb,var(--accent) 8%,transparent 92%);border-color:var(--accent)}.board-list li{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;cursor:pointer;color:var(--text-dim);font-weight:500;position:relative}.board-list li:hover,.board-list li.active{background:var(--bg-card);color:var(--text)}.board-list li .dot{width:8px;height:8px;border-radius:50%;background:var(--accent);flex-shrink:0}.board-list li .board-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board-list li .board-del{opacity:0;font-size:14px;color:var(--text-faint);background:none;border:none;cursor:pointer}.board-list li:hover .board-del{opacity:1}.board-list li .board-del:hover{color:var(--red)}.ghost-btn{background:#f8f1e2;border:1px dashed var(--border-strong);color:var(--text-dim);padding:9px 12px;border-radius:8px;cursor:pointer;font-size:14px;font-family:inherit}.ghost-btn:hover{border-color:var(--accent);color:var(--text);background:#fff8e9}.ghost-btn.small{padding:6px 8px;font-size:12px}.sidebar-footer{display:flex;flex-direction:column;gap:10px;flex-shrink:0}.current-user{display:flex;align-items:center;gap:10px;padding:8px 10px;background:#fff6df;border:1px solid var(--border);border-radius:10px}.current-user .owner-chip{width:32px;height:32px;font-size:12px;cursor:default;border-color:var(--bg-card)}.current-user .cu-info{display:flex;flex-direction:column;min-width:0}.current-user .cu-name{font-weight:600;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.current-user .cu-role{font-size:11px;color:var(--text-faint);text-transform:uppercase;letter-spacing:.06em}.current-user .cu-role.admin{color:var(--accent)}.footer-actions{display:flex;flex-wrap:wrap;gap:6px}.main{display:flex;flex-direction:column;min-width:0;overflow:hidden;min-height:0}.topbar{display:flex;align-items:center;justify-content:space-between;padding:var(--pad-y) var(--pad-x) calc(var(--pad-y) - 4px);gap:var(--gap-md);border-bottom:1px solid rgba(116,84,54,.35);flex-wrap:wrap}.topbar-left{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0;flex:1 1 auto}.topbar-left #topbarMoreBtn{margin-left:2px}.topbar-left h1{margin:0;font-size:clamp(17px,1.3vw + 8px,24px);font-weight:700;line-height:1.25;outline:none;padding:2px 4px;border-radius:6px;display:inline;max-width:100%;overflow-wrap:anywhere;word-break:break-word}.topbar-left h1:focus{background:var(--bg-card)}.topbar-title-block{display:flex;flex-direction:column;gap:4px;min-width:0}.board-client-wrap{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-muted)}.board-client-label{flex-shrink:0}.board-client-field{max-width:min(240px,100%);padding:4px 8px;font-size:12px}.board-client-readonly{font-size:12px;color:var(--text-muted)}.meta{color:var(--text-faint);font-size:12px;margin-left:8px}.topbar-right{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.board-topbar{padding-top:clamp(6px,.8vw,10px);padding-bottom:clamp(4px,.6vw,8px);flex:0 0 auto}.board-stat-chip{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;border:1px solid var(--border);background:var(--bg-elev);font:inherit;cursor:pointer;color:var(--text);white-space:nowrap}.board-stat-chip:hover,.board-stat-chip.is-active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--bg-elev))}.board-stat-chip-pct{font-weight:800;font-size:14px}.board-stat-chip-meta{font-size:12px;color:var(--text-dim);font-weight:600}.overflow-menu-wrap{position:relative}.overflow-menu-trigger{white-space:nowrap}.overflow-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:120;min-width:220px;max-width:min(320px,92vw);background:#fff5df;border:1px solid #bda37a;border-radius:10px;box-shadow:0 10px 24px #2c1d0e38;padding:6px;display:flex;flex-direction:column;gap:2px}.overflow-menu-item{display:block;width:100%;text-align:left;padding:9px 12px;border:none;border-radius:8px;background:transparent;font:inherit;font-size:13px;font-weight:600;color:var(--text);cursor:pointer}.overflow-menu-item:hover{background:#d17b291f}.overflow-menu-item--danger{color:var(--red)}.overflow-menu-item--danger:hover{background:#b952491f}.overflow-menu-client{display:flex;flex-direction:column;gap:4px;padding:8px 10px 10px;border-bottom:1px solid var(--border);margin-bottom:4px}.overflow-menu-client-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint)}.board-stats-panel{flex:0 0 auto;padding-top:8px;padding-bottom:8px}.topbar-right .topbar-search{width:clamp(140px,18vw,220px);flex-shrink:1}.topbar-right input[type=search],.filter{background:#fff8e8;border:1px solid var(--border);color:var(--text);padding:9px 13px;border-radius:8px;font-size:14px;outline:none;font-family:inherit}.topbar-right input[type=search]{width:clamp(140px,18vw,240px);min-width:min(100%,140px)}.topbar-right input[type=search]:focus,.filter:focus{border-color:var(--accent)}.view-toggle{display:inline-flex;gap:2px;padding:3px;background:#f8f0de;border:1px solid var(--border);border-radius:8px}.view-toggle button{background:transparent;border:none;color:var(--text-dim);padding:7px 12px;border-radius:6px;cursor:pointer;font-size:13px;font-weight:600;font-family:inherit}.view-toggle button.active{background:var(--accent);color:#fff}.view-toggle button:not(.active):hover{color:var(--text)}.primary-btn{background:linear-gradient(135deg,#d28a3b,#bb6228);border:none;color:#fff;padding:10px 15px;border-radius:8px;font-weight:600;cursor:pointer;font-size:14px;box-shadow:0 4px 14px #673c1842;font-family:inherit}.primary-btn:hover{filter:brightness(1.1)}.danger-btn{background:var(--red);color:#fff;border:none;padding:10px 15px;border-radius:8px;cursor:pointer;font-weight:600;font-size:14px;font-family:inherit}.danger-btn:hover{filter:brightness(1.1)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(clamp(124px,14vw,180px),1fr));gap:var(--gap-md);padding:var(--pad-y) var(--pad-x)}.stats .progress-stat{grid-column:span 2;min-width:0}.budget-banner{margin:0 var(--pad-x) 14px;background:var(--bg-soft);border:1px solid var(--border);border-radius:10px;padding:12px 16px}.budget-banner.is-loss{border-color:#ff4d4d;box-shadow:0 0 0 1px #ff4d4d40 inset}.budget-banner-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px;font-size:13px}.budget-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:14px}.budget-summary-grid--5{grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}.budget-stat{display:flex;flex-direction:column;gap:4px;min-width:0}.budget-stat-label{color:var(--text-faint);font-size:11px;text-transform:uppercase;letter-spacing:.05em}.budget-stat-value{font-weight:700;font-size:16px;line-height:1.25}.budget-stat-value--sm{font-size:14px}.budget-stat-value--warn{color:#f5c451}.budget-stat-sub{color:var(--text-faint);font-weight:500;font-size:11px}.project-timeline-banner{margin:0 var(--pad-x) 12px;padding:10px 14px 12px;background:var(--bg-soft);border:1px solid var(--border);border-radius:10px;border-left-width:4px;border-left-color:var(--accent)}.project-timeline-banner.is-on-track{border-left-color:var(--green)}.project-timeline-banner.is-at-risk{border-left-color:#f5c451}.project-timeline-banner.is-behind{border-left-color:var(--red)}.project-timeline-banner.is-complete{border-left-color:var(--green)}.project-timeline-banner.is-complete-late{border-left-color:#e8923a}.project-timeline-banner.is-muted{border-left-color:var(--text-faint)}.project-timeline-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 12px;margin-bottom:8px}.project-timeline-status{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;flex-shrink:0}.project-timeline-status.is-on-track{color:var(--green)}.project-timeline-status.is-at-risk{color:#c99200}.project-timeline-status.is-behind{color:var(--red)}.project-timeline-status.is-complete{color:var(--green)}.project-timeline-status.is-complete-late{color:#e8923a}.project-timeline-status.is-muted{color:var(--text-faint)}.project-timeline-message{flex:1;min-width:min(100%,220px);font-size:13px;color:var(--text-dim);line-height:1.35}.project-timeline-edit{margin-left:auto;flex-shrink:0}.project-timeline-rail-wrap,.project-timeline-empty{display:flex;flex-direction:column;gap:4px}.project-timeline-rail{position:relative;height:14px;border-radius:999px;background:#7f7f7f1f;overflow:visible}.project-timeline-rail--empty{overflow:hidden}.project-timeline-progress{height:100%;border-radius:999px;background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 70%,white),var(--accent));transition:width .25s ease}.project-timeline-banner.is-on-track .project-timeline-progress,.project-timeline-banner.is-complete .project-timeline-progress{background:linear-gradient(90deg,color-mix(in srgb,var(--green) 70%,white),var(--green))}.project-timeline-banner.is-at-risk .project-timeline-progress{background:linear-gradient(90deg,#f5d76e,#f5c451)}.project-timeline-banner.is-behind .project-timeline-progress,.project-timeline-banner.is-complete-late .project-timeline-progress{background:linear-gradient(90deg,#ff8a8a,var(--red))}.project-timeline-marker{position:absolute;top:-3px;bottom:-3px;width:2px;transform:translate(-50%);pointer-events:none}.project-timeline-marker--today{background:var(--text);box-shadow:0 0 0 1px #ffffff80;z-index:2}.project-timeline-marker--today:before{content:"";position:absolute;top:-4px;left:-3px;width:8px;height:8px;border-radius:50%;background:var(--text)}.project-timeline-marker--projected{background:color-mix(in srgb,var(--accent) 80%,transparent);border-left:1px dashed color-mix(in srgb,var(--accent) 50%,transparent);z-index:1}.project-timeline-axis{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:var(--text-faint);font-variant-numeric:tabular-nums}.project-timeline-axis-mid{text-align:center;flex:1;min-width:0}.project-recent-updates{margin:0 var(--pad-x) 12px;padding:10px 14px 8px;background:var(--bg-soft);border:1px solid var(--border);border-radius:10px}.project-recent-updates-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.project-recent-updates-title{margin:0;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint)}.project-recent-updates-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;max-height:168px;overflow:auto}.project-recent-updates-item{margin:0}.project-recent-updates-btn{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:6px 8px;border:none;border-radius:6px;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.project-recent-updates-btn:hover{background:#7f7f7f14}.project-recent-updates-text{font-size:13px;line-height:1.35;color:var(--text-dim)}.project-recent-updates-text strong{color:var(--text);font-weight:700}.project-recent-updates-meta{font-size:11px;color:var(--text-faint)}.portal-share-url-hint{margin:8px 0 0;font-size:12px;color:var(--text-faint);line-height:1.45}.portal-timeline{margin:0;border-radius:16px}@media (max-width: 820px){.portal-hero--v2{grid-template-columns:1fr}.portal-hero-metrics{flex-direction:row;flex-wrap:wrap;justify-content:center}}.budget-loss-badge{display:inline-block;background:#ff4d4d;color:#0b0d12;font-size:10px;font-weight:800;padding:2px 7px;border-radius:4px;margin-left:6px;letter-spacing:.05em}.budget-allocation{margin-top:12px;padding-top:10px;border-top:1px solid var(--border);font-size:12px}.budget-allocation-title{color:var(--text-faint);text-transform:uppercase;letter-spacing:.05em;font-size:11px;margin-bottom:6px}.budget-allocation-list{display:flex;flex-wrap:wrap;gap:8px 18px}.budget-allocation-item{display:inline-flex;align-items:center;gap:6px}.budget-allocation-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.budget-assign-list{border:1px solid var(--border);border-radius:8px;padding:8px;max-height:280px;overflow-y:auto;background:var(--bg-soft)}.budget-assign-row{display:grid;grid-template-columns:auto 1fr auto 110px;gap:10px;align-items:center;padding:6px 4px;border-bottom:1px solid var(--border)}.budget-assign-row:last-child{border-bottom:none}.budget-assign-name{display:inline-flex;align-items:center;gap:8px;min-width:0}.budget-assign-rate{color:var(--text-faint);font-size:12px;white-space:nowrap}.budget-assign-hours{padding:6px 8px}.budget-plan-summary,.budget-expenses-table-wrap{background:var(--bg-soft);border:1px solid var(--border);border-radius:8px;padding:10px 12px}.budget-plan-summary{margin-top:8px;font-size:13px}.budget-plan-summary-body{line-height:1.7}.budget-expenses-table-wrap{overflow-x:auto;margin-bottom:14px}.budget-expenses-empty{color:var(--text-faint);text-align:center;padding:18px}.budget-expenses-member-note{margin:0 0 14px;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:var(--bg-soft);color:var(--text-faint);font-size:13px;line-height:1.45}.budget-form-section-title{margin:8px 0 6px;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-faint)}.budget-form-hint{color:var(--text-faint);font-weight:400;text-transform:none;letter-spacing:0}.budget-expense-form{display:grid;grid-template-columns:140px 1fr 160px 130px;gap:10px;align-items:end}.modal-card--wide{max-width:860px;width:min(96vw,860px)}.stat{background:#fff6df;border:1px solid var(--border);border-radius:var(--radius);padding:clamp(8px,1vw,14px) clamp(10px,1.2vw,16px);display:flex;flex-direction:column;gap:4px;min-width:0;box-shadow:0 1px #ffffff73 inset,0 4px 10px #3a241014;position:relative}.stat:before{content:"";position:absolute;top:-5px;left:14px;width:34px;height:10px;border-radius:2px;background:#e2cea7e6;transform:rotate(-3deg);pointer-events:none}.stat-label{font-size:clamp(11px,.65vw + 7px,13px);color:var(--text-faint);text-transform:uppercase;letter-spacing:.06em;line-height:1.25}.stat-value{font-size:clamp(16px,1.2vw + 8px,24px);font-weight:700}.stat-value.small{font-size:clamp(11px,.5vw + 8px,14px)}.progress-stat{gap:8px}.progress-wrap{background:var(--bg-tile);height:8px;border-radius:99px;overflow:hidden;margin-top:4px}.progress-bar{height:100%;background:linear-gradient(90deg,var(--green),var(--accent));width:0%;transition:width .3s ease}.board-area{padding:calc(var(--pad-y) - 4px) var(--pad-x) var(--pad-x);overflow:auto;flex:1;min-height:0}.board-area.view-grid{display:flex;flex-direction:column;gap:clamp(14px,1.6vw,24px)}.view-grid .group{display:flex;flex-direction:column;gap:var(--gap-md)}.view-grid .tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--grid-tile-min),1fr));gap:var(--gap-md)}.board-area.view-kanban{display:flex;gap:var(--gap-md);overflow-x:auto;overflow-y:hidden;align-items:stretch;flex:1 1 auto;min-height:0;padding-top:8px}.workspace-stack{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow:hidden;width:100%}.view-kanban .group{flex:0 0 var(--kanban-col);background:radial-gradient(140% 120% at 50% 0%,rgba(255,255,255,.45),transparent 52%),#f8f1e1;border:1px solid var(--border);border-radius:var(--radius);padding:clamp(8px,1vw,14px);display:flex;flex-direction:column;gap:var(--gap-md);height:100%;min-height:0;max-height:100%;position:relative}.view-kanban .group:before{content:"";position:absolute;top:-8px;left:50%;transform:translate(-50%) rotate(-2deg);width:64px;height:16px;border-radius:2px;background:#edd6afcc;box-shadow:0 2px 4px #3c2a171f}.view-kanban .group-header{flex:0 0 auto}.view-kanban .group-header{border-bottom:1px dashed rgba(132,102,68,.35);padding-bottom:8px}.view-kanban .tiles{display:flex;flex-direction:column;gap:10px;overflow-y:auto;flex:1 1 auto;min-height:0;padding-right:4px}.compact-kanban .tile{padding:9px 10px 9px 12px;gap:4px;border-color:color-mix(in srgb,var(--border) 70%,transparent);background:color-mix(in srgb,var(--bg-tile) 88%,transparent);box-shadow:none}.compact-kanban .tile-title{font-size:12.5px;line-height:1.2;font-weight:600;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.compact-kanban .tile:hover{transform:none;box-shadow:none;border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}.compact-kanban .tile-client,.compact-kanban .tile-meta{display:none}.compact-kanban .tile-bottom{padding-top:4px;border-top:none}.compact-kanban .tile-bottom-left{display:none}.compact-kanban .tile-bottom-right{gap:6px;width:100%;justify-content:flex-start}.compact-kanban .tile-actions{opacity:1;gap:0}.tile-compact-summary{font-size:10.5px;color:var(--text-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.tile-compact-blocked{font-size:10px;font-weight:700;color:var(--red);background:#ff6b6b1f;border:1px solid rgba(255,107,107,.35);border-radius:999px;padding:1px 6px}.compact-kanban .icon-btn{font-size:12px;padding:4px 5px}.compact-kanban .group{padding:8px;background:color-mix(in srgb,#ffffff 6%,var(--bg-card));border-color:color-mix(in srgb,#ffffff 16%,var(--border));border-radius:14px}.compact-kanban .group-header{padding:2px 2px 8px;border-bottom:1px solid color-mix(in srgb,#ffffff 12%,var(--border));margin-bottom:2px}.compact-kanban .group-title{font-size:14px}.compact-kanban .group-actions{display:none}.compact-kanban .group-color{width:3px;height:16px}.compact-kanban .tile[data-status="Not started"]{background:color-mix(in srgb,#f4d77e 30%,var(--bg-tile))}.compact-kanban .tile[data-status="Working on it"]{background:color-mix(in srgb,#7db6ff 28%,var(--bg-tile))}.compact-kanban .tile[data-status=Review],.compact-kanban .tile[data-status="Waiting for Review"]{background:color-mix(in srgb,#c7a0ff 24%,var(--bg-tile))}.compact-kanban .tile[data-status=Done]{background:color-mix(in srgb,#79d88f 24%,var(--bg-tile))}.tiles.drop-ready{border:1.5px dashed color-mix(in srgb,var(--accent) 70%,transparent);border-radius:10px;background:#2ec4b614}.done-stack{display:flex;flex-direction:column;gap:12px;flex:1 1 auto;min-height:120px;max-height:100%;overflow-x:hidden;overflow-y:auto;padding:6px 4px 10px;scrollbar-width:thin}.done-stack-item{flex:0 0 auto}.done-stack-item .tile{width:100%}.done-stack-empty{color:var(--text-faint);font-size:13px;text-align:center;padding:28px 12px;font-style:italic;border:1.5px dashed color-mix(in srgb,var(--border-strong) 65%,transparent);border-radius:10px;background:color-mix(in srgb,var(--bg-elev) 40%,transparent)}.view-kanban .done-lane .tiles,.compact-kanban .done-lane .tiles{overflow:hidden;display:flex;flex-direction:column;min-height:0}.empty-board{padding:40px;text-align:center;color:var(--text-faint);font-size:14px;border:1.5px dashed var(--border-strong);border-radius:var(--radius);margin:24px 0}.section-guide{border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:10px;background:var(--bg-soft);padding:12px 14px;margin-bottom:12px}.section-guide.tone-warn{border-left-color:#f5c451;background:linear-gradient(135deg,#f5c4511a,#f5c4510a)}.section-guide-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.section-guide-title{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);font-weight:700}.section-guide-close{opacity:.8}.section-guide-list{margin:8px 0 0;padding-left:18px;display:grid;gap:5px;color:var(--text-dim);font-size:12px}.section-guide-actions{margin-top:10px;display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.recent-activity{background:var(--bg-soft);border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-bottom:12px}.recent-activity-head{font-size:11px;font-weight:700;color:var(--text-faint);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.recent-activity-list{display:grid;gap:6px}.recent-activity-row{display:grid;grid-template-columns:70px 1fr auto;gap:10px;align-items:center;width:100%;text-align:left;border:1px solid transparent;border-radius:8px;padding:6px 8px;background:#ffffff03;color:var(--text);cursor:pointer}.recent-activity-row:hover{border-color:var(--border);background:#2ec4b60f}.recent-activity-when{color:var(--text-faint);font-size:11px}.recent-activity-main{font-size:12px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-activity-task{font-size:11px;color:var(--text-faint);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-header{display:flex;align-items:center;gap:10px;padding:4px;position:relative}.group-header:before{content:"";position:absolute;left:8px;right:8px;bottom:-4px;height:1px;background:linear-gradient(90deg,transparent,rgba(125,89,52,.35),transparent)}.group-color{width:4px;height:22px;border-radius:4px;background:var(--accent)}.group-title{background:transparent;border:none;color:var(--text);font-weight:700;font-size:20px;outline:none;padding:4px 6px;border-radius:6px;flex:1;min-width:0;font-family:var(--note-font)}.group-title:focus{background:var(--bg-tile)}.group-title:disabled{color:var(--text);cursor:default}.group-count{color:var(--text-faint);font-size:12px;padding:3px 10px;background:var(--bg-tile);border:1px solid var(--border);border-radius:99px;font-weight:600}.view-kanban .group-count{background:var(--bg-elev)}.group-actions{display:flex;gap:2px}.tile{background:#e7db9d;background-image:radial-gradient(circle at 12% 18%,rgba(255,255,255,.45) .6px,transparent 1.2px),radial-gradient(circle at 68% 44%,rgba(90,62,32,.13) .7px,transparent 1.3px),radial-gradient(circle at 36% 74%,rgba(255,255,255,.32) .6px,transparent 1.1px),radial-gradient(circle at 82% 82%,rgba(90,62,32,.1) .8px,transparent 1.4px);background-size:9px 9px,11px 11px,13px 13px,15px 15px;border:1px solid #d7c79e;border-radius:8px;padding:14px 14px 14px 18px;display:flex;flex-direction:column;gap:8px;cursor:grab;transition:transform .12s ease,border-color .12s ease,background .12s ease,box-shadow .12s ease;position:relative;overflow:visible;flex:0 0 auto;min-width:0;word-break:break-word;transform:rotate(var(--note-tilt, 0deg));box-shadow:0 6px 12px #3a241024;isolation:isolate}body.note-size-small .tile{padding:11px 11px 11px 14px;gap:6px}body.note-size-medium .tile{padding:14px 14px 14px 18px;gap:8px}body.note-size-large .tile{padding:18px 18px 16px 22px;gap:10px}body.note-size-small .tile-title{font-size:16px}body.note-size-large .tile-title{font-size:20px}.tile:hover{background:#ede2ad;border-color:var(--border-strong);transform:translateY(-1px) rotate(var(--note-tilt, 0deg));box-shadow:0 9px 16px #3a241033}.tile[data-note-hue="0"]{background-color:#e8dda2}.tile[data-note-hue="1"]{background-color:#d3e2ec}.tile[data-note-hue="2"]{background-color:#ecd3dc}.tile[data-note-hue="3"]{background-color:#d6e4be}.tile[data-note-hue="4"]{background-color:#e9d8b6}.tile.react-tile,.tile.react-tile:hover{cursor:default}.tile.react-tile,.tile.react-tile:hover{transform:none}.tile-drag-handle{flex-shrink:0;align-self:flex-start;margin:-2px 0 0 -6px;padding:6px 5px;border:none;border-radius:6px;background:transparent;color:#3a241061;cursor:grab;font-size:13px;line-height:1;letter-spacing:-3px;font-weight:700}.tile-drag-handle:hover{background:#ffffff47;color:#3a24109e}.tile-drag-handle:active{cursor:grabbing}.tile.locked{cursor:default;opacity:.85}.tile.locked:hover{transform:none}.tile.locked .tile-drag-handle{cursor:not-allowed;opacity:.45}.tile.dragging{opacity:.4;cursor:grabbing}.tile.drag-over{border-color:var(--accent);box-shadow:0 0 0 2px #2ec4b647}.tile[data-shared="1"]:after{content:"";position:absolute;top:8px;right:10px;width:26px;height:8px;border-radius:999px;background:var(--shared-grad);opacity:.9}.tile-shared-badge{margin-top:4px;display:inline-flex;align-items:center;font-size:10px;font-weight:700;padding:2px 7px;border-radius:999px;background:var(--shared-grad);color:#000000b8}.tile-client-review-badge{margin-top:4px;margin-left:4px;display:inline-flex;align-items:center;font-size:10px;font-weight:700;padding:2px 7px;border-radius:999px;background:#fef6e0;color:#9a7200;border:1px solid #e8d49a}.dnd-overlay-card{width:min(420px,42vw);max-width:92vw;opacity:.96!important;transform:none!important;cursor:grabbing;box-shadow:0 16px 28px #3a241047}.tile-delete{pointer-events:none;--del-tx: 180px;--del-ty: -420px;--del-rot: 28deg;animation:tileDeleteBallUp .62s cubic-bezier(.2,.9,.2,1) forwards}@keyframes tileDeleteBallUp{0%{opacity:1;transform:translate(0) rotate(var(--note-tilt, 0deg));filter:blur(0) saturate(1)}30%{opacity:.98;transform:translate(calc(var(--del-tx, 180px) * .25),calc(var(--del-ty, -420px) * .2)) rotate(calc(var(--note-tilt, 0deg) + var(--del-rot, 28deg))) scale(.78);filter:blur(.2px) saturate(.95)}to{opacity:0;transform:translate(var(--del-tx, 180px),var(--del-ty, -420px)) rotate(calc(var(--note-tilt, 0deg) + var(--del-rot, 44deg))) scale(.08);filter:blur(1.4px) saturate(.85)}}@media (prefers-reduced-motion: reduce){.tile-delete{animation:none!important;opacity:0;transform:translate(var(--del-tx, 180px),var(--del-ty, -420px)) scale(.08)}}.tile>*{position:relative;z-index:1}.tile:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--gray);opacity:.85;border-radius:var(--radius) 0 0 var(--radius)}.tile[data-status=Done]:before{background:var(--green)}.tile[data-status=Stuck]:before,.tile[data-status=Blocked]:before{background:var(--red)}.tile[data-status="Working on it"]:before{background:var(--orange)}.tile[data-status=Review]:before{background:var(--purple)}.tile[data-status="Not started"]:before{background:var(--gray)}.tile[data-status=Lead]:before{background:var(--yellow)}.tile[data-status=Negotiation]:before{background:#2bb1d4}.tile[data-status="Proposal Sent"]:before{background:var(--accent-2)}.tile[data-status="Awaiting Signature"]:before{background:#e879c0}.tile:after{content:none;position:absolute;top:-7px;right:18px;width:12px;height:12px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#e2e2e2 30%,#4f79b8 72%);box-shadow:0 2px 2px #261e1440}.tile[data-has-tape]:after{content:"";position:absolute;top:-8px;left:50%;transform:translate(-50%) rotate(-3deg);width:56px;height:14px;border-radius:2px;background:#eeddc0db;box-shadow:0 1px 2px #261e1433}.tile-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.tile-title{background:transparent;border:none;color:var(--text);font-weight:700;font-size:clamp(17px,1.1vw + 14px,19px);outline:none;padding:2px 0;flex:1;min-width:0;font-family:var(--note-font);line-height:1.28;letter-spacing:.02em}.tile-title:focus{color:var(--accent)}.tile-title:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}.tile-actions{display:flex;gap:2px;opacity:0;transition:opacity .15s ease;flex-shrink:0}.tile:hover .tile-actions{opacity:1}.tile-meta{display:flex;flex-wrap:wrap;gap:6px}.tile-pill{padding:5px 10px;font-size:12px;font-weight:600;border-radius:6px;color:#fff;cursor:pointer;border:none;letter-spacing:.02em;font-family:inherit}.tile-pill.locked{cursor:default;opacity:.9}.tile-pill[data-key=status][data-value="Not started"]{background:#4a5168}.tile-pill[data-key=status][data-value="Working on it"]{background:var(--orange)}.tile-pill[data-key=status][data-value=Stuck]{background:var(--red)}.tile-pill[data-key=status][data-value=Done]{background:var(--green)}.tile-pill[data-key=status][data-value=Review]{background:var(--purple)}.tile-pill[data-key=status][data-value=Blocked]{background:#b3413e}.tile-pill[data-key=status][data-value=Lead]{background:var(--yellow);color:#2a2200}.tile-pill[data-key=status][data-value=Negotiation]{background:#2bb1d4}.tile-pill[data-key=status][data-value="Proposal Sent"]{background:var(--accent-2)}.tile-pill[data-key=status][data-value="Awaiting Signature"]{background:#e879c0}.tile-pill[data-key=priority][data-value=Low]{background:#4a5168}.tile-pill[data-key=priority][data-value=Medium]{background:var(--blue)}.tile-pill[data-key=priority][data-value=High]{background:var(--orange)}.tile-pill[data-key=priority][data-value=Critical]{background:var(--red)}.tile-pill[data-key=type][data-value=Software]{background:var(--accent)}.tile-pill[data-key=type][data-value=Contract]{background:var(--purple)}.tile-pill[data-key=type][data-value=Support]{background:var(--gray)}.tile-pill[data-key=type][data-value=Discovery]{background:#2bb1d4}.tile-client{font-size:13px;color:#6b553f;display:flex;align-items:center;gap:6px;font-family:var(--note-font)}.tile-client:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--text-faint)}.task-sticker-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.task-sticker-badge{display:inline-flex;align-items:center;padding:2px 7px;border-radius:999px;border:1px solid rgba(58,42,26,.22);background:#ffffffb8;color:#3b2918;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.task-sticker-badge[data-sticker=HOT]{background:#ff9b54;color:#1e1208;border-color:#b55c1b}.task-sticker-badge[data-sticker=BLOCKED]{background:radial-gradient(circle at 12% 28%,rgba(170,20,20,.14) 0 2px,transparent 2px 100%),radial-gradient(circle at 78% 72%,rgba(170,20,20,.16) 0 1.6px,transparent 1.6px 100%),linear-gradient(0deg,#ffffffeb,#ffffffeb);color:#b01414;border:2px solid #c01717;border-radius:3px;padding:1px 8px;letter-spacing:.09em;font-weight:900;font-family:Arial Black,Impact,Helvetica Neue,sans-serif;text-transform:uppercase;transform:rotate(-1.8deg);box-shadow:inset 0 0 0 1px #c0171726,0 1px #6e10101f;text-shadow:-.4px 0 rgba(176,18,18,.55),.4px 0 rgba(176,18,18,.35)}.task-sticker-badge[data-sticker="SHIP IT"]{background:#2bd4a4;color:#0f2d24;border-color:#1e8f70}.task-sticker-badge[data-sticker=CLIENT]{background:#5b8cff;color:#f8fbff;border-color:#3754a5}.task-sticker-badge[data-sticker=OOO]{background:#f5c451;color:#2a2200;border-color:#a57d16}.tile-bottom{display:flex;align-items:center;justify-content:space-between;padding-top:10px;margin-top:auto;border-top:1px solid var(--border);gap:8px}.tile-bottom-left{display:flex;align-items:center;gap:8px;min-width:0;flex:1}.tile-bottom-right{display:flex;align-items:center;gap:6px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.tile-due{font-size:12px;color:#6b553f;display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:6px;background:#ffffff0a;white-space:nowrap;cursor:pointer}.tile-due.due-soon{color:var(--orange);background:#ff9b541f}.tile-due.due-overdue{color:var(--red);background:#ff6b6b26;font-weight:600}.tile-hours{font-size:11px;color:var(--text-faint);font-weight:600;cursor:pointer}.tile-activity{font-size:11px;color:var(--text-faint);font-weight:500;cursor:pointer;white-space:nowrap;max-width:170px;overflow:hidden;text-overflow:ellipsis}.tile-proof{font-size:11px;font-weight:600;color:var(--accent);background:#2ec4b624;padding:3px 8px;border-radius:6px;cursor:pointer;white-space:nowrap}.tile-proof:hover{background:#2ec4b63d}.tile.is-aged{box-shadow:0 10px 18px rgba(56,36,18,calc(.14 + var(--age-progress, 0) * .06)),inset 0 0 0 1px rgba(112,84,58,calc(.1 + var(--age-progress, 0) * .18));filter:saturate(calc(1 - var(--age-progress, 0) * .14))}.tile.is-aged:before{content:"";position:absolute;top:8px;right:10px;width:45%;height:45%;pointer-events:none;opacity:calc(.12 + var(--age-progress, 0) * .42);background:repeating-linear-gradient(138deg,rgba(95,73,50,.35) 0 1px,transparent 1px 12px),repeating-linear-gradient(90deg,rgba(95,73,50,.25) 0 1px,transparent 1px 13px),radial-gradient(circle at 100% 0%,rgba(95,73,50,.34) 0 1.1px,transparent 1.1px 100%);mask-image:radial-gradient(circle at 100% 0%,#000 0%,#000 78%,transparent 100%);-webkit-mask-image:radial-gradient(circle at 100% 0%,#000 0%,#000 78%,transparent 100%)}.owner-chip{width:28px;height:28px;border-radius:50%;display:inline-grid;place-items:center;color:#fff;font-weight:700;font-size:11px;cursor:pointer;border:2px solid var(--bg-tile);flex-shrink:0}.owner-empty{width:28px;height:28px;border-radius:50%;border:1.5px dashed var(--border-strong);display:inline-grid;place-items:center;color:var(--text-faint);cursor:pointer;font-size:13px;background:transparent;flex-shrink:0}.add-tile{background:#f8f0de;border:1.5px dashed var(--border-strong);border-radius:var(--radius);padding:14px;display:flex;align-items:center;justify-content:center;color:var(--text-faint);cursor:pointer;font-size:13px;font-weight:500;min-height:100px;transition:all .15s ease;font-family:inherit}.add-tile:hover{border-color:var(--accent);color:var(--accent);background:#fff8e9}.view-kanban .add-tile{min-height:50px}.icon-btn{background:transparent;border:none;cursor:pointer;color:var(--text-faint);font-size:14px;padding:5px 7px;border-radius:6px;font-family:inherit}.icon-btn:hover{background:var(--bg-elev);color:var(--text)}.icon-btn.delete-btn:hover{color:var(--red)}.icon-btn.quick-done-btn:hover{color:var(--green)}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:grid;place-items:center;z-index:100}.modal-card{background:radial-gradient(circle at 14% 18%,rgba(255,255,255,.3) .7px,transparent 1.4px),radial-gradient(circle at 68% 46%,rgba(90,62,32,.1) .8px,transparent 1.5px),#fff5df;border:1px solid #bda37a;border-radius:14px;width:min(680px,92vw);max-height:85vh;overflow:hidden;box-shadow:0 14px 28px #2c1d0e47,inset 0 1px #ffffff57;display:flex;flex-direction:column;position:relative}.modal-card:before{content:"";position:absolute;top:-9px;right:18px;width:70px;height:14px;border-radius:2px;background:#e6d1aaeb;transform:rotate(3deg);box-shadow:0 1px 3px #261a0c33;pointer-events:none}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--border)}.modal-header h2{margin:0;font-size:17px;line-height:1.3}.modal-body{padding:18px 20px;overflow:auto;font-size:14px;line-height:1.45}.modal-body label{display:block;font-size:12px;color:var(--text-faint);margin-bottom:6px;text-transform:uppercase;letter-spacing:.06em;font-weight:600}.modal-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.modal-field{display:flex;flex-direction:column}.modal-input,.modal-select{width:100%;background:var(--bg-tile);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:11px 13px;font-family:inherit;font-size:14px;outline:none}.modal-input:focus,.modal-select:focus{border-color:var(--accent)}.modal-body textarea{width:100%;min-height:140px;background:var(--bg-tile);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:11px 13px;font-family:inherit;font-size:14px;line-height:1.45;outline:none;resize:vertical}.modal-body textarea:focus{border-color:var(--accent)}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}.modal-upload-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;display:grid;place-content:center;gap:10px;text-align:center;background:#fff5dfed;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.task-update-doodle{--card-width: min(430px, 82vw)}.task-update-doodle .doodle-card-front{min-height:220px;padding:18px 16px;justify-content:center;gap:10px}.modal-upload-text{font-weight:700;color:var(--text);text-align:center}.floating-menu{position:fixed;background:#fff7e7;border:1px solid var(--border-strong);border-radius:8px;padding:4px;z-index:200;box-shadow:var(--shadow);min-width:160px;max-height:300px;overflow-y:auto}.floating-menu .tile-pill,.floating-menu .menu-item{display:block;width:100%;margin:3px 0;text-align:left;padding:6px 10px;font-size:12px;background:transparent;color:var(--text);border:none;border-radius:6px;cursor:pointer;font-family:inherit}.floating-menu .menu-item:hover{background:var(--bg-card)}.floating-menu .menu-item .mi-rate{color:var(--text-faint);font-size:10px;margin-left:6px}.floating-menu .tile-pill{text-align:center}.color-dots{display:flex;gap:6px}.color-dot{width:18px;height:18px;border-radius:50%;cursor:pointer;border:2px solid transparent}.color-dot.selected{border-color:#fff}.proof-section{border:1px solid var(--border);background:var(--bg-tile);border-radius:8px;padding:12px;margin-bottom:14px}.proof-section.proof-required-on{border-color:var(--orange);background:#ff9b540f}.proof-header{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}.proof-required{font-size:10px;color:var(--orange);background:#ff9b5426;padding:2px 6px;border-radius:4px;margin-left:6px;letter-spacing:.4px}.proof-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}.proof-empty{color:var(--text-faint);font-size:12px;font-style:italic;padding:4px 0}.proof-card{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:8px;display:flex;flex-direction:column;gap:6px;position:relative;overflow:hidden}.proof-card img{width:100%;height:90px;object-fit:cover;border-radius:6px;background:#000}.proof-file-icon{height:90px;display:grid;place-items:center;font-size:36px;background:var(--bg-elev);border-radius:6px}.proof-info{display:flex;flex-direction:column;gap:2px;min-width:0}.proof-name{font-size:12px;color:var(--text);text-decoration:none;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proof-name:hover{color:var(--accent);text-decoration:underline}.proof-meta{font-size:10px;color:var(--text-faint)}.proof-del{position:absolute;top:4px;right:4px;background:#00000080!important;font-size:11px!important;padding:3px 5px!important}.proof-warning{margin-top:10px;padding:8px 10px;background:#ff6b6b1f;border:1px solid rgba(255,107,107,.35);border-radius:6px;font-size:12px;color:var(--red)}.users-table{width:100%;border-collapse:collapse}.users-table th,.users-table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border);font-size:13px}.users-table th{color:var(--text-faint);font-size:11px;text-transform:uppercase;letter-spacing:1px}.users-table td.actions{text-align:right}.users-table input,.users-table select{background:var(--bg-tile);border:1px solid var(--border);color:var(--text);padding:6px 8px;border-radius:6px;font-size:12px;outline:none;font-family:inherit;width:100%}.users-table input:focus,.users-table select:focus{border-color:var(--accent)}.role-badge{display:inline-block;padding:2px 8px;font-size:10px;font-weight:700;border-radius:4px;letter-spacing:.5px;text-transform:uppercase}.role-badge.admin{background:var(--accent);color:#fff}.role-badge.member{background:var(--bg-tile);color:var(--text-dim)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:#444b63}@media (max-width: 1100px){.topbar-right{gap:6px}.stats .progress-stat{grid-column:span 2}}@media (max-width: 860px){.board-stat-chip-meta{display:none}.board-stat-chip{padding:6px 9px}.topbar-search{flex:1 1 120px;min-width:0}.app-shell{display:flex;flex-direction:column;height:var(--app-vh, 100dvh);min-height:var(--app-vh, 100dvh);overflow:hidden;transition:none}.app-shell .main{flex:1 1 auto;min-height:0;min-width:0;width:100%;overflow:hidden}.app-shell .sidebar{position:fixed;left:0;top:0;bottom:0;width:min(280px,80vw);z-index:60;box-shadow:var(--shadow);transform:translate(-100%);transition:transform .2s ease;padding-top:calc(18px + var(--safe-top));padding-bottom:calc(18px + var(--safe-bottom))}.app-shell:not(.sidebar-collapsed) .sidebar{transform:translate(0);visibility:visible}.modal-row{grid-template-columns:1fr}.topbar-right{width:100%;justify-content:flex-start}.view-toggle button{padding:7px 11px;font-size:13px}}@media (max-width: 600px){:root{--kanban-col: 86vw;--grid-tile-min: 100%}.topbar-right input[type=search]{flex:1 1 140px}.modal-card{width:96vw;max-height:92dvh}}@media (max-width: 420px){.topbar-right .filter,.footer-actions .ghost-btn{flex:1 1 45%}}@media (max-width: 900px) and (orientation: landscape) and (max-height: 480px){.topbar{padding-top:6px;padding-bottom:4px}.stats{padding-top:6px;padding-bottom:6px}.stat{padding:6px 10px}}@media (pointer: coarse){.ghost-btn,.primary-btn,.danger-btn,.view-toggle button,.icon-btn,.tile-pill,.modal-input,.modal-select,.filter,.topbar-right input[type=search]{min-height:44px}.ghost-btn,.primary-btn,.danger-btn,.view-toggle button,.icon-btn,.tile-pill,.mbn-btn,.board-del,.add-tile{min-width:44px}.modal-input,.modal-select,.filter,.topbar-right input[type=search],.modal-body textarea,.comment-form textarea,.doodle-input{font-size:16px}.icon-btn{padding:8px 10px;font-size:16px}.tile-actions{opacity:1!important}.board-list li .board-del{opacity:1}.board-area{-webkit-overflow-scrolling:touch}.view-kanban{scroll-snap-type:x proximity}.view-kanban .group{scroll-snap-align:start}}@media (min-width: 1600px){:root{--kanban-col: clamp(280px, 18vw, 360px)}}@media (min-width: 1920px){:root{--pad-x: clamp(24px, 2.4vw, 56px);--pad-y: clamp(14px, 1.6vw, 28px);--sidebar-w: clamp(240px, 16vw, 320px);--kanban-col: clamp(320px, 18vw, 420px);--grid-tile-min: clamp(280px, 20vw, 360px)}.dash-people-grid{grid-template-columns:repeat(auto-fill,minmax(min(46vw,720px),1fr));gap:24px}.dash-alerts{grid-template-columns:1fr 1fr;gap:24px}.dash-person-col{padding:22px;gap:14px}.dash-person-name{font-size:22px}.dash-person-meta{font-size:16px}.dash-section-label{font-size:14px;margin:10px 0 4px}.dash-task-card{padding:14px 16px;font-size:16px;border-radius:10px;margin-bottom:10px}.dash-task-title{font-size:18px}.dash-task-meta{font-size:16px;margin-top:8px}.dash-task-blocker{font-size:16px}.dash-status-pill{font-size:13px;padding:4px 10px}.dash-alert-title{font-size:18px}.dash-alert-row{font-size:15px;padding:8px 0}.dash-margin-title{font-size:18px}.dash-margin-row{font-size:15px;padding:8px 0}.dash-header{font-size:16px;padding:14px 22px}.owner-chip{width:44px;height:44px;font-size:16px}}@media (min-width: 2560px){html,body{font-size:clamp(16px,.5vw + 10px,22px)}:root{--radius: 14px;--pad-x: clamp(32px, 2.6vw, 80px);--sidebar-w: clamp(280px, 14vw, 380px);--kanban-col: clamp(360px, 16vw, 480px);--grid-tile-min: clamp(320px, 18vw, 420px)}.stat-value{font-size:clamp(22px,1.4vw + 8px,34px)}.dash-people-grid{grid-template-columns:repeat(auto-fill,minmax(min(48vw,900px),1fr));gap:32px}.dash-person-col{padding:28px;gap:18px}.dash-person-name{font-size:28px}.dash-person-meta{font-size:19px}.dash-section-label{font-size:17px;margin:14px 0 6px}.dash-task-card{padding:18px 22px;font-size:19px;border-radius:12px;margin-bottom:12px;border-left-width:5px}.dash-task-title{font-size:22px}.dash-task-meta{font-size:19px;margin-top:10px}.dash-task-blocker{font-size:19px}.dash-status-pill{font-size:15px;padding:5px 14px}.dash-alert-title{font-size:22px}.dash-alert-row{font-size:18px;padding:10px 0}.dash-margin-title{font-size:22px}.dash-margin-row{font-size:18px;padding:10px 0}.dash-header{font-size:19px;padding:18px 28px}.owner-chip{width:56px;height:56px;font-size:20px}}@media (min-width: 3200px){html,body{font-size:clamp(20px,.5vw + 12px,28px)}:root{--sidebar-w: clamp(320px, 12vw, 440px);--kanban-col: clamp(420px, 14vw, 560px)}.dash-people-grid{grid-template-columns:repeat(auto-fill,minmax(min(48vw,1200px),1fr));gap:40px}.dash-person-col{padding:36px}.dash-person-name{font-size:36px}.dash-person-meta{font-size:24px}.dash-section-label{font-size:22px;margin:18px 0 8px}.dash-task-card{padding:24px 28px;font-size:24px;border-radius:16px;margin-bottom:16px;border-left-width:6px}.dash-task-title{font-size:28px}.dash-task-meta{font-size:24px;margin-top:12px}.dash-task-blocker{font-size:24px}.dash-status-pill{font-size:19px;padding:6px 16px}.owner-chip{width:72px;height:72px;font-size:26px}}@media (tv),(min-width: 1920px) and (pointer: none),(min-width: 1920px) and (hover: none) and (pointer: coarse){:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:6px}}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}.comments-section{margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}.comments-section h3{margin:0 0 10px;font-size:13px}.comment-list{display:flex;flex-direction:column;gap:10px;max-height:260px;overflow-y:auto;padding-right:4px}.comment{display:flex;gap:10px;padding:8px;background:var(--bg-tile);border-radius:8px}.comment .owner-chip{flex-shrink:0}.comment-body{flex:1;min-width:0}.comment-head{display:flex;align-items:baseline;gap:8px;margin-bottom:4px}.comment-author{font-size:13px;font-weight:600}.comment-time{font-size:11px;color:var(--text-faint)}.comment-text{font-size:14px;color:var(--text-dim);line-height:1.5;white-space:pre-wrap;word-wrap:break-word}.comment-system{background:transparent;border-left:2px solid var(--border);border-radius:0;padding-left:10px}.comment-system .comment-text{color:var(--text-faint);font-style:italic;font-size:12px}.comment-empty{color:var(--text-faint);font-size:13px;font-style:italic;padding:4px 0}.comment-form{display:flex;gap:8px;margin-top:10px}.comment-form textarea{flex:1;min-height:40px;max-height:120px;resize:vertical;padding:10px 12px;background:var(--bg-tile);color:var(--text);border:1px solid var(--border);border-radius:6px;font-family:inherit;font-size:14px;line-height:1.45}.comment-form textarea:focus{border-color:var(--accent);outline:none}.comment-form button{align-self:flex-end}:root{--bg-soft: var(--bg-card)}.board-area.dashboard-mode{padding:var(--gap-md);gap:var(--gap-md);display:flex;flex-direction:column}.board-area.dashboard-mode .dash-people-grid{flex:1 1 auto;min-height:0;grid-auto-rows:1fr}.board-area.dashboard-mode .dash-person-col{min-height:0;overflow-y:auto}body:has(.board-area.dashboard-mode) .topbar,body:has(.board-area.dashboard-mode) .stats{padding-left:var(--gap-md);padding-right:var(--gap-md)}.dash-header{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:12px 18px;margin-bottom:0;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;font-size:14px;line-height:1.45}.dash-header-desc{color:var(--text-faint);flex:1;min-width:min(100%,200px);font-size:14px;line-height:1.5}.dash-header-right{display:flex;gap:14px;align-items:center}.dash-ts{color:var(--text-faint);font-size:12px}.dash-alerts{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin-bottom:0}.dash-alert-card{background:radial-gradient(circle at 14% 18%,rgba(255,255,255,.22) .7px,transparent 1.4px),var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:12px 14px;box-shadow:0 3px 10px #39271614}.dash-alert-title{font-weight:700;font-size:15px;line-height:1.3;margin-bottom:8px;display:flex;align-items:baseline;gap:6px}.dash-alert-count{color:var(--text-faint);font-weight:400;font-size:13px}.dash-alert-empty{color:var(--text-faint);font-size:13px;font-style:italic}.dash-alert-row{font-size:14px;padding:9px 0;cursor:pointer;border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;gap:6px;align-items:baseline;line-height:1.45}.dash-alert-row:last-child{border-bottom:none}.dash-alert-row:hover{color:var(--accent)}.dash-alert-row b{color:var(--text)}.dash-alert-more{color:var(--text-faint);font-size:12px;padding-top:6px}.dash-margin-card{background:linear-gradient(180deg,#ffecc473,#e9deccf2),var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:12px 14px;margin-bottom:0;box-shadow:0 4px 12px #3927161a}.dash-margin-title{font-weight:800;margin-bottom:8px;letter-spacing:.01em}.dash-margin-row{font-size:14px;padding:8px 0;cursor:pointer;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;gap:10px}.dash-margin-row:last-child{border-bottom:none}.dash-margin-row:hover{background:#ffffff08}.dash-margin-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.dash-loss-badge{display:inline-block;background:#ff4d4d;color:#0b0d12;font-size:10px;font-weight:900;padding:2px 7px;border-radius:4px;margin-left:6px;letter-spacing:.06em;box-shadow:0 1px 4px #b9524966}.dash-margin-numbers{text-align:right;font-weight:700;white-space:nowrap}.dash-margin-sub{color:var(--text-faint);font-weight:400}.dash-margin-more{color:var(--text-faint);font-size:12px;padding-top:6px}.dash-people-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(248px,1fr));gap:16px}.dash-person-col{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:10px;min-height:200px}.dash-person-head{display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--border);padding-bottom:8px}.dash-person-info{flex:1;min-width:0}.dash-person-name{font-weight:700;font-size:15px;display:flex;align-items:center;flex-wrap:wrap;gap:6px;line-height:1.35}.dash-person-meta{color:var(--text-faint);font-size:13px;margin-top:3px;line-height:1.4}.dash-ooo-badge{background:var(--orange);color:#0b0d12;font-size:10px;font-weight:700;padding:1px 6px;border-radius:4px}.dash-status-note{font-size:13px;line-height:1.4;color:var(--text);background:var(--bg);border:1px dashed var(--border);border-radius:6px;padding:8px 10px}.dash-section-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin:8px 0 4px}.dash-task-card{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:11px 12px;margin-bottom:8px;font-size:14px;line-height:1.4;cursor:pointer;transition:border-color .12s ease,background .12s ease}body.note-size-small .dash-task-card{padding:8px 10px;font-size:13px;border-radius:5px}body.note-size-small .dash-task-title{font-size:13px}body.note-size-small .dash-task-meta{font-size:12px}body.note-size-medium .dash-task-card{padding:10px 12px;font-size:14px;border-radius:6px}body.note-size-large .dash-task-card{padding:13px 15px;font-size:15px;border-radius:9px}body.note-size-large .dash-task-title{font-size:16px}body.note-size-large .dash-task-meta{font-size:14px}.dash-task-card:hover{background:var(--bg-tile);border-color:var(--border-strong)}.dash-task-card.is-done{opacity:.6}.dash-task-card.is-shared-task{background-image:linear-gradient(#ffffffc7,#ffffffc7),var(--shared-grad);background-size:cover}.dash-task-title{font-weight:600;font-size:15px;line-height:1.35}.dash-client-review-row{display:flex;align-items:center;gap:8px;margin-top:4px;margin-bottom:2px;flex-wrap:wrap}.dash-client-review-stamp{display:inline-block;border:2px solid #b31717;color:#b31717;background:#ffffffe6;border-radius:3px;padding:1px 8px;font-size:10px;font-weight:900;letter-spacing:.09em;transform:rotate(-1.5deg);font-family:Arial Black,Impact,Helvetica Neue,sans-serif}.dash-client-review-age{font-size:11px;color:#7a5a3e;font-weight:700}.dash-task-title.done{text-decoration:none;position:relative}.dash-task-title.done:after{content:"";position:absolute;left:-2px;right:-2px;top:49%;height:14px;background:repeating-linear-gradient(-14deg,transparent 0 4px,rgba(76,47,25,.7) 4px 7px,transparent 7px 10px,rgba(76,47,25,.62) 10px 13px),repeating-linear-gradient(9deg,transparent 0 6px,rgba(76,47,25,.45) 6px 8px,transparent 8px 12px);opacity:.72;pointer-events:none;border-radius:9px;transform:rotate(-1.5deg)}.dash-done-rip{display:inline-block;margin-top:6px;padding:2px 9px;font-size:10px;font-weight:800;letter-spacing:.08em;color:#5a3a22;background:#efd39b;border:1px dashed #a98a61;border-radius:4px;transform:rotate(-2deg)}.dash-task-meta{color:var(--text-faint);font-size:13px;margin-top:6px;line-height:1.45}.dash-task-card.note-aged{border-color:rgba(126,84,50,calc(.35 + var(--age-progress, 0) * .5));filter:saturate(calc(1 - var(--age-progress, 0) * .12))}.dash-task-card.note-aged:after{content:"";position:absolute;top:8px;right:10px;width:46%;height:46%;pointer-events:none;opacity:calc(.1 + var(--age-progress, 0) * .45);background:repeating-linear-gradient(140deg,rgba(105,79,54,.35) 0 1px,transparent 1px 13px),repeating-linear-gradient(92deg,rgba(105,79,54,.22) 0 1px,transparent 1px 14px),radial-gradient(circle at 100% 0%,rgba(105,79,54,.35) 0 1.2px,transparent 1.2px 100%);mask-image:radial-gradient(circle at 100% 0%,#000 0%,#000 78%,transparent 100%);-webkit-mask-image:radial-gradient(circle at 100% 0%,#000 0%,#000 78%,transparent 100%)}.dash-task-blocker{color:#8b2222;background:#ff6b6b24;border:1px solid rgba(185,82,73,.42);border-radius:7px;font-size:13px;margin-top:7px;font-weight:700;line-height:1.35;padding:6px 8px}.dash-task-footer{margin-top:8px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.dash-status-pill{color:#0b0d12;font-size:11px;font-weight:700;padding:3px 8px;border-radius:3px}.dash-empty{color:var(--text-faint);font-size:12px;font-style:italic;text-align:center;padding:14px 0}.dash-chips{display:flex;flex-wrap:wrap;gap:10px;row-gap:10px;align-items:center;padding:6px 0}.dash-my-focus{margin-top:10px;margin-bottom:12px;background:var(--bg-soft);border:1px solid var(--border);border-radius:10px;padding:14px}.dash-my-focus-head{font-size:12px;font-weight:700;color:var(--text-faint);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.dash-my-focus-list{display:grid;gap:6px}.dash-my-focus-row{width:100%;border:1px solid transparent;border-radius:8px;padding:6px 8px;text-align:left;background:#ffffff03;color:var(--text);cursor:pointer}.dash-my-focus-row:hover{border-color:var(--border);background:#2ec4b60f}.dash-my-focus-task{display:block;font-size:14px;font-weight:600;line-height:1.35}.dash-my-focus-meta{display:block;font-size:13px;color:var(--text-faint);margin-top:3px;line-height:1.35}.dash-my-focus-empty{font-size:13px;color:var(--text-faint);padding:2px 0}.dash-nudges{margin-top:10px;display:grid;gap:6px}.dash-nudge{font-size:13px;line-height:1.4;color:var(--text-dim);padding:8px 10px;border-radius:8px;background:#7c5cff14;border:1px solid rgba(124,92,255,.25)}.dash-chip{background:var(--bg-card);border:1px solid var(--border);color:var(--text-dim);padding:8px 14px;border-radius:999px;cursor:pointer;font-size:14px;font-family:inherit;transition:all .15s ease}.dash-chip:hover{border-color:var(--accent);color:var(--text)}.dash-chip.on{background:var(--accent);border-color:var(--accent);color:#fff}.dash-chip-sep{width:1px;height:20px;background:var(--border);margin:0 4px}.dash-chip-label{font-size:14px;color:var(--text-faint)}.dash-chip-select{background:var(--bg-card);border:1px solid var(--border);color:var(--text);padding:8px 12px;border-radius:999px;font-size:14px;font-family:inherit;cursor:pointer;outline:none}.dash-chip-select:focus{border-color:var(--accent)}.dash-global-empty{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:60px 20px;background:var(--bg-card);border:1px dashed var(--border-strong);border-radius:var(--radius)}.dash-status-pill{cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform .1s ease,filter .1s ease}.dash-status-pill:hover{filter:brightness(1.15);transform:translateY(-1px)}.dash-person-spark{margin-left:auto;flex:0 0 auto;display:flex;align-items:center;opacity:.8}.dash-person-spark .dash-spark{display:block}.dash-activity{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin-top:12px}.dash-activity-title{font-size:12px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--text-dim);margin-bottom:10px}.dash-activity-row{display:grid;grid-template-columns:80px 1fr auto;gap:10px;align-items:baseline;padding:6px 0;border-top:1px dashed var(--border);cursor:pointer;font-size:12px;color:var(--text)}.dash-activity-row:first-of-type{border-top:0}.dash-activity-row:hover{background:#ffffff08}.dash-activity-row.is-system{color:var(--text-dim);font-style:italic}.dash-activity-when{color:var(--text-faint);font-size:11px;white-space:nowrap}.dash-activity-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-activity-target{color:var(--text-faint);font-size:11px;white-space:nowrap}.dash-wins-ticker{margin-top:12px;position:relative;overflow:hidden;border-radius:10px;border:1px solid #8b6b48;background:radial-gradient(circle at 12% 20%,rgba(255,255,255,.18) .6px,transparent 1.3px),radial-gradient(circle at 66% 58%,rgba(70,42,20,.11) .8px,transparent 1.5px),#d8bf92;box-shadow:inset 0 1px #ffffff54,0 8px 16px #1c120938;padding:7px 10px}.dash-wins-ticker:before{content:"";position:absolute;top:-7px;left:20px;width:62px;height:15px;border-radius:2px;background:#e2cea7eb;transform:rotate(-2.5deg);box-shadow:0 1px 2px #301e0e33}.dash-wins-label{display:inline-block;margin-bottom:5px;padding:1px 7px;border:2px solid #6f4e2f;border-radius:3px;color:#4d351f;background:#fff4dcbf;font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;transform:rotate(-1.6deg)}.dash-wins-track{position:relative;min-height:24px}.dash-win-note{position:relative;display:inline-flex;align-items:baseline;flex-wrap:wrap;gap:8px;color:#2f2217;font-family:Caveat,Comic Sans MS,Bradley Hand,cursive;font-size:18px;font-weight:700;line-height:1.15;white-space:normal;opacity:.03;overflow:hidden;transform:translateY(2px);transition:opacity .28s ease,transform .28s ease}.dash-win-note.is-visible{opacity:1;transform:translateY(0)}.dash-win-who{font-weight:900;color:#1f1710}.dash-win-did{color:#6b4d2f;font-weight:700}.dash-win-task{max-width:none;overflow:visible;text-overflow:clip}.dash-win-proj{color:#705238;font-size:.82em}body.tv-mode{--tv-done-feed-band: clamp(104px, 13vh, 168px);--tv-type-title: clamp(20px, 1.8vmin, 32px);--tv-type-body: clamp(15px, 1.2vmin, 22px);--tv-type-label: clamp(12px, .95vmin, 16px);--tv-card-pad-y: clamp(14px, 1.15vmin, 22px);--tv-card-pad-x: clamp(16px, 1.35vmin, 28px)}body.tv-mode .dash-wins-ticker{padding:10px clamp(16px,3vw,36px) calc(12px + env(safe-area-inset-bottom,0px));margin:0;position:fixed;left:0;right:calc(min(360px,28vw) + 18px);bottom:0;z-index:48;border-radius:14px 14px 0 0;border-bottom:none;box-shadow:0 -10px 32px #1c120961;max-height:calc(var(--tv-done-feed-band) + env(safe-area-inset-bottom,0px))}body.tv-mode .dash-wins-label{font-size:13px;padding:3px 10px}body.tv-mode .dash-wins-track{min-height:64px}body.tv-mode .dash-win-note{font-size:clamp(20px,1.1vw + 14px,30px)}.dash-load-badge{display:inline-block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:3px 9px;border-radius:4px;margin-left:4px}.dash-person-col.load-idle{border-top:3px solid var(--text-faint)}.dash-person-col.load-light{border-top:3px solid var(--green)}.dash-person-col.load-high{border-top:3px solid var(--yellow)}.dash-person-col.load-over{border:1.5px solid color-mix(in srgb,var(--red) 60%,transparent);border-top:3px solid var(--red);background:linear-gradient(180deg,color-mix(in srgb,var(--red) 12%,transparent) 0%,transparent 80px),var(--panel-2, var(--panel));box-shadow:0 0 0 1px #ff6b6b2e,0 0 24px -8px #ff6b6b73;animation:dash-overload-pulse 3.2s ease-in-out infinite}@keyframes dash-overload-pulse{0%,to{box-shadow:0 0 0 1px #ff6b6b2e,0 0 24px -8px #ff6b6b73}50%{box-shadow:0 0 0 1px #ff6b6b4d,0 0 32px -6px #ff6b6ba6}}.dash-person-col.load-ooo{border-top:3px solid var(--orange);opacity:.85}.dash-load-badge.load-idle{background:#9ba3b826;color:var(--text-faint)}.dash-load-badge.load-light{background:#2bd4a42e;color:var(--green)}.dash-load-badge.load-high{background:#f5c45133;color:var(--yellow)}.dash-load-badge.load-over{background:#ff6b6b38;color:var(--red)}.dash-load-badge.load-ooo{background:#ff9b5438;color:var(--orange)}body.tv-mode .sidebar,body.tv-mode .topbar,body.tv-mode .stats{display:none!important}body.tv-mode .app-shell{grid-template-columns:1fr!important}body.tv-mode .main{height:var(--app-vh, 100dvh);min-height:0;overflow:hidden;display:flex;flex-direction:column}body.tv-mode .board-area.dashboard-mode{padding:var(--gap-md);padding-right:calc(min(360px,28vw) + 26px);padding-bottom:calc(var(--tv-done-feed-band) + env(safe-area-inset-bottom,0px) + 20px);flex:1 1 auto;min-height:0;height:auto;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}body.tv-mode .dash-chips{display:none}body.tv-mode .dash-header{background:transparent;border:0;padding:0;min-height:0}body.tv-mode .dash-header-desc,body.tv-mode #dash_tv,body.tv-mode #dash_refresh{display:none!important}body.tv-mode .board-area.dashboard-mode{background:radial-gradient(1100px 600px at 6% 0%,rgba(248,218,175,.12),transparent 62%),radial-gradient(900px 500px at 100% 100%,rgba(92,60,29,.14),transparent 65%),repeating-linear-gradient(14deg,rgba(107,67,33,.045),rgba(107,67,33,.045) 2px,transparent 2px,transparent 8px),linear-gradient(135deg,#9a7654,#846245)}body.tv-mode .dash-alert-card,body.tv-mode .dash-margin-card,body.tv-mode .dash-person-col{position:relative;border-radius:12px;border:1px solid #b79b73;background-color:#efe3ad;background-image:radial-gradient(circle at 12% 18%,rgba(255,255,255,.32) .7px,transparent 1.4px),radial-gradient(circle at 68% 44%,rgba(90,62,32,.11) .8px,transparent 1.6px);background-size:10px 10px,12px 12px;box-shadow:0 12px 26px #2a1a0c47}body.tv-mode .dash-alert-card:before,body.tv-mode .dash-margin-card:before,body.tv-mode .dash-person-col:before{content:"";position:absolute;top:-9px;left:50%;transform:translate(-50%) rotate(-2deg);width:74px;height:16px;border-radius:2px;background:#e4cea8eb;box-shadow:0 2px 4px #261a0c33}body.tv-mode .dash-people-grid>.dash-person-col:nth-child(4n+2){background-color:#dbe9f2;border-color:#99b4c7}body.tv-mode .dash-people-grid>.dash-person-col:nth-child(4n+3){background-color:#f1d8e1;border-color:#c8a0b1}body.tv-mode .dash-people-grid>.dash-person-col:nth-child(4n+4){background-color:#dcebc6;border-color:#a6bb84}body.tv-mode .board-area.dashboard-mode .dash-people-grid{flex:0 1 auto;min-height:auto;grid-auto-rows:auto;align-content:start}body.tv-mode .board-area.dashboard-mode .dash-person-col{min-height:auto;overflow-x:visible;overflow-y:visible}body.tv-mode .dash-people-grid{gap:clamp(16px,1.2vw,28px);display:grid;align-items:stretch;grid-template-columns:repeat(var(--tv-people-count, 1),minmax(0,1fr));overflow:hidden;padding-bottom:0}body.tv-mode .dash-people-grid>.dash-person-col{min-width:0;max-width:none}body.tv-mode .dash-alerts{grid-template-columns:repeat(2,minmax(0,1fr))}body.tv-mode .dash-header-right,body.tv-mode .dash-ts,body.tv-mode .dash-person-meta,body.tv-mode .dash-empty,body.tv-mode .dash-my-focus-empty{color:#53412f}body.tv-mode .dash-alert-count,body.tv-mode .dash-alert-empty,body.tv-mode .dash-alert-more{color:#6b4d2f}body.tv-mode .dash-margin-sub,body.tv-mode .dash-margin-more{color:#5f452d}body.tv-mode .dash-alert-title,body.tv-mode .dash-margin-title,body.tv-mode .dash-person-name,body.tv-mode .dash-section-label,body.tv-mode .dash-task-title,body.tv-mode .dash-task-meta,body.tv-mode .dash-status-note,body.tv-mode .dash-my-focus-task,body.tv-mode .dash-my-focus-meta{color:#2f2318}body.tv-mode .dash-person-head{border-bottom-color:#523e2947}body.tv-mode .dash-task-card{position:relative;border-radius:12px;border:1px solid #a98a61;background:#fff2c8;padding:var(--tv-card-pad-y) var(--tv-card-pad-x);margin-bottom:clamp(14px,1vw,20px);line-height:1.42;box-shadow:0 8px 18px #3927162e;transform:rotate(var(--note-tilt, 0deg))}body.tv-mode .dash-task-card.dragging,.dash-task-card.dragging{transform:none!important}body.tv-mode .dash-person-ooo-fill{margin-top:6px;border:2px dashed rgba(120,74,28,.5);border-radius:12px;background:#ffefced9;min-height:220px;display:grid;place-content:center;text-align:center;gap:10px;padding:14px}body.tv-mode .dash-person-ooo-title{font-size:clamp(24px,2.2vw,38px);line-height:1.1;font-weight:900;letter-spacing:.02em;color:#7d3f0f;text-transform:uppercase}body.tv-mode .dash-person-ooo-task{font-size:clamp(16px,1.35vw,24px);line-height:1.28;font-weight:700;color:#4c2b12}body.tv-mode .dash-task-card:before{content:"";position:absolute;top:-7px;right:16px;width:44px;height:12px;border-radius:2px;background:#e4cea8eb}body.tv-mode .dash-task-card[data-note-hue="1"]{background:#dbe9f2;border-color:#99b4c7}body.tv-mode .dash-task-card[data-note-hue="2"]{background:#f1d8e1;border-color:#c8a0b1}body.tv-mode .dash-task-card[data-note-hue="3"]{background:#dcebc6;border-color:#a6bb84}body.tv-mode .dash-task-card[data-note-hue="4"]{background:#efdcb8;border-color:#c0a06f}body.tv-mode .dash-task-card[data-has-tape]:before{width:58px;height:14px;transform:rotate(-3deg)}body.tv-mode .dash-task-title{font-size:var(--tv-type-title);font-weight:800;line-height:1.28}body.tv-mode .dash-task-meta{font-size:var(--tv-type-body);line-height:1.45;margin-top:10px}body.tv-mode .dash-person-name{font-size:clamp(18px,1.4vmin,28px);font-weight:800}body.tv-mode .dash-section-label{font-size:var(--tv-type-label);margin:12px 0 8px}body.tv-mode .dash-my-focus{display:none!important}body.tv-mode .dash-client-review-stamp{font-size:12px;padding:2px 10px;border-width:2px}body.tv-mode .dash-client-review-age{font-size:14px}body.tv-mode .dash-task-card.note-aged{filter:saturate(calc(1 - var(--age-progress, 0) * .28))}body.tv-mode .dash-task-blocker{font-size:var(--tv-type-body);color:#872d2d;background:#ff6b6b1f;border:1px solid rgba(185,82,73,.4);border-radius:6px;padding:6px 8px}body.tv-mode .dash-status-pill{background:#55371e!important;color:#fff8ea;border-radius:6px;font-size:var(--tv-type-label);padding:6px 13px}body.tv-mode .dash-task-card.is-done{opacity:.78;filter:saturate(.8)}body.tv-mode .dash-task-title.done{text-decoration:none;position:relative}body.tv-mode .dash-task-title.done:after{content:"";position:absolute;left:-2px;right:-2px;top:54%;height:12px;background:repeating-linear-gradient(-8deg,transparent 0 5px,rgba(76,47,25,.88) 5px 8px);opacity:.72;pointer-events:none}body.tv-mode .dash-task-card.is-done:after{content:"";position:absolute;right:-10px;top:50%;width:12px;height:28px;transform:translateY(-50%);border-radius:2px;background:#e4cea8e6;box-shadow:0 2px 4px #261a0c33}body.tv-mode .dash-done-rip{display:inline-block;margin-top:8px;padding:3px 10px 2px;font-size:11px;font-weight:800;letter-spacing:.08em;color:#5a3a22;background:#efd39b;border:1px dashed #a98a61;border-radius:4px;transform:rotate(-2deg)}.dash-unclaimed-pile{margin:8px 0 14px;padding:14px 16px 12px;border-radius:12px;border:2px dashed rgba(114,80,48,.55);background:radial-gradient(circle at 12% 18%,rgba(255,255,255,.2) .7px,transparent 1.4px),radial-gradient(circle at 68% 44%,rgba(90,62,32,.08) .8px,transparent 1.6px),#efe3ad99;box-shadow:inset 0 1px #ffffff80,0 10px 20px #2a1a0c29}.dash-unclaimed-pile.drag-over{border-color:var(--accent);background:#f5c45138}.dash-unclaimed-head{font-family:var(--note-font, cursive);font-size:20px;font-weight:800;color:#3a2a1d;transform:rotate(-1.2deg)}.dash-unclaimed-sub{font-size:13px;color:#5b4632;margin-top:2px;margin-bottom:10px}.dash-unclaimed-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}.dash-unclaimed-list .dash-task-card:nth-child(3n+1){transform:rotate(-1.2deg)}.dash-unclaimed-list .dash-task-card:nth-child(3n+2){transform:rotate(.9deg)}.dash-unclaimed-list .dash-task-card:nth-child(3n+3){transform:rotate(-.4deg)}.dash-unclaimed-empty{font-size:13px;color:#6b5641;font-style:italic;padding:8px 2px}body.tv-mode .dash-unclaimed-pile{position:fixed;top:14px;right:14px;bottom:calc(var(--tv-done-feed-band) + env(safe-area-inset-bottom,0px) + 16px);width:min(360px,28vw);margin:0;z-index:45;overflow-y:auto}body.tv-mode .dash-unclaimed-list{grid-template-columns:1fr}body.tv-mode .dash-unclaimed-list .dash-task-card{transform:none!important}@keyframes tv-burnin-drift{0%{transform:translate(0)}25%{transform:translate(2px,1px)}50%{transform:translate(-1px,2px)}75%{transform:translate(1px,-2px)}to{transform:translate(-2px,-1px)}}.dash-task-card{cursor:grab}.dash-task-card[draggable=true]:active{cursor:grabbing}.dash-task-card.dragging{opacity:.5}.dash-person-col.drag-over{outline:2px dashed var(--accent);outline-offset:-2px;background:#6c63ff0f}.dash-task-card:focus{outline:2px solid var(--accent);outline-offset:2px}.dash-task-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tv-clock{position:fixed;top:12px;right:12px;z-index:60;background:#0006;color:var(--text);padding:6px 14px;border-radius:8px;font-size:clamp(14px,1.2vw,20px);font-weight:700;letter-spacing:.5px;pointer-events:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.tv-exit{position:fixed;top:12px;left:12px;z-index:60;background:#0006;color:var(--text);border:1px solid var(--border-strong);padding:6px 12px;border-radius:8px;font-size:12px;cursor:pointer;opacity:.4;transition:opacity .2s ease;font-family:inherit}.tv-exit:hover,.tv-exit:focus{opacity:1}.members-list{display:flex;flex-direction:column;gap:8px;max-height:320px;overflow-y:auto}.member-row{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--bg-tile);border-radius:8px}.member-row .member-info{flex:1;min-width:0}.member-row .member-name{font-size:13px;font-weight:600}.member-row .member-meta{font-size:11px;color:var(--text-faint)}.member-role-select{padding:4px 8px;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:4px;font-size:11px}.invite-form{display:flex;gap:8px;margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.invite-form input{flex:1}.dash-hero{display:grid;grid-template-columns:minmax(220px,1.2fr) minmax(240px,1.3fr) minmax(240px,1.3fr) minmax(220px,1.1fr);gap:14px;padding:12px 16px;margin:0 0 10px;background:var(--panel);border:1px solid var(--border);border-radius:10px}.dash-hero-block{min-width:0;display:flex;flex-direction:column;gap:8px}.dash-hero-label{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);font-weight:600}.dash-hero-cap-bar{position:relative;height:10px;border-radius:5px;background:#7f7f7f2e;overflow:hidden}.dash-hero-cap-fill{height:100%;border-radius:5px;transition:width .3s ease}.dash-hero-cap-over{position:absolute;top:0;left:100%;height:100%;background:repeating-linear-gradient(45deg,var(--red) 0 6px,rgba(255,77,77,.55) 6px 12px);border-top-right-radius:5px;border-bottom-right-radius:5px}.dash-hero-cap-text{font-size:14px;line-height:1.45;color:var(--text)}.dash-hero-cap-clock{font-size:13px;color:var(--text-faint);margin-top:2px}.dash-hero-mix-row,.dash-hero-people-row{display:flex;flex-wrap:wrap;gap:8px}.dash-mix-pill,.dash-people-pill{font-size:13px;padding:4px 10px;border-radius:999px;background:color-mix(in srgb,var(--c) 14%,transparent);color:var(--c);border:1px solid color-mix(in srgb,var(--c) 35%,transparent)}.dash-mix-pill b,.dash-people-pill b{font-weight:700;margin-right:3px}.dash-momentum-row{display:flex;align-items:center;gap:12px}.dash-momentum-chart{flex-shrink:0}.dash-momentum-stat{display:flex;flex-direction:column;gap:2px;min-width:0}.dash-momentum-today{font-size:22px;font-weight:700;line-height:1}.dash-momentum-vs{font-size:13px;color:var(--text-faint);line-height:1.35}.dash-momentum-vs b{color:var(--text);font-weight:600}.dash-finish{display:inline-block;font-size:12px;font-weight:600;padding:2px 8px;margin-left:6px;margin-top:2px;border-radius:999px;background:#7f7f7f24;color:var(--text-faint);vertical-align:middle}.dash-status-note.dash-status-set{cursor:pointer;border:1px dashed transparent;transition:background .15s,border-color .15s}.dash-status-note.dash-status-set:hover{background:#7f7f7f1a;border-color:var(--border)}.dash-risk-pill{display:inline-block;margin-left:6px;font-size:10.5px;font-weight:700;padding:1px 6px;border-radius:4px;background:#ff9b5426;color:var(--orange, #ff9b54);border:1px solid color-mix(in srgb,var(--orange, #ff9b54) 45%,transparent)}body.tv-mode .dash-hero{padding:14px 18px;gap:16px}body.tv-mode .dash-hero-label{font-size:13px;color:#000!important;text-shadow:none}body.tv-mode .dash-hero-cap-text{font-size:16px}body.tv-mode .dash-mix-pill,body.tv-mode .dash-people-pill{font-size:14px;padding:4px 11px}body.tv-mode .dash-momentum-today{font-size:26px}@media (max-width: 1300px){.dash-hero{grid-template-columns:1fr 1fr}}@media (max-width: 640px){.dash-hero{grid-template-columns:1fr}}.dash-timeline{margin:8px 0 4px;display:flex;flex-direction:column;gap:4px}.dash-tl-rail{position:relative;display:flex;height:18px;background:#7f7f7f1a;border-radius:4px;overflow:hidden}.dash-tl-seg{height:100%;min-width:1px;transition:filter .15s}.dash-tl-task{cursor:pointer;border-right:1px solid rgba(0,0,0,.18)}.dash-tl-task:hover{filter:brightness(1.15) saturate(1.1)}.dash-tl-lunch{display:flex;align-items:center;justify-content:center;background:repeating-linear-gradient(45deg,#7f7f7f1a 0,#7f7f7f1a 4px,#7f7f7f33 4px,#7f7f7f33 8px);color:var(--text-faint);font-size:9px}.dash-tl-gap{background:transparent}.dash-tl-now{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--text);box-shadow:0 0 0 1px #fff6,0 0 6px #0009;pointer-events:none}.dash-tl-now:before{content:"";position:absolute;top:-3px;left:-3px;width:8px;height:8px;border-radius:50%;background:var(--text)}.dash-tl-axis{display:flex;justify-content:space-between;font-size:9.5px;color:var(--text-faint);font-variant-numeric:tabular-nums}.dash-tl-overflow{font-size:10px;color:var(--red);font-weight:600}body.tv-mode .dash-tl-rail{height:24px}body.tv-mode .dash-tl-axis{font-size:12px}.dash-now-playing{margin:6px 0;padding:8px 10px 8px 12px;border-radius:6px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 15%,transparent),color-mix(in srgb,var(--accent) 5%,transparent));border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);border-left:3px solid var(--accent);cursor:pointer;position:relative;overflow:hidden;transition:transform .12s,box-shadow .12s}.dash-now-playing:hover{transform:translate(2px);box-shadow:0 2px 10px #0000002e}.dash-now-playing:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.1) 50%,transparent 100%);transform:translate(-100%);animation:dash-np-shimmer 3s ease-in-out infinite;pointer-events:none}@keyframes dash-np-shimmer{0%,to{transform:translate(-100%)}50%{transform:translate(100%)}}.dash-np-label{font-size:9.5px;font-weight:700;letter-spacing:.08em;color:var(--accent);margin-bottom:2px}.dash-np-title{font-size:13.5px;font-weight:600;line-height:1.25}.dash-np-meta{font-size:11px;color:var(--text-faint);margin-top:2px}body.tv-mode .dash-np-title{font-size:17px}body.tv-mode .dash-np-label{font-size:11px}.dash-task-pin{margin-right:4px;opacity:.85}.dash-task-proj{font-size:16px;line-height:1;vertical-align:-1px;margin-right:2px}.dash-task-card.is-pinned{outline:2px solid color-mix(in srgb,var(--accent) 50%,transparent);outline-offset:-2px}.dash-dod-bar{margin-top:6px;height:4px;border-radius:2px;background:#7f7f7f26;overflow:hidden}.dash-dod-fill{height:100%;transition:width .3s ease;border-radius:2px}.ship-toast-layer{position:fixed;bottom:18px;right:18px;display:flex;flex-direction:column;gap:8px;z-index:9999;pointer-events:none}.ship-toast{pointer-events:auto;display:flex;align-items:center;gap:10px;min-width:280px;max-width:360px;padding:10px 14px;background:var(--panel);border:1px solid color-mix(in srgb,var(--green) 50%,transparent);border-left:4px solid var(--green);border-radius:8px;box-shadow:0 8px 24px #00000059,0 0 16px -4px color-mix(in srgb,var(--green) 60%,transparent);transform:translate(120%);animation:ship-toast-in .35s cubic-bezier(.2,1.2,.3,1) forwards;cursor:pointer}.ship-toast.out{animation:ship-toast-out .4s ease forwards}@keyframes ship-toast-in{to{transform:translate(0)}}@keyframes ship-toast-out{to{transform:translate(120%);opacity:0}}.ship-toast-avatar{flex-shrink:0;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff}.ship-toast-body{min-width:0}.ship-toast-head{font-size:10.5px;font-weight:700;color:var(--green);letter-spacing:.04em;text-transform:uppercase}.ship-toast-title{font-size:13.5px;font-weight:600;line-height:1.2;margin:1px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ship-toast-meta{font-size:11px;color:var(--text-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body.tv-mode .ship-toast{min-width:360px;max-width:480px}body.tv-mode .ship-toast-title{font-size:16px}.status-toast-layer{position:fixed;bottom:18px;right:18px;z-index:10000;pointer-events:none}.status-toast{pointer-events:auto;min-width:260px;max-width:420px;border-radius:10px;border:1px solid var(--border);background:var(--bg-card);box-shadow:0 10px 24px #00000059;padding:10px 12px;transform:translateY(6px);opacity:0;animation:status-toast-in .2s ease forwards}.status-toast.success{border-left:4px solid var(--green)}.status-toast.error{border-left:4px solid var(--red)}.status-toast.info{border-left:4px solid var(--accent)}.status-toast.out{animation:status-toast-out .2s ease forwards}.status-toast-message{font-size:12.5px;color:var(--text);line-height:1.35}.status-toast-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.status-toast-btn{padding:4px 8px;font-size:11.5px}@keyframes status-toast-in{to{transform:translateY(0);opacity:1}}@keyframes status-toast-out{to{transform:translateY(6px);opacity:0}}.sync-indicator{position:fixed;left:14px;bottom:14px;z-index:10000;background:color-mix(in srgb,var(--bg-card) 92%,#000);border:1px solid var(--border);border-left:4px solid var(--accent);color:var(--text);border-radius:10px;padding:7px 10px;font-size:11.5px;font-weight:600;box-shadow:0 8px 20px #0000004d}.sync-indicator.offline{border-left-color:var(--orange)}.team-mode{padding:0!important}.team-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.team-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 24px 16px;border-bottom:1px solid var(--border)}.team-header-title{font-size:15px;font-weight:700;color:var(--text)}.team-header-sub{font-size:12px;color:var(--text-faint);margin-top:2px}.team-form-card{padding:18px 24px 20px;border-bottom:1px solid var(--border);background:var(--bg-elev)}.team-form-title{font-size:13px;font-weight:700;color:var(--text-dim);margin-bottom:12px;text-transform:uppercase;letter-spacing:.04em}.team-form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-bottom:10px}.team-form-field{display:flex;flex-direction:column;gap:4px}.team-label{font-size:11px;color:var(--text-faint);font-weight:600;letter-spacing:.02em}.team-form-actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}.team-color-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.team-color-dot{width:20px;height:20px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .12s,border-color .12s;padding:0}.team-color-dot:hover{transform:scale(1.2)}.team-color-dot.selected{border-color:var(--text);transform:scale(1.15)}.team-color-custom{width:26px;height:26px;border-radius:50%;border:2px solid var(--border);padding:0;cursor:pointer;background:none;overflow:hidden}.team-list{list-style:none;margin:0;padding:0}.team-row{border-bottom:1px solid var(--border);transition:background .12s}.team-row:last-child{border-bottom:none}.team-row--open{background:var(--bg-elev)}.team-row-main{display:flex;align-items:center;gap:14px;padding:14px 20px;flex-wrap:wrap}.team-avatar{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;color:#fff;flex-shrink:0;letter-spacing:.04em}.team-row-info{flex:1;min-width:120px}.team-row-name{font-size:14px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:6px}.team-you-badge{font-size:10px;font-weight:700;padding:1px 6px;border-radius:999px;background:rgba(var(--accent-rgb, 209 123 41) / .15);color:var(--accent);letter-spacing:.03em;text-transform:uppercase}.team-row-meta{font-size:12px;color:var(--text-faint);margin-top:2px}.team-row-details{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.team-row-cap,.team-row-pay{font-size:12px;color:var(--text-faint);font-variant-numeric:tabular-nums}.team-role-badge{font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;letter-spacing:.04em;text-transform:uppercase}.team-role-badge--admin{background:#5b8cff26;color:#5b8cff}.team-role-badge--member{background:#6bb25a26;color:var(--green)}.team-role-badge--viewer{background:#8f7f6a26;color:var(--gray)}.team-row-actions{display:flex;align-items:center;gap:6px;flex-shrink:0;margin-left:auto}.team-delete-confirm{display:flex;gap:6px;align-items:center}.team-inline-form{padding:14px 20px 18px 72px;border-top:1px solid var(--border);background:var(--bg-elev)}.team-pw-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.team-pw-row .modal-input{flex:1;min-width:180px}.team-pw-ok{font-size:13px;color:var(--green);font-weight:600;padding:4px 0}@media (max-width: 640px){.team-inline-form{padding-left:20px}.team-form-grid{grid-template-columns:1fr}.team-row-details{display:none}}.lunch-egg-hint{position:fixed;right:14px;bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:1200;display:flex;align-items:stretch;gap:0;border-radius:14px;overflow:hidden;border:1px solid rgba(255,190,120,.45);background:linear-gradient(145deg,#2a2016f0,#18120cf5);box-shadow:0 10px 28px #00000047;animation:lunch-egg-in .45s cubic-bezier(.2,.9,.2,1) both}body:has(.mobile-bottom-nav) .lunch-egg-hint{bottom:calc(62px + env(safe-area-inset-bottom,0px))}@keyframes lunch-egg-in{0%{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.lunch-egg-trigger{display:flex;align-items:center;gap:10px;padding:10px 12px 10px 14px;border:0;background:transparent;color:#ffe8c8;cursor:pointer;text-align:left;min-width:0}.lunch-egg-trigger:hover{background:#ffbe7814}.lunch-egg-icon{font-size:28px;line-height:1;animation:lunch-egg-wiggle 2.8s ease-in-out infinite;transform-origin:center bottom}@keyframes lunch-egg-wiggle{0%,to{transform:rotate(-8deg) scale(1)}50%{transform:rotate(8deg) scale(1.06)}}.lunch-egg-copy{display:flex;flex-direction:column;gap:1px;min-width:0}.lunch-egg-label{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#ffdca0d1}.lunch-egg-countdown{font-size:13px;font-weight:600;color:#fff3df;white-space:nowrap}.lunch-egg-dismiss{width:34px;border:0;border-left:1px solid rgba(255,190,120,.18);background:transparent;color:#ffdca0b8;font-size:18px;line-height:1;cursor:pointer}.lunch-egg-dismiss:hover{background:#ffbe781a;color:#fff3df}.lunch-tv-ships--ambient{position:fixed;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none}@media (prefers-reduced-motion: reduce){.lunch-egg-hint,.lunch-egg-icon{animation:none!important}}.lunch-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9998;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 40%,#ffc8782e,#000000e0 60%,#000000f5);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:lunch-overlay-in .5s ease forwards;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none}.lunch-game-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:2;touch-action:none;display:block}.lunch-overlay--bomb{animation:lunch-overlay-in .5s ease forwards,lunch-bomb-flash .5s ease forwards}@keyframes lunch-bomb-flash{0%{box-shadow:inset 0 0 #dc323200}20%{box-shadow:inset 0 0 100px 40px #dc3232d9}to{box-shadow:inset 0 0 #dc323200}}.lunch-overlay--miss{animation:lunch-overlay-in .5s ease forwards,lunch-miss-flash .38s ease forwards}@keyframes lunch-miss-flash{0%{box-shadow:inset 0 0 #ff641e00}25%{box-shadow:inset 0 0 60px 20px #ff641e8c}to{box-shadow:inset 0 0 #ff641e00}}body.tv-mode .lunch-overlay--tv-dash{background:radial-gradient(circle at 50% 42%,rgba(255,210,150,.14) 0%,transparent 45%),radial-gradient(circle at 50% 100%,#281c108c,#120e0ad1 65%)}.lunch-overlay.out{animation:lunch-overlay-out .4s ease forwards}@keyframes lunch-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes lunch-overlay-out{0%{opacity:1}to{opacity:0}}.lunch-tv-ships{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;pointer-events:none;overflow:visible}body:not(.tv-mode) .lunch-tv-ships{display:none!important}.lunch-tv-sticky{position:absolute;padding:0;transform:rotate(var(--note-tilt, 0deg));filter:drop-shadow(0 8px 14px rgba(0,0,0,.35))}.lunch-tv-sticky-inner{position:relative;padding:12px 14px 14px;border-radius:8px;border:1px solid #bca06f;background-color:#e8dda2;background-image:radial-gradient(circle at 12% 18%,rgba(255,255,255,.35) .6px,transparent 1.2px),radial-gradient(circle at 68% 44%,rgba(90,62,32,.11) .7px,transparent 1.3px);background-size:9px 9px,11px 11px;font-family:var(--note-font, cursive);text-align:left}.lunch-tv-sticky[data-note-hue="1"] .lunch-tv-sticky-inner{background-color:#d3e2ec;border-color:#8fafc4}.lunch-tv-sticky[data-note-hue="2"] .lunch-tv-sticky-inner{background-color:#ecd3dc;border-color:#c49aab}.lunch-tv-sticky[data-note-hue="3"] .lunch-tv-sticky-inner{background-color:#d6e4be;border-color:#9db07a}.lunch-tv-sticky[data-note-hue="4"] .lunch-tv-sticky-inner{background-color:#e9d8b6;border-color:#c4a574}.lunch-tv-sticky[data-has-tape] .lunch-tv-sticky-inner:before{content:"";position:absolute;top:-8px;left:50%;transform:translate(-50%) rotate(-2deg);width:52px;height:13px;border-radius:2px;background:#e4cea8eb;box-shadow:0 1px 3px #0003}.lunch-tv-sticky-task{font-size:clamp(14px,1.4vw,20px);font-weight:800;line-height:1.25;color:var(--text);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.lunch-tv-sticky-meta{margin-top:8px;font-size:clamp(11px,1.05vw,14px);color:var(--text-dim);font-family:Avenir Next,Plus Jakarta Sans,Segoe UI,sans-serif;font-weight:600;opacity:.92}.lunch-card{position:relative;text-align:center;padding:48px 60px;border-radius:24px;background:linear-gradient(160deg,#2a1f14,#1a1410);border:1px solid rgba(255,180,100,.35);box-shadow:0 30px 80px #0009,0 0 60px #ffb46426;max-width:520px;animation:lunch-card-in .7s cubic-bezier(.2,1.3,.35,1) forwards;z-index:10}.lunch-card--game{padding:28px 44px 30px;max-width:420px;pointer-events:none;background:#120c06bf;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-color:#ffb46447;box-shadow:0 16px 48px #0000008c,0 0 40px #ffb4641f}.lunch-card--game .lunch-skip{pointer-events:auto}.lunch-game-score-badge{display:inline-block;margin-bottom:18px;padding:5px 18px;border-radius:999px;background:#ffb4641a;border:1px solid rgba(255,180,100,.28);font-size:13px;color:#f0d8b8;font-weight:600}.lunch-game-score-badge strong{color:#ffd28a;font-size:16px;font-variant-numeric:tabular-nums;margin-left:4px}.lunch-gameover{position:absolute;top:0;right:0;bottom:0;left:0;z-index:12;display:flex;align-items:center;justify-content:center;animation:lunch-gameover-in .45s cubic-bezier(.2,1.2,.4,1) forwards}@keyframes lunch-gameover-in{0%{opacity:0;transform:scale(.85)}60%{opacity:1;transform:scale(1.04)}to{opacity:1;transform:scale(1)}}.lunch-gameover-card{text-align:center;padding:40px 52px 36px;border-radius:28px;background:linear-gradient(160deg,#1e1510,#140f0a);border:1px solid rgba(255,100,80,.4);box-shadow:0 0 0 1px #ff3c281f,0 30px 80px #000000bf,0 0 70px #ff50322e;max-width:400px;width:88vw}.lunch-gameover-icon{font-size:72px;margin-bottom:8px;filter:drop-shadow(0 4px 16px rgba(255,60,40,.5));animation:lunch-gameover-icon-in .6s cubic-bezier(.2,1.4,.4,1) .1s both}@keyframes lunch-gameover-icon-in{0%{transform:scale(0) rotate(-20deg)}to{transform:scale(1) rotate(0)}}.lunch-gameover-title{font-size:42px;font-weight:900;letter-spacing:-.02em;background:linear-gradient(90deg,#ff7a54,#f42,#ff7a54);background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:lunch-title-shine 3s linear infinite;margin-bottom:24px}.lunch-gameover-scores{display:flex;flex-direction:column;gap:8px;margin-bottom:28px}.lunch-gameover-score-row{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:10px 18px;border-radius:12px;background:#ffb46412;border:1px solid rgba(255,180,100,.15)}.lunch-gameover-score-label{font-size:13px;color:#a08060;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.lunch-gameover-score-val{font-size:36px;font-weight:900;color:#ffd28a;font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1}.lunch-gameover-score-val--hi{color:gold;text-shadow:0 0 18px rgba(255,215,0,.55)}.lunch-gameover-actions{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.lunch-gameover-btn{display:block;width:100%;padding:12px 24px;border-radius:999px;font-size:15px;font-weight:700;cursor:pointer;transition:opacity .15s,transform .1s,background .15s;border:1px solid rgba(255,180,100,.3);background:transparent;color:#f0d8b8;opacity:.8}.lunch-gameover-btn:hover{opacity:1;background:#ffb46414}.lunch-gameover-btn:active{transform:scale(.97)}.lunch-gameover-btn--primary{background:linear-gradient(135deg,#d17b29,#e8512a);border-color:transparent;color:#fff;opacity:1;box-shadow:0 4px 18px #d17b2966}.lunch-gameover-btn--primary:hover{background:linear-gradient(135deg,#e08830,#f05a30);opacity:1}.lunch-gameover-hint{font-size:12px;color:#a08060b3}.lunch-gameover-score-row--team{border-color:#ffd25040;background:#ffd2500f}.lunch-gameover-score-val--team{color:#ffe066;text-shadow:0 0 14px rgba(255,220,80,.4)}.lunch-leaderboard{margin-bottom:16px;text-align:left;width:100%}.lunch-leaderboard--live{margin-top:10px;margin-bottom:12px}.lunch-leaderboard-title{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#a08060cc;margin-bottom:8px;text-align:center}.lunch-leaderboard-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.lunch-leaderboard-row{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:10px;background:#ffb4640f;border:1px solid rgba(255,180,100,.1);transition:background .15s,border-color .15s}.lunch-leaderboard-row--me{background:#ffb4642e;border-color:#ffb46473}.lunch-leaderboard-rank{font-size:15px;width:24px;text-align:center;flex-shrink:0}.lunch-leaderboard-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;opacity:.85}.lunch-leaderboard-name{flex:1;font-size:13px;font-weight:600;color:#f0d8b8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lunch-leaderboard-row--me .lunch-leaderboard-name{color:#ffd28a}.lunch-leaderboard-score{font-size:16px;font-weight:800;color:#ffd28a;font-variant-numeric:tabular-nums;flex-shrink:0}.lunch-leaderboard-empty{font-size:12px;color:#a08060b3;text-align:center;padding:8px 0;font-style:italic}.lunch-leaderboard-reset{font-size:10px;color:#a080608c;text-align:center;margin-top:-4px;margin-bottom:10px;letter-spacing:.03em}.lunch-team-badge{display:inline-block;margin-bottom:14px;padding:5px 16px;border-radius:999px;background:#ffd25014;border:1px solid rgba(255,210,80,.25);font-size:13px;color:#f0d8b8;font-weight:600}.lunch-team-badge strong{color:#ffe066;font-size:15px;font-variant-numeric:tabular-nums;margin:0 2px}.lunch-team-players{font-size:11px;color:#c8aa6eb3}@keyframes lunch-card-in{0%{transform:scale(.6) translateY(40px);opacity:0}60%{transform:scale(1.05) translateY(-4px);opacity:1}to{transform:scale(1) translateY(0)}}.lunch-title{font-size:56px;font-weight:800;letter-spacing:-.02em;background:linear-gradient(90deg,#ffd28a,#ff9b54,#ffd28a);background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:lunch-title-shine 4s linear infinite;margin-bottom:14px}@keyframes lunch-title-shine{0%{background-position:0% 50%}to{background-position:200% 50%}}.lunch-sub{font-size:18px;color:#f0d8b8;margin-bottom:16px}.lunch-sub b{color:#ffd28a;font-weight:700}.lunch-countdown{display:inline-block;padding:8px 20px;border-radius:999px;background:#ffb4641f;border:1px solid rgba(255,180,100,.35);font-size:15px;font-weight:600;color:#ffd28a;font-variant-numeric:tabular-nums;margin-bottom:22px}.lunch-skip{display:block;margin:0 auto;background:transparent;border:1px solid rgba(255,180,100,.25);color:#f0d8b8;opacity:.7;padding:7px 18px;border-radius:999px;font-size:12px;cursor:pointer;transition:opacity .15s,background .15s}.lunch-skip:hover{opacity:1;background:#ffb4641a}body.tv-mode .lunch-card{padding:70px 90px;max-width:720px}body.tv-mode .lunch-card--game{padding:36px 60px 40px;max-width:520px}body.tv-mode .lunch-title{font-size:88px}body.tv-mode .lunch-sub{font-size:24px}body.tv-mode .lunch-countdown{font-size:19px;padding:10px 26px}@media (max-width: 640px){.lunch-card{padding:36px 28px;max-width:92vw}.lunch-card--game{padding:20px 24px 22px;max-width:88vw}.lunch-title{font-size:40px}}.ship-splash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;align-items:center;justify-content:center;cursor:pointer;background:radial-gradient(ellipse at 45% 100%,rgba(52,34,18,.35),transparent 52%),repeating-linear-gradient(14deg,rgba(65,42,22,.07),rgba(65,42,22,.07) 2px,transparent 2px,transparent 8px),linear-gradient(160deg,#7d5c40,#6b4b32 55%,#5a3f2a);animation:shipSplashBoardIn .35s ease-out}.ship-splash.out{animation:shipSplashBoardOut .55s ease forwards;pointer-events:none}@keyframes shipSplashBoardIn{0%{opacity:0}to{opacity:1}}@keyframes shipSplashBoardOut{to{opacity:0}}.ship-splash-board{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.35;background:radial-gradient(circle at 20% 30%,rgba(255,240,210,.12),transparent 40%),radial-gradient(circle at 80% 70%,rgba(40,24,12,.15),transparent 45%)}.ship-splash-note-layer{position:relative;z-index:2;width:min(420px,88vw);min-height:200px;display:grid;place-items:center;perspective:900px;pointer-events:none}.ship-splash-note{position:relative;width:100%;padding:28px 26px 24px;text-align:center;border-radius:8px;border:1px solid #c4a574;background-color:#e8dda2;background-image:radial-gradient(circle at 12% 18%,rgba(255,255,255,.35) .6px,transparent 1.2px),radial-gradient(circle at 68% 44%,rgba(90,62,32,.11) .7px,transparent 1.3px);background-size:9px 9px,11px 11px;box-shadow:0 14px 28px #2a1a0c59,0 2px #ffffff59 inset;clip-path:polygon(0 0,100% 0,100% calc(100% - 14px),98% calc(100% - 12px),94% 100%,88% calc(100% - 10px),82% 100%,76% calc(100% - 11px),70% 100%,64% calc(100% - 9px),58% 100%,52% calc(100% - 12px),46% 100%,40% calc(100% - 10px),34% 100%,28% calc(100% - 11px),22% 100%,16% calc(100% - 9px),10% 100%,4% calc(100% - 12px),0 100%);transform-origin:50% 8%;--rip-tilt: -2deg;animation:shipNoteRipSequence 3.1s cubic-bezier(.4,.02,.2,1) forwards}.ship-splash.out .ship-splash-note{animation:shipNoteTearAwayQuick .45s ease-in forwards}@keyframes shipNoteRipSequence{0%{opacity:0;transform:translateY(18px) rotate(calc(var(--rip-tilt) - 3deg)) scale(.94);filter:blur(1px)}12%{opacity:1;transform:translateY(0) rotate(var(--rip-tilt)) scale(1);filter:blur(0)}22%{transform:translateY(6px) rotate(calc(var(--rip-tilt) + 2deg)) scale(1.02)}32%{transform:translateY(0) rotate(var(--rip-tilt)) scale(1)}to{opacity:0;transform:translateY(-22vh) translate(min(78vw,640px)) rotate(calc(var(--rip-tilt) + 38deg)) skew(-5deg) scale(.86);filter:blur(0)}}@keyframes shipNoteTearAwayQuick{to{opacity:0;transform:translateY(-12vh) translate(min(52vw,420px)) rotate(calc(var(--rip-tilt) + 26deg)) skew(-4deg) scale(.84)}}.ship-splash-note-tear{position:absolute;left:4%;right:4%;bottom:-2px;height:14px;pointer-events:none;opacity:.65;background:repeating-linear-gradient(90deg,transparent 0 6px,rgba(90,62,32,.14) 6px 7px)}.ship-splash-tape{position:absolute;top:-10px;left:50%;transform:translate(-50%) rotate(-2deg);width:72px;height:18px;border-radius:2px;background:#e4cea8eb;box-shadow:0 2px 4px #261a0c38}.ship-splash-pin{position:absolute;top:-9px;right:22%;width:13px;height:13px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#ddd 35%,#c45449 72%);box-shadow:0 2px 3px #261a0c59}.ship-splash-head{font-family:var(--note-font, cursive);font-size:14px;letter-spacing:.12em;font-weight:800;color:var(--accent);text-transform:uppercase;margin:6px 0 12px}.ship-splash-title{font-family:var(--note-font, cursive);font-size:clamp(22px,5vw,32px);font-weight:800;line-height:1.2;color:var(--text);margin-bottom:16px}.ship-splash-by{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center;font-size:13px;color:var(--text-dim);padding:8px 12px;border-radius:8px;background:#ffffff59;border:1px dashed rgba(148,118,82,.45)}.ship-splash-avatar{width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:12px}@media (prefers-reduced-motion: reduce){.ship-splash-note{animation:none;opacity:1;transform:rotate(var(--rip-tilt))}.ship-splash.out .ship-splash-note{animation:none;opacity:0}}.dash-clock{display:flex;align-items:center;gap:14px;padding:10px 22px 10px 14px;background-color:#efe3ad;background-image:radial-gradient(circle at 12% 18%,rgba(255,255,255,.34) .7px,transparent 1.4px),radial-gradient(circle at 68% 44%,rgba(90,62,32,.11) .8px,transparent 1.6px);background-size:10px 10px,12px 12px;border:1px solid #b79b73;border-radius:10px;position:relative;box-shadow:0 8px 18px #39271633,0 2px #ffffff57 inset;transform:rotate(-1.2deg)}.dash-clock:before{content:"";position:absolute;top:-8px;left:50%;transform:translate(-50%) rotate(-2deg);width:56px;height:14px;border-radius:2px;background:#e4cea8eb;box-shadow:0 2px 4px #261a0c33;pointer-events:none}.dash-clock-ring{position:relative;width:64px;height:64px;display:inline-flex;align-items:center;justify-content:center;filter:drop-shadow(0 2px 4px rgba(57,39,22,.28))}.dash-clock-ring svg{display:block;width:64px;height:64px}.dash-clock-dot{position:absolute;width:7px;height:7px;border-radius:50%;background:#d88739;box-shadow:0 0 0 1px #39271640,0 0 6px #d8873973;top:50%;left:50%;transform:translate(-3.5px,-32px) rotate(calc(var(--p, 0) * 3.6deg)) translateY(0);transform-origin:3.5px 32px;animation:dashClockPulse 2s ease-in-out infinite}@keyframes dashClockPulse{0%,to{opacity:1}50%{opacity:.55}}.dash-clock-text{display:flex;flex-direction:column;line-height:1.05}.dash-clock-time{font-variant-numeric:tabular-nums;font-weight:800;font-size:26px;letter-spacing:-.02em;color:#2f2318;text-shadow:0 1px 0 rgba(255,255,255,.35)}.dash-clock-time .dash-clock-secs{font-size:.55em;opacity:.55;margin-left:3px;font-weight:600}.dash-clock-meta{font-size:12px;color:#5b4632;text-transform:uppercase;letter-spacing:.08em;margin-top:3px}.dash-clock-phase{color:#3a2a1d;font-weight:700}.dash-hero-clock{justify-content:flex-start}.dash-hero-clock .dash-clock{padding:8px 16px 8px 10px;align-self:flex-start}.dash-hero-clock .dash-clock-ring,.dash-hero-clock .dash-clock-ring svg{width:56px;height:56px}.dash-hero-clock .dash-clock-dot{transform:translate(-3.5px,-28px) rotate(calc(var(--p, 0) * 3.6deg)) translateY(0);transform-origin:3.5px 28px}.dash-hero-clock .dash-clock-time{font-size:22px}body.tv-mode .dash-clock{padding:14px 28px 14px 18px;gap:18px;transform:rotate(-.8deg)}body.tv-mode .dash-clock-ring,body.tv-mode .dash-clock-ring svg{width:84px;height:84px}body.tv-mode .dash-clock-dot{transform:translate(-3.5px,-42px) rotate(calc(var(--p, 0) * 3.6deg)) translateY(0);transform-origin:3.5px 42px}body.tv-mode .dash-clock-time{font-size:36px}body.tv-mode .dash-clock-meta{font-size:14px}.board-area.leads-area{display:flex;flex-direction:column;gap:14px;overflow-y:auto;overflow-x:hidden;align-items:stretch}.leads-hero{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px}.leads-hero-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;background:var(--bg-soft);border:1px solid var(--border);border-radius:12px;padding:14px;position:relative}.leads-kpi{padding:10px 12px;border-radius:8px;background:linear-gradient(180deg,#ffffff05,#0000000d);border:1px solid var(--border);min-width:0}.leads-kpi.warn{border-color:#ff6b6b73;background:#ff6b6b0f}.leads-kpi-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.leads-kpi-value{font-size:22px;font-weight:700;line-height:1.1;margin-top:4px}.leads-kpi-sub{font-size:12px;color:var(--text-faint);margin-top:4px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.leads-hero-actions{position:absolute;top:10px;right:12px;display:flex;align-items:center;z-index:1}.leads-funnel{background:var(--bg-soft);border:1px solid var(--border);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:4px;min-width:0}.leads-funnel-row{display:grid;grid-template-columns:minmax(110px,130px) minmax(0,1fr) minmax(80px,100px);align-items:center;gap:10px;background:transparent;border:0;padding:6px 4px;text-align:left;cursor:pointer;color:var(--text);border-radius:6px;transition:background .15s;width:100%;font:inherit}.leads-funnel-row:hover{background:#7f7f7f14}.leads-funnel-name{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.leads-funnel-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}.leads-funnel-bar{height:10px;background:#7f7f7f1a;border-radius:5px;overflow:hidden;min-width:0}.leads-funnel-fill{display:block;height:100%;border-radius:5px;transition:width .3s}.leads-funnel-val{display:flex;flex-direction:column;align-items:flex-end;line-height:1.15;min-width:0}.leads-funnel-val b{font-size:14px;font-variant-numeric:tabular-nums}.leads-funnel-money{font-size:11px;color:var(--text-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.leads-toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.leads-search{flex:1 1 240px;min-width:min(100%,200px);padding:9px 13px;font-size:14px;background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text)}.leads-search:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #2ec4b633}.leads-filter-chips{display:flex;gap:6px;flex-wrap:wrap}.leads-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;font-size:13px;font-weight:600;background:var(--bg);color:var(--text-faint);border:1px solid var(--border);border-radius:999px;cursor:pointer;transition:all .15s;white-space:nowrap}.leads-chip:hover{color:var(--text);border-color:var(--accent)}.leads-chip span{font-variant-numeric:tabular-nums;opacity:.7}.leads-chip.active{background:var(--accent);color:#fff;border-color:var(--accent)}.leads-chip.active span{opacity:1}.leads-board{display:flex;gap:12px;align-items:stretch;overflow-x:auto;overflow-y:hidden;padding-bottom:10px;flex:1 1 auto;min-height:380px;scroll-snap-type:x proximity}.leads-board>.lead-group{flex:0 0 clamp(240px,19vw,300px);display:flex;flex-direction:column;gap:8px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:10px;scroll-snap-align:start;min-height:0;max-height:100%}.leads-board>.lead-group .group-header{margin:0}.leads-board .lead-col{display:flex;flex-direction:column;gap:8px;overflow-y:auto;flex:1 1 auto;min-height:60px;padding-right:2px}.lead-col-header{border-left:4px solid var(--stage-color, var(--accent));padding-left:8px}.lead-col-bar{height:4px;margin:2px 4px 4px;background:#7f7f7f1f;border-radius:2px;overflow:hidden}.lead-col-bar>span{display:block;height:100%;transition:width .3s}.lead-col-empty{color:var(--text-faint);font-size:11px;font-style:italic;padding:16px 6px;text-align:center}.lead-jump-flash{animation:leadJumpFlash 1.2s ease}@keyframes leadJumpFlash{0%{box-shadow:0 0 #2ec4b600}30%{box-shadow:0 0 0 4px #2ec4b659}to{box-shadow:0 0 #2ec4b600}}.lead-tile{display:flex;flex-direction:column;gap:4px;padding:10px 11px;cursor:grab}.lead-tile-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.lead-tile-title{font-weight:700;font-size:13px;line-height:1.25;flex:1;min-width:0;word-break:break-word}.lead-tile-owner{flex:0 0 auto;width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:10px;font-weight:700}.lead-tile-contact{font-size:11px;color:var(--text-faint)}.lead-tile-value{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-top:4px}.lead-tile-money{font-weight:700;font-size:14px;font-variant-numeric:tabular-nums}.lead-tile-recurring{font-size:11px;font-weight:600;color:#7eb8ff;font-variant-numeric:tabular-nums;margin-top:2px}.lead-tile-prob{font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}.lead-tile-prob-bar{height:4px;background:#7f7f7f26;border-radius:2px;overflow:hidden}.lead-tile-prob-bar>span{display:block;height:100%;transition:width .3s}.lead-tile-next{font-size:11px;color:var(--text-faint);background:#7f7f7f14;padding:4px 6px;border-radius:4px;margin-top:4px;word-break:break-word}.lead-tile-next.overdue{color:#ff6b6b;background:#ff6b6b14;font-weight:600}.lead-tile-next.missing{color:var(--text-faint);font-style:italic;opacity:.6}.lead-tile-foot{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--text-faint);margin-top:2px;text-transform:uppercase;letter-spacing:.04em;gap:6px}.lead-tile-source{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.lead-tile-stale,.lead-tile-fresh{white-space:nowrap;flex:0 0 auto}.lead-tile-stale{font-weight:700}@media (max-width: 1100px){.leads-hero{grid-template-columns:1fr}.leads-hero-kpis{grid-template-columns:repeat(2,minmax(0,1fr));padding-top:48px}.leads-hero-actions{top:10px;right:12px}}@media (max-width: 640px){.leads-hero-kpis{grid-template-columns:1fr}}.lead-linked-row{display:flex;align-items:center;gap:10px;background:linear-gradient(135deg,#2ec4b61f,#ff9f5a17);border:1px solid rgba(43,212,164,.35);border-radius:8px;padding:10px 12px;margin:4px 0 6px}.lead-linked-icon{font-size:18px}.lead-linked-text{flex:1;min-width:0;line-height:1.2}.lead-linked-label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint);font-weight:600}.lead-linked-name{font-size:13px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lead-linked-note{font-size:11px;color:var(--text-faint);margin:0 0 12px 2px;padding-left:4px}.lead-tile-linked{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:#2bd4a4;background:#2bd4a41a;border:1px solid rgba(43,212,164,.3);border-radius:6px;padding:3px 7px;margin-top:4px;cursor:pointer;transition:all .15s;align-self:flex-start;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lead-tile-linked:hover{background:#2bd4a433;border-color:#2bd4a48c}.lead-link-picker-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;background:#080a108c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:24px}.lead-link-picker{width:min(560px,96vw);max-height:80vh;overflow:hidden;background:var(--bg-soft);border:1px solid var(--border);border-radius:12px;padding:16px;box-shadow:0 20px 60px #00000073;display:flex;flex-direction:column}.lead-link-picker-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}.lead-link-picker-title{font-size:15px;font-weight:700}.lead-link-picker-sub{font-size:12px;color:var(--text-faint);margin-top:2px}.lead-link-picker-list{display:flex;flex-direction:column;gap:4px;overflow-y:auto;border:1px solid var(--border);border-radius:8px;background:var(--bg);padding:4px;max-height:50vh}.lead-link-option{display:block;width:100%;text-align:left;background:transparent;border:0;padding:8px 10px;border-radius:6px;cursor:pointer;color:var(--text);transition:background .12s}.lead-link-option:hover{background:#2ec4b624}.lead-link-option-name{font-size:14px;font-weight:600}.lead-link-option-meta{font-size:12px;color:var(--text-faint);margin-top:2px;line-height:1.35}.lead-tile-linked-task{color:#f5c451;background:#f5c4511a;border-color:#f5c4514d}.lead-tile-linked-task:hover{background:#f5c45133;border-color:#f5c4518c}.lead-linked-row.lead-linked-task{background:linear-gradient(135deg,#ffd16624,#2ec4b614);border-color:#f5c45159}#boardList li.paused .board-name{color:var(--text-faint);font-style:italic}#boardList li.paused .dot{background:#f5c451!important;box-shadow:0 0 6px #f5c45180}#boardList li.paused:before{content:"⏸";position:absolute;right:28px;font-size:11px;color:#f5c451;opacity:.7}.paused-banner{display:flex;align-items:center;gap:14px;background:linear-gradient(135deg,#f5c4511a,#f5c4510a);border:1px solid rgba(245,196,81,.4);border-left:4px solid #f5c451;border-radius:10px;padding:14px 18px;margin-bottom:14px}.paused-banner-icon{font-size:28px;line-height:1;color:#f5c451;filter:drop-shadow(0 0 8px rgba(245,196,81,.5))}.paused-banner-text{flex:1;min-width:0}.paused-banner-title{font-weight:800;font-size:15px;color:#f5c451;letter-spacing:.02em}.paused-banner-sub{font-size:12px;color:var(--text-faint);margin-top:2px;line-height:1.4}.completed-banner{display:flex;align-items:center;gap:14px;background:linear-gradient(135deg,#6b9f471f,#6b9f470a);border:1px solid color-mix(in srgb,var(--green) 45%,var(--border) 55%);border-left:4px solid var(--green);border-radius:10px;padding:14px 18px;margin-bottom:14px}.completed-banner-icon{font-size:24px;line-height:1;color:var(--green)}.completed-banner-text{flex:1;min-width:0}.completed-banner-title{font-weight:800;font-size:15px;color:var(--green)}.completed-banner-sub{font-size:12px;color:var(--text-faint);margin-top:2px;line-height:1.4}.board-list-completed .board-nav.is-completed{color:var(--text-faint);font-style:italic}body.phone-ui{font-size:clamp(15px,2.8vw,16px)}body.phone-ui #appShell,body.phone-ui .main{min-height:var(--app-vh, 100dvh)}body.phone-ui .main{display:flex;flex-direction:column;min-height:0}body.phone-ui .topbar{padding:10px 14px}body.phone-ui .topbar-right{display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:thin;width:100%;flex-wrap:wrap}body.phone-ui .topbar-right::-webkit-scrollbar{height:4px}body.phone-ui .topbar-right input[type=search]{flex:1 1 160px;width:auto!important;min-width:min(100%,168px);max-width:none}body.phone-ui .topbar-right .filter{min-width:min(100%,120px)}body.phone-ui .stats{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:10px;padding-left:14px;padding-right:14px}body.phone-ui .board-area{flex:1 1 auto;padding-left:14px;padding-right:14px;padding-top:10px;padding-bottom:calc(76px + env(safe-area-inset-bottom,0px));min-height:0;height:auto;overflow:auto}body.viewport-tall.phone-ui .topbar-right input[type=search]{flex:1 1 148px;min-width:min(100%,148px)}body.viewport-tall.phone-ui .stats{gap:10px}body.viewport-wide.phone-ui .mobile-bottom-nav{max-width:min(980px,var(--app-vw));margin:0 auto;left:0;right:0}body.phone-ui .dash-hero{grid-template-columns:1fr;gap:12px;padding:12px 14px}body.phone-ui .dash-hero .dash-hero-block:not(.dash-hero-cap){display:none}body.phone-ui .dash-alerts{grid-template-columns:1fr}body.phone-ui .dash-people-grid{grid-template-columns:1fr;gap:14px}body.phone-ui #dash_tv{display:none!important}body.phone-ui .board-area.view-grid.capacity-mode,body.phone-ui .board-area.view-grid.timeoff-mode,body.phone-ui .board-area.view-grid.digest-mode,body.phone-ui .board-area.view-grid.oneonone-mode{gap:10px}body.phone-ui .capacity-wrap,body.phone-ui .timeoff-wrap,body.phone-ui .digest-section,body.phone-ui .oneonone-left,body.phone-ui .oneonone-right{padding:10px!important;border-radius:8px!important}.digest-block{background:var(--bg-soft);border:1px solid var(--border);border-radius:10px;padding:14px;margin-bottom:14px}.digest-block-title{font-weight:700;font-size:14px;margin-bottom:8px}.digest-block-count{color:var(--text-faint);font-weight:400}.digest-row-btn{display:block;width:100%;text-align:left;padding:6px 0;border-bottom:1px solid var(--border);border-left:none;border-right:none;border-top:none;font-size:13px;background:none;color:inherit;cursor:pointer}.digest-row-btn:hover{background:#0000000a}.digest-row-meta{color:var(--text-faint)}.digest-row-sub{color:var(--text-faint);font-size:11px}.digest-row{padding:6px 0;border-bottom:1px solid var(--border);font-size:13px}.digest-status-row{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid var(--border);font-size:13px}.digest-status-dot{display:inline-block;flex-shrink:0;width:8px;height:8px;border-radius:50%}.digest-status-name{min-width:120px;font-weight:600}.digest-status-text{flex:1}.digest-status-text--stale{color:var(--text-faint)}.user-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;flex-shrink:0}.capacity-table{width:100%;border-collapse:collapse;font-size:13px}.capacity-table th{text-align:left;padding:8px;border-bottom:1px solid var(--border)}.capacity-table td{padding:8px;border-bottom:1px solid var(--border);vertical-align:middle}.cap-th-dates{color:var(--text-faint);font-weight:400;font-size:11px}.cap-legend{font-size:13px;color:var(--text-faint);margin-bottom:10px}.cap-legend-green{color:var(--green)}.cap-legend-blue{color:var(--accent)}.cap-input{width:64px;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:2px 6px}.cap-bar-row{display:flex;align-items:center;gap:8px}.cap-bar{position:relative;flex:1;background:var(--bg);height:10px;border-radius:5px;overflow:hidden;border:1px solid var(--border)}.cap-bar-fill{position:absolute;top:0;height:100%}.cap-bar-fill--done{left:0;background:var(--green)}.cap-bar-fill--planned{background:var(--accent)}.cap-bar-fill--overflow{right:0;background:repeating-linear-gradient(45deg,var(--red) 0 4px,rgba(185,82,73,.5) 4px 8px)}.cap-bar-summary{min-width:80px;font-weight:600;font-variant-numeric:tabular-nums}.cap-bar-detail{font-size:11px;color:var(--text-faint);margin-top:2px}.cap-pto-badge{color:var(--orange);font-size:11px}.cap-done-text{color:var(--green)}.cap-planned-text{color:var(--accent)}.cap-no-work{color:var(--text-faint)}body.phone-ui .capacity-table,body.phone-ui .timeoff-table{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap}body.phone-ui .capacity-table thead,body.phone-ui .capacity-table tbody,body.phone-ui .timeoff-table thead,body.phone-ui .timeoff-table tbody{display:table;width:max-content;min-width:100%}body.phone-ui .timeoff-form-grid{grid-template-columns:1fr!important;gap:8px!important}body.phone-ui .oneonone-layout{grid-template-columns:1fr!important;gap:10px!important}body.phone-ui .oneonone-right{min-height:0!important}body.phone-ui .leads-toolbar{flex-direction:column;align-items:stretch}body.phone-ui .leads-search{min-width:0;width:100%}body.phone-ui .leads-filter-chips{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}body.phone-ui .mobile-dashboard-mode{display:flex;flex-direction:column;gap:10px}body.phone-ui .mobile-dash-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}body.phone-ui .mobile-dash-stat{background:var(--bg-soft);border:1px solid var(--border);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:2px}body.phone-ui .mobile-dash-stat b{font-size:22px;line-height:1}body.phone-ui .mobile-dash-stat span{font-size:11px;color:var(--text-faint)}body.phone-ui .mobile-dash-users{display:flex;flex-direction:column;gap:10px}body.phone-ui .mobile-dash-user-card{background:var(--bg-soft);border:1px solid var(--border);border-radius:10px;padding:10px}body.phone-ui .mobile-dash-user-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}body.phone-ui .mobile-dash-user-name{font-size:13px;font-weight:700}body.phone-ui .mobile-dash-user-meta{font-size:11px;color:var(--text-faint)}body.phone-ui .mobile-dash-user-list{display:flex;flex-direction:column;gap:6px}body.phone-ui .mobile-dash-task-btn{width:100%;text-align:left;border:1px solid var(--border);border-radius:8px;background:var(--bg-elev);color:var(--text);padding:8px;display:flex;flex-direction:column;gap:2px}body.phone-ui .mobile-dash-task-btn small{color:var(--text-faint);font-size:11px}body.phone-ui .mobile-dash-empty{color:var(--text-faint);font-size:12px;font-style:italic;padding:2px 0}body.phone-ui .mobile-section-mode{display:flex;flex-direction:column;gap:10px}body.phone-ui .mobile-strip-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}body.phone-ui .mobile-strip-stats>div{background:var(--bg-soft);border:1px solid var(--border);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:2px}body.phone-ui .mobile-strip-stats b{font-size:18px}body.phone-ui .mobile-strip-stats span{font-size:11px;color:var(--text-faint)}body.phone-ui .mobile-section-card{background:var(--bg-soft);border:1px solid var(--border);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:8px}body.phone-ui .mobile-section-card h3{margin:0;font-size:13px;display:flex;align-items:baseline;gap:6px}body.phone-ui .mobile-section-card h3 small{color:var(--text-faint);font-weight:500}body.phone-ui .mobile-empty{color:var(--text-faint);font-style:italic;font-size:12px}body.phone-ui .mobile-task-row{width:100%;text-align:left;border:1px solid var(--border);border-radius:8px;background:var(--bg-elev);color:var(--text);padding:8px;display:flex;flex-direction:column;gap:2px}body.phone-ui .mobile-task-row small{color:var(--text-faint);font-size:11px}body.phone-ui .mobile-cap-row{display:flex;justify-content:space-between;gap:8px;padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--bg-elev)}body.phone-ui .mobile-cap-row span{font-size:12px}body.phone-ui .mobile-cap-row small{font-size:11px;color:var(--text-faint)}body.phone-ui .mobile-timeoff-form{display:grid;grid-template-columns:1fr;gap:8px}body.phone-ui .mobile-my-tasks-mode{display:flex;flex-direction:column;gap:10px}body.phone-ui .mobile-task-item{border:1px solid var(--border);border-radius:8px;background:var(--bg-elev);padding:8px;display:grid;grid-template-columns:1fr;gap:8px}body.phone-ui .mobile-task-title{font-size:13px;font-weight:700}body.phone-ui .mobile-task-meta{font-size:11px;color:var(--text-faint);margin-top:2px}body.phone-ui .mobile-task-actions{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}body.phone-ui .mobile-task-status{min-height:40px}.sidebar-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:55;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);animation:backdropIn .2s ease}button.sidebar-backdrop{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;margin:0;padding:0;width:100%;height:100%;cursor:pointer;font:inherit;color:inherit}@keyframes backdropIn{0%{opacity:0}to{opacity:1}}.sidebar-backdrop.visible{display:block}.mobile-bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:70;display:flex;background:var(--bg-elev);border-top:1px solid var(--border-strong);padding-bottom:env(safe-area-inset-bottom,0px)}.mbn-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:8px 4px;background:transparent;border:none;cursor:pointer;color:var(--text-faint);font-family:inherit;min-height:54px;transition:color .15s ease;-webkit-tap-highlight-color:transparent}.mbn-btn:active{background:#ffffff0a}.mbn-btn.active{color:var(--accent)}.mbn-icon{font-size:20px;line-height:1}.mbn-label{font-size:clamp(10px,2.8vw,12px);font-weight:600;letter-spacing:.02em}@media (min-width: 861px){.mobile-bottom-nav,.sidebar-backdrop{display:none!important}}@media (max-width: 860px){body.app-loaded .mobile-bottom-nav{display:flex}.main{padding-bottom:calc(54px + env(safe-area-inset-bottom,0px))}.board-area.view-kanban{flex:1 1 auto;height:auto;min-height:120px}.topbar{padding:8px 12px;flex-direction:column;align-items:stretch;gap:8px}.topbar-left{display:flex;align-items:center;flex-wrap:nowrap;gap:6px;overflow:hidden}body.phone-ui .topbar-left{flex-wrap:wrap;overflow:visible;gap:8px}#sidebarToggleBtn{display:none}.topbar-left h1{font-size:clamp(17px,4vw,19px);line-height:1.25;white-space:normal;overflow:visible;text-overflow:unset;flex:1;min-width:0;max-width:none}.topbar-right{display:flex;gap:6px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px;flex-wrap:nowrap;width:100%}.topbar-right::-webkit-scrollbar{display:none}body.phone-ui .topbar-right{flex-wrap:wrap}body.phone-ui .topbar-right::-webkit-scrollbar{display:block;height:4px}.topbar-right input[type=search]{width:140px;min-width:120px;flex-shrink:0}body.phone-ui .topbar-right input[type=search]{flex:1 1 168px;width:auto!important;min-width:min(100%,168px)}.topbar-right .filter{flex-shrink:0;min-width:100px}.view-toggle button{padding:7px 11px;font-size:13px}}@media (max-width: 600px){.stats{display:flex;flex-direction:row;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:8px;padding:8px 12px}.stats::-webkit-scrollbar{display:none}body.phone-ui .stats::-webkit-scrollbar{display:block;height:4px}.stat{flex:0 0 auto;min-width:90px;max-width:110px}body.phone-ui .stat{min-width:112px;max-width:none;flex:0 0 auto;padding:11px 13px}body.phone-ui .stat-label{font-size:11px;white-space:normal;line-height:1.25}body.phone-ui .stat-value{font-size:19px}.stats .progress-stat{grid-column:unset;flex:0 0 160px;min-width:140px;max-width:180px}body.phone-ui .stats .progress-stat{flex:0 0 min(92vw,220px);min-width:min(92vw,200px);max-width:none}table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap}table thead,table tbody{display:table;width:max-content;min-width:100%}}@media (max-width: 860px){.board-area{padding-bottom:calc(var(--pad-x) + 16px)}}@media (max-width: 600px){.modal{align-items:flex-end;padding:0}.modal-card{width:100%;max-width:100%;max-height:92dvh;border-radius:18px 18px 0 0;animation:sheetSlideUp .28s cubic-bezier(.2,.9,.3,1)}@keyframes sheetSlideUp{0%{transform:translateY(40px);opacity:.6}to{transform:translateY(0);opacity:1}}.modal-header{padding-top:12px}.modal-header:before{content:"";display:block;width:36px;height:4px;background:var(--border-strong);border-radius:2px;margin:0 auto 10px}.modal-row{grid-template-columns:1fr;gap:10px}.modal-body{padding:14px 12px calc(16px + env(safe-area-inset-bottom,0px))}.modal-actions{position:sticky;bottom:0;z-index:1;margin:12px -12px -14px;padding:12px;background:linear-gradient(to top,#fff5df 78%,#fff5dfeb);border-top:1px solid rgba(0,0,0,.06);justify-content:stretch;flex-wrap:wrap}.modal-actions>button{flex:1 1 100%}.comment-form{flex-direction:column}.comment-form button{align-self:stretch}.proof-list{grid-template-columns:1fr}.users-table{min-width:640px}.modal-body [style*="display:grid"][style*=grid-template-columns]{grid-template-columns:1fr!important}.modal-body [style*="grid-column:1 / -1"]{grid-column:auto!important}}@media (max-width: 600px){.floating-menu{max-width:92vw;right:auto!important;max-height:60vh}}@media (pointer: coarse){.tile-actions{opacity:1!important}.board-list li .board-del{opacity:.7}.tile-pill{padding:6px 11px;font-size:12px}.add-tile{min-height:56px}.view-kanban .tiles{gap:12px}}@media (max-width: 860px){.leads-board{min-height:320px}}@media (max-width: 600px){.dash-header{flex-direction:column;align-items:flex-start;gap:10px;padding:14px}.dash-header-right{flex-wrap:wrap;gap:10px}.dash-people-grid,.dash-alerts{grid-template-columns:1fr}.dash-clock-time{font-size:20px}body.phone-ui .board-area.dashboard-mode{padding-left:14px;padding-right:14px}.board-area.dashboard-mode{padding-left:10px;padding-right:10px;padding-bottom:calc(74px + env(safe-area-inset-bottom,0px))}.dash-client-review-age{font-size:12px}}.board-area.dashboard-mode.dashboard-phone-mode .dash-person-col{overflow-y:visible;min-height:unset;max-height:none}.board-area.dashboard-mode.dashboard-phone-mode .dash-people-grid{grid-auto-rows:auto}.board-area.dashboard-mode.dashboard-phone-mode .dash-person-head{flex-wrap:wrap;gap:8px}.board-area.dashboard-mode.dashboard-phone-mode .dash-person-spark{margin-left:auto}.dash-phone-filters{border:1px solid var(--border);border-radius:10px;background:var(--bg-card);overflow:hidden}.dash-phone-filters-summary{font-weight:700;font-size:15px;line-height:1.35;padding:14px 16px;cursor:pointer;list-style:none}.dash-phone-filters-summary::-webkit-details-marker{display:none}.dash-phone-filters[open] .dash-phone-filters-summary{border-bottom:1px solid var(--border)}.dash-phone-filters .dash-chips-phone{flex-wrap:wrap;padding:12px 14px 14px;gap:10px}body.phone-ui .login-screen{padding-top:max(12px,var(--safe-top));padding-right:max(12px,var(--safe-right));padding-bottom:max(12px,var(--safe-bottom));padding-left:max(12px,var(--safe-left));box-sizing:border-box}@media (max-width: 860px){.sidebar{padding-top:max(18px,var(--safe-top))}.sidebar .ghost-btn{min-height:40px}.board-list li{padding:9px 10px}}@media (max-width: 860px){#boardList li.paused:before{right:34px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.tile-pill-select{font:inherit;font-size:11px;font-weight:700;border-radius:999px;border:1px solid var(--border);padding:2px 10px;background:var(--bg-tile);color:var(--text);cursor:pointer;max-width:100%}.board-list button.board-nav{width:100%;justify-content:flex-start;text-align:left;gap:8px}.board-paused-pip{font-size:11px;opacity:.55;margin-left:auto;flex-shrink:0}.board-list button.board-nav.active-board,.sidebar .ghost-btn.active{border-color:color-mix(in srgb,var(--accent) 55%,var(--border) 45%);background:color-mix(in srgb,var(--accent) 14%,var(--bg-elev) 86%);color:var(--text);font-weight:650}.workspace-empty{padding:clamp(20px,4vw,36px);max-width:36rem}.workspace-empty h2{margin:0 0 8px;font-size:1.15rem}.workspace-empty p{margin:0;color:var(--text-faint);line-height:1.5}.workspace-empty .primary-btn{margin-top:16px}.board-search-empty{margin:0 0 12px;padding:10px 14px;border-radius:10px;border:1px dashed var(--border);background:var(--bg-soft);color:var(--text-faint);font-size:13px;display:flex;flex-wrap:wrap;align-items:center;gap:8px}.read-only-banner{display:flex;flex-direction:column;gap:4px;margin:0 0 12px;padding:12px 14px;border-radius:12px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border) 65%);background:color-mix(in srgb,var(--accent) 8%,var(--bg-elev) 92%)}.read-only-banner-title{font-size:13px;font-weight:650}.read-only-banner-sub{font-size:12px;color:var(--text-faint);line-height:1.45}.modal-inline-alert{margin:0 16px 12px;padding:10px 12px;border-radius:10px;border:1px solid color-mix(in srgb,var(--red) 45%,var(--border) 55%);background:color-mix(in srgb,var(--red) 8%,var(--bg-elev) 92%);color:var(--red);font-size:13px}.modal-close-guard,.modal-delete-confirm{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 16px 12px;padding:10px 12px;border-radius:10px;border:1px dashed var(--border);background:var(--bg-soft);font-size:13px}.modal-close-guard-actions{display:flex;flex-wrap:wrap;gap:8px}.recurrence-hint{font-size:11px;color:var(--text-faint);margin-top:4px;line-height:1.4}.group.dnd-active{transition:box-shadow .12s ease,background .12s ease}.group.dnd-active .tiles.drop-ready{min-height:72px}.group.dnd-over{outline:2px dashed var(--accent);outline-offset:2px;box-shadow:0 0 0 4px #2ec4b624;background:radial-gradient(140% 120% at 50% 0%,rgba(46,196,182,.12),transparent 52%),#f8f1e1}.group.dnd-over .tiles.drop-ready{border-color:var(--accent);background:#2ec4b61f}.group-drop-pad{flex:1 1 auto;min-height:56px;margin-top:4px;display:flex;align-items:center;justify-content:center;border:1.5px dashed color-mix(in srgb,var(--accent) 55%,transparent);border-radius:10px;color:var(--text-faint);font-size:12px;letter-spacing:.02em;pointer-events:none;-webkit-user-select:none;user-select:none}.group.dnd-over .group-drop-pad{border-color:var(--accent);border-style:solid;color:color-mix(in srgb,var(--accent) 70%,var(--text-faint));background:#2ec4b61a;font-weight:600}.placeholder-section{padding:clamp(14px,2.2vw,24px)}.placeholder-card{max-width:760px;background:var(--bg-elev);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-sm);padding:clamp(14px,2vw,22px)}.placeholder-card h2{margin:0 0 8px}.placeholder-card p{margin:0;color:var(--text-faint);line-height:1.45}.dash-phone-glance{margin-top:10px;padding:10px;border:1px solid var(--border);border-radius:12px;background:var(--bg-elev)}.dash-phone-glance-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.dash-phone-glance-head h3{margin:0;font-size:14px}.dash-phone-glance-head span{font-size:11px;color:var(--text-faint)}.dash-phone-glance-chips{display:flex;gap:6px;margin-top:8px;overflow-x:auto}.dash-phone-chip{border:1px solid var(--border);border-radius:999px;background:var(--bg-card);color:var(--text);font-size:12px;padding:6px 10px;white-space:nowrap}.dash-phone-chip.on{border-color:var(--border-strong);background:color-mix(in srgb,var(--accent) 20%,var(--bg-card))}.dash-phone-glance-list{margin-top:10px;display:flex;flex-direction:column;gap:8px}.dash-phone-glance-empty{font-size:12px;color:var(--text-faint)}.dash-phone-task{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:10px;background:var(--bg-card);padding:8px}.dash-phone-task-open{flex:1;text-align:left;border:none;background:transparent;color:var(--text);padding:0}.dash-phone-task-title{font-size:13px;font-weight:700}.dash-phone-task-meta{margin-top:2px;color:var(--text-faint);font-size:11px}.board-complete-confirm{margin:0 0 12px}.section-empty{padding:12px 0;color:var(--text-faint);font-size:12px;line-height:1.45}.dash-status-editor{display:grid;gap:8px;margin-top:8px}.dash-status-editor-actions{display:flex;flex-wrap:wrap;gap:8px}.app-notice-layer{position:fixed;top:54px;right:14px;z-index:98;display:grid;gap:8px;max-width:min(22rem,calc(100vw - 28px));pointer-events:none}.app-notice{padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:color-mix(in srgb,var(--bg-elev) 94%,white 6%);color:var(--text);font-size:12px;line-height:1.4;box-shadow:var(--shadow-sm);animation:ship-toast-in .18s ease-out}.app-notice.is-error{border-color:color-mix(in srgb,var(--red) 45%,var(--border) 55%);color:var(--red)}.app-notice.out{animation:ship-toast-out .22s ease-in forwards}@media (max-width: 860px){.app-notice-layer{top:auto;right:10px;bottom:calc(92px + env(safe-area-inset-bottom,0px))}}.top-chrome{position:fixed;top:10px;right:14px;z-index:97;display:flex;align-items:center;gap:8px;pointer-events:none}.top-chrome>*{pointer-events:auto}body:has(.board-topbar) .top-chrome{display:none}.topbar-actions{display:inline-flex;align-items:center;gap:8px;flex-shrink:0}.topbar-actions .live-sync-indicator{box-shadow:none;max-width:min(180px,28vw)}.board-topbar .overflow-menu{z-index:120}.live-sync-indicator{padding:5px 10px;border-radius:999px;border:1px solid var(--border);background:color-mix(in srgb,var(--bg-elev) 94%,white 6%);color:var(--text-faint);font-size:11px;line-height:1.2;box-shadow:var(--shadow-sm);pointer-events:none;white-space:nowrap;max-width:200px;overflow:hidden;text-overflow:ellipsis}.live-sync-indicator.is-clickable{pointer-events:auto;cursor:pointer}.live-sync-indicator.is-clickable:disabled{opacity:.75;cursor:wait}.live-sync-indicator.warn{border-color:color-mix(in srgb,var(--red) 45%,var(--border) 55%);color:var(--red)}@media (max-width: 860px){.top-chrome{top:auto;right:10px;bottom:calc(62px + env(safe-area-inset-bottom,0px));flex-direction:column-reverse;align-items:flex-end;gap:6px}.live-sync-indicator{font-size:10px;padding:4px 8px}}.notif-bell-wrap{position:relative;flex-shrink:0}.notif-bell-btn{position:relative;width:34px;height:34px;border-radius:999px;border:1px solid var(--border);background:color-mix(in srgb,var(--bg-elev) 94%,white 6%);font-size:15px;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);cursor:pointer;color:var(--text)}.notif-bell-btn:hover{background:var(--bg-hover)}.notif-badge{position:absolute;top:-4px;right:-4px;background:var(--red);color:#fff;border-radius:999px;font-size:10px;font-weight:800;min-width:16px;height:16px;padding:0 3px;display:flex;align-items:center;justify-content:center;line-height:1;border:2px solid var(--bg)}.notif-panel{position:absolute;top:calc(100% + 8px);right:0;width:360px;max-height:520px;background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 32px #0000002e;display:flex;flex-direction:column;overflow:hidden;z-index:200}.notif-panel-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 10px;border-bottom:1px solid var(--border);gap:8px;flex-shrink:0}.notif-panel-title{font-weight:700;font-size:14px}.notif-panel-head-actions{display:flex;gap:6px;align-items:center}.notif-compose{display:flex;gap:6px;padding:10px 12px;border-bottom:1px solid var(--border);flex-shrink:0}.notif-compose .modal-input{flex:1}.notif-list{flex:1;overflow-y:auto;margin:0;padding:0;list-style:none}.notif-empty{padding:28px 20px;text-align:center;color:var(--text-faint);font-size:13px}.notif-item{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .12s}.notif-item:hover{background:var(--bg-hover)}.notif-item--unread{background:color-mix(in srgb,var(--accent) 6%,transparent 94%)}.notif-item--clickable{cursor:pointer}.notif-item--clickable:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.notif-icon{font-size:18px;flex-shrink:0;line-height:1;margin-top:1px}.notif-body{flex:1;min-width:0}.notif-msg{font-size:13px;line-height:1.4;word-break:break-word}.notif-time{font-size:11px;color:var(--text-faint);margin-top:2px}.notif-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);flex-shrink:0;margin-top:4px}@media (max-width: 860px){.notif-panel{right:0;width:min(360px,calc(100vw - 20px))}}.overdue-banner{display:flex;align-items:center;gap:8px;padding:10px 20px;background:color-mix(in srgb,var(--red) 12%,transparent 88%);border-bottom:1px solid color-mix(in srgb,var(--red) 30%,transparent 70%);font-size:13px;font-weight:500;color:var(--red);flex-shrink:0}.overdue-banner-icon{font-size:15px}.portal-share-btn{white-space:nowrap}.portal-share-lead{margin:0 0 16px;color:var(--text-dim);line-height:1.5}.portal-share-label{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);margin-bottom:6px}.portal-share-url-row{display:flex;gap:8px;align-items:stretch;margin-bottom:14px}.portal-share-url-input{flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px}.portal-share-meta{display:grid;grid-template-columns:1fr 1fr;gap:12px;font-size:13px;margin-bottom:16px}.portal-share-meta-label{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);margin-bottom:2px}.portal-share-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.portal-share-empty{display:flex;flex-direction:column;gap:12px;align-items:flex-start}.portal-share-note{padding:10px 12px;border-radius:8px;font-size:13px;margin-bottom:12px}.portal-share-note--warn{background:#fef6e0;color:#7a5a00;border:1px solid #e8d49a}.inv-mode{padding:24px}.inv-panel{display:flex;flex-direction:column;gap:16px;max-width:1100px;margin:0 auto;width:100%}.inv-list-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.inv-search{flex:1;min-width:180px;max-width:320px}.client-linked-pill{font-size:12px;color:var(--text-dim)}.inv-list-filters{display:flex;gap:6px;flex-wrap:wrap}.ghost-btn.small.active{background:var(--accent);color:#fff;border-color:var(--accent)}.inv-summary-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.inv-summary-cell{padding:14px 16px;background:var(--bg-elev);border:1px solid var(--border);border-radius:10px}.inv-summary-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}.inv-summary-val{font-size:18px;font-weight:800}.inv-summary-count{font-size:11px;color:var(--text-faint);margin-top:2px}.section-empty{padding:40px;text-align:center;color:var(--text-faint);font-size:14px}.inv-table{width:100%;border-collapse:collapse;font-size:13px}.inv-table th{text-align:left;padding:10px 12px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);border-bottom:2px solid var(--border);white-space:nowrap}.inv-row td{padding:11px 12px;border-bottom:1px solid var(--border);vertical-align:middle}.inv-row:hover td{background:var(--bg-hover)}.inv-number-cell{font-weight:700;font-family:monospace;font-size:13px}.inv-status-badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:700;border:1px solid currentColor}.inv-row-actions{display:flex;align-items:center;gap:4px;justify-content:flex-end}.inv-form-panel{display:flex;flex-direction:column;gap:16px;max-width:800px;margin:0 auto;width:100%}.inv-form-head{display:flex;align-items:center;gap:14px}.inv-form-title{font-size:18px;font-weight:800}.inv-brand-preview{display:flex;align-items:center;gap:16px;padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:var(--bg-soft)}.inv-brand-logo-wrap{flex-shrink:0;background:#fff;border-radius:10px;padding:8px 10px;border:1px solid var(--border)}.inv-brand-logo{height:64px;width:auto;object-fit:contain;display:block}.inv-brand-copy{min-width:0}.inv-brand-company{font-size:16px;font-weight:800;line-height:1.25}.inv-brand-contact{font-size:14px;font-weight:600;color:var(--text);margin-top:4px}.inv-brand-email{font-size:12px;color:var(--text-faint);margin-top:2px}.inv-number-readonly{display:flex;align-items:center;min-height:40px;padding:8px 12px;border:1px solid var(--border);border-radius:10px;background:var(--bg-soft);font-weight:700;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:14px;color:var(--text)}.inv-number-hint{display:block;margin-top:4px;font-size:11px;color:var(--text-faint)}.inv-form-meta-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}@media (max-width: 700px){.inv-form-meta-grid{grid-template-columns:1fr 1fr}}.inv-lines-head{margin-top:4px}.inv-lines-table{width:100%;border-collapse:collapse;font-size:13px}.inv-lines-table th{text-align:left;padding:8px 10px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);border-bottom:2px solid var(--border)}.inv-lines-table td{padding:6px 8px;border-bottom:1px solid var(--border);vertical-align:middle}.inv-totals{margin-left:auto;width:280px;display:flex;flex-direction:column;gap:6px;padding:14px 0;border-top:2px solid var(--border)}.inv-totals-row{display:flex;justify-content:space-between;font-size:13px;color:var(--text-faint)}.inv-totals-total{font-size:16px;font-weight:800;color:var(--text);border-top:1px solid var(--border);padding-top:8px;margin-top:4px}.inv-tax-input{width:60px;display:inline-block;padding:2px 6px}.inv-form-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}@media (max-width: 860px){.inv-summary-strip,.inv-form-meta-grid{grid-template-columns:1fr 1fr}}@media (max-width: 600px){.inv-summary-strip{grid-template-columns:1fr}}.portal-shell{min-height:var(--app-vh, 100dvh);height:var(--app-vh, 100dvh);background:radial-gradient(ellipse 120% 80% at 50% -20%,rgba(158,123,87,.12),transparent 55%),linear-gradient(180deg,#faf8f5,#f2ece4);color:#2a2520;font-family:Avenir Next,Segoe UI,system-ui,sans-serif;display:flex;flex-direction:column}.portal-header{display:flex;align-items:center;justify-content:space-between;padding:16px clamp(20px,4vw,40px);background:#ffffffeb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(229,222,215,.9);box-shadow:0 4px 24px #2a25200a}.portal-brand-block{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.portal-logo{height:36px;width:auto;max-width:min(220px,52vw);object-fit:contain}.portal-secure-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;background:#eef6ea;color:#3d7a24;font-size:11px;font-weight:700;letter-spacing:.02em}.portal-brand{font-size:18px;font-weight:900;color:#9e7b57;letter-spacing:-.01em}.portal-header-right{display:flex;align-items:center;gap:12px}.portal-header-client{display:flex;flex-direction:column;align-items:flex-end;gap:1px}.portal-client-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#aaa}.portal-client-name{font-size:13px;color:#555;font-weight:700}.portal-main{flex:1;max-width:1140px;margin:0 auto;width:100%;padding:clamp(24px,4vw,40px) clamp(18px,3vw,28px);display:flex;flex-direction:column;gap:28px}.portal-hero{display:flex;flex-direction:column;gap:14px;padding:24px;background:#fff;border:1px solid #e5ded7;border-radius:14px;box-shadow:0 2px 8px #0000000a}.portal-hero--v2{display:grid;grid-template-columns:1.2fr minmax(220px,.8fr);gap:28px;align-items:center;padding:clamp(24px,4vw,36px);background:linear-gradient(135deg,#fffffffa,#fffcf8fa);border:1px solid #e8dfd4;border-radius:20px;box-shadow:0 1px #fffc inset,0 16px 40px #2a25200f}.portal-hero-copy{display:flex;flex-direction:column;gap:10px;min-width:0}.portal-hero-eyebrow{margin:0;font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#9e7b57}.portal-hero-sub{margin:0;font-size:15px;line-height:1.55;color:#6b6358;max-width:52ch}.portal-hero-contact{margin:4px 0 0;font-size:13px;color:#7a7268}.portal-hero-metrics{display:flex;flex-direction:column;align-items:center;gap:16px}.portal-progress-ring{--pct: 0;width:132px;height:132px;border-radius:50%;background:conic-gradient(#6b9f47 calc(var(--pct) * 1%),#ebe4db 0);display:grid;place-items:center;box-shadow:0 8px 24px #6b9f4726}.portal-progress-ring-inner{width:104px;height:104px;border-radius:50%;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.portal-progress-ring-value{font-size:28px;font-weight:900;line-height:1;color:#3d7a24}.portal-progress-ring-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#888}.portal-stats--hero{width:100%;justify-content:center}.portal-hero-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.portal-project-name{font-size:clamp(26px,4vw,34px);font-weight:900;margin:0;line-height:1.15;letter-spacing:-.02em}.portal-completed-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;background:#e8f7e0;color:#4a8a2a;border-radius:999px;font-size:13px;font-weight:700}.portal-progress{display:flex;align-items:center;gap:12px}.portal-progress-bar{flex:1;height:8px;background:#e5ded7;border-radius:99px;overflow:hidden;max-width:360px}.portal-progress-fill{height:100%;background:linear-gradient(90deg,#6b9f47,#8bc34a);border-radius:99px;transition:width .4s}.portal-progress-label{font-size:13px;font-weight:600;color:#666}.portal-stats{display:flex;gap:10px;flex-wrap:wrap}.portal-stat{display:flex;flex-direction:column;gap:2px;padding:10px 14px;background:#fff;border:1px solid #ebe4db;border-radius:12px;min-width:72px;box-shadow:0 2px 6px #00000008}.portal-stat-value{font-size:20px;font-weight:800;line-height:1}.portal-stat-label{font-size:11px;font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.04em}.portal-stat--done .portal-stat-value{color:#4a8a2a}.portal-stat--active .portal-stat-value{color:#1a4fa8}.portal-stat--overdue .portal-stat-value{color:#b95249}.portal-section-sub{margin:4px 0 0;font-size:13px;color:#888;line-height:1.4}.portal-board-section{padding:22px;background:#fff;border:1px solid #e8dfd4;border-radius:18px;box-shadow:0 8px 28px #2a25200d}.portal-section{display:flex;flex-direction:column;gap:14px}.portal-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-bottom:8px;border-bottom:2px solid #e5ded7}.portal-section-title{font-size:17px;font-weight:800;color:#5a4f3f;margin:0}.portal-toggle{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:#666;cursor:pointer;-webkit-user-select:none;user-select:none}.portal-toggle input{accent-color:#9e7b57}.portal-empty-board{padding:32px;text-align:center;color:#999;font-size:14px;background:#fff;border:1px dashed #ddd;border-radius:12px}.portal-kanban{display:flex;gap:14px;overflow-x:auto;padding-bottom:8px;-webkit-overflow-scrolling:touch}.portal-kanban-col{flex:0 0 280px;display:flex;flex-direction:column;gap:10px;max-height:560px}.portal-kanban-col-head{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#fff;border:1px solid #e5ded7;border-radius:12px;box-shadow:0 2px 6px #00000008}.portal-kanban-col-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.portal-kanban-col-name{font-size:13px;font-weight:700;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-kanban-col-count{font-size:11px;font-weight:700;color:#999;background:#f0ece6;padding:2px 7px;border-radius:99px}.portal-kanban-cards{display:flex;flex-direction:column;gap:8px;overflow-y:auto;padding-right:2px}.portal-kanban-empty{padding:16px;text-align:center;color:#bbb;font-size:12px;font-style:italic;background:#faf7f4;border-radius:8px;border:1px dashed #e0d8cf}.portal-card{padding:14px 16px;background:#fff;border:1px solid #ebe4db;border-radius:14px;box-shadow:0 2px 8px #2a25200a;transition:box-shadow .15s ease,transform .15s ease}.portal-card:hover{box-shadow:0 6px 18px #2a252014;transform:translateY(-1px)}.portal-card--overdue{border-color:#e8b4b0;background:snow}.portal-card-title{font-size:15px;font-weight:700;line-height:1.35;margin-bottom:10px;color:#2a2520}.portal-card-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.portal-card-status{display:inline-block;padding:2px 8px;border-radius:99px;font-size:11px;font-weight:700}.portal-card-due{font-size:11px;color:#888;font-weight:600}.portal-card-due.is-overdue{color:#b95249}.portal-card--approval{border-color:#e8d49a;box-shadow:0 2px 8px #9a720014}.portal-card-approval-badge{display:inline-flex;margin-top:8px;font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px;background:#fef6e0;color:#9a7200}.portal-approval-section{gap:12px}.portal-approval-banner{padding:18px 20px;background:linear-gradient(135deg,#fff9eb,#fff);border:1px solid #e8d49a;border-radius:12px}.portal-approval-banner-title{margin:0 0 6px;font-size:18px;font-weight:800;color:#7a5a00}.portal-approval-banner-sub{margin:0;font-size:14px;color:#666;line-height:1.45}.portal-approval-list{display:flex;flex-direction:column;gap:10px}.portal-approval{margin-top:12px;padding-top:12px;border-top:1px solid #f0ece6}.portal-approval-prompt{margin:0 0 10px;font-size:13px;color:#555;line-height:1.4}.portal-approval-actions{display:flex;gap:8px;flex-wrap:wrap}.portal-approval-form{display:flex;flex-direction:column;gap:8px}.portal-approval-label{font-size:12px;font-weight:700;color:#666}.portal-approval-textarea{width:100%;padding:10px 12px;border:1px solid #e5ded7;border-radius:8px;font-family:inherit;font-size:13px;resize:vertical;min-height:72px}.portal-approval-textarea:focus{outline:none;border-color:#9e7b57}.portal-approval-form-actions{display:flex;gap:8px;justify-content:flex-end}.portal-approval-error{margin:8px 0 0;font-size:12px;color:#b95249;font-weight:600}.portal-invoices-section .portal-section-title{padding-bottom:8px;border-bottom:2px solid #e5ded7}.portal-invoice-note{margin:0;font-size:13px;color:#777;line-height:1.5;padding:12px 14px;background:#fff;border:1px solid #ebe4db;border-radius:10px}.portal-invoice-empty{padding:24px;text-align:center;color:#999;font-size:14px;background:#fff;border-radius:12px;border:1px solid #e5ded7}.portal-invoice-list{display:flex;flex-direction:column;gap:10px}.portal-invoice-card{padding:16px 18px;background:#fff;border:1px solid #e5ded7;border-radius:12px;display:flex;flex-direction:column;gap:12px}.portal-invoice-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.portal-invoice-number{font-size:16px;font-weight:800;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.portal-invoice-dates{font-size:12px;color:#888;margin-top:2px}.portal-invoice-status{display:inline-block;padding:3px 10px;border-radius:99px;font-size:11px;font-weight:700;white-space:nowrap}.portal-invoice-card-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:10px;border-top:1px solid #f0ece6}.portal-invoice-amount{font-size:20px;font-weight:800}.portal-invoice-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.portal-invoice-due-note,.portal-invoice-paid-note{font-size:12px;color:#888;font-weight:600}.portal-invoice-paid-note{color:#4a8a2a}.portal-footer{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;padding:20px;font-size:12px;color:#aaa;border-top:1px solid #e5ded7;background:#fff}.portal-footer-link{color:#9e7b57;font-weight:600;text-decoration:none}.portal-footer-link:hover{text-decoration:underline}.portal-footer-version{font-size:10px;color:#c4bdb4;font-variant-numeric:tabular-nums}.portal-share-url-hint--warn{color:#9a7200}.portal-loading,.portal-error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;height:60vh;color:#888}.portal-error-icon{color:#bbb}.portal-error-msg{font-size:15px;font-weight:500;text-align:center;max-width:320px}.portal-error-hint{margin:0;font-size:13px;color:#999;text-align:center;max-width:360px;line-height:1.45}.portal-updated{margin:0;font-size:12px;color:#999;font-weight:600}.portal-skeleton{background:linear-gradient(90deg,#ece6de 25%,#f5f0ea,#ece6de 75%);background-size:200% 100%;animation:portal-shimmer 1.2s ease-in-out infinite;border-radius:8px}@keyframes portal-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.portal-skeleton-logo{width:32px;height:32px;border-radius:6px}.portal-skeleton-brand{width:100px;height:18px}.portal-skeleton-title{width:min(420px,80%);height:32px}.portal-skeleton-bar{width:min(360px,70%);height:8px;border-radius:99px}.portal-skeleton-stats{display:flex;gap:10px;flex-wrap:wrap}.portal-skeleton-stat{width:72px;height:52px}.portal-skeleton-col{flex:0 0 260px;height:280px;border-radius:12px}.portal-kanban--loading{display:flex;gap:14px;overflow:hidden}.portal-hero--loading{gap:16px}@media (max-width: 600px){.portal-main{padding:20px 14px;gap:24px}.portal-header{padding:12px 16px}.portal-hero{padding:18px 16px}.portal-project-name{font-size:22px}.portal-kanban-col{flex-basis:220px}.portal-share-meta{grid-template-columns:1fr}.portal-share-url-row{flex-direction:column}}.skip-link{position:absolute;top:-100px;left:12px;z-index:9999;background:var(--accent);color:#fff;padding:8px 14px;border-radius:6px;font-size:13px;font-weight:600;text-decoration:none;transition:top .15s}.skip-link:focus{top:12px}.nav-icon-btn{display:flex!important;align-items:center;gap:8px}.nav-icon-btn svg{flex-shrink:0;opacity:.75}.nav-icon-btn:hover svg,.nav-icon-btn.active svg{opacity:1}.nav-section-title--mt{margin-top:14px}.modal-section{padding-top:14px;margin-top:14px;border-top:1px solid var(--border)}.modal-section-title{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);margin-bottom:10px}.modal-title-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0}.modal-quick-actions{display:flex;flex-wrap:wrap;gap:8px}.modal-textarea-auto{width:100%;min-height:80px;resize:none;overflow:hidden;padding:8px 10px;border-radius:10px;border:1px solid var(--border);background:var(--bg-elev);color:var(--text);font:inherit;font-size:13px;line-height:1.5}.modal-textarea-auto:focus{outline:2px solid color-mix(in srgb,var(--accent) 45%,transparent);outline-offset:1px;border-color:var(--border-strong)}.sticker-pill-row{display:flex;flex-wrap:wrap;gap:6px}.sticker-pill{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--text-dim);font:inherit;font-size:12px;cursor:pointer;transition:background .12s,color .12s,border-color .12s}.sticker-pill:hover:not(:disabled){border-color:var(--accent);color:var(--text)}.sticker-pill.active{background:color-mix(in srgb,var(--accent) 18%,transparent);border-color:var(--accent);color:var(--text);font-weight:600}.sticker-pill:disabled{opacity:.5;cursor:default}.proof-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:20px 16px;border:2px dashed var(--border);border-radius:10px;background:var(--bg-elev);color:var(--text-faint);cursor:pointer;transition:border-color .15s,background .15s;text-align:center;margin-bottom:10px}.proof-dropzone:hover:not(.disabled),.proof-dropzone:focus-visible{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--bg-elev));color:var(--text);outline:none}.proof-dropzone.drag-over{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--bg-elev));color:var(--text)}.proof-dropzone.disabled{opacity:.5;cursor:default}.proof-dropzone-label{font-size:13px;font-weight:500}.proof-dropzone-hint{font-size:11px;color:var(--text-faint)}.proof-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.proof-item{display:flex;align-items:center;gap:8px}.proof-item-link{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--accent);text-decoration:none;padding:4px 8px;border-radius:6px;border:1px solid var(--border);background:var(--bg-elev);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proof-item-link:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--bg-elev))}.proof-item-remove{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;border:1px solid var(--border);background:transparent;color:var(--text-faint);cursor:pointer;flex-shrink:0}.proof-item-remove:hover:not(:disabled){border-color:var(--red);color:var(--red)}.proof-empty{margin:0;font-size:12px;color:var(--text-faint)}.pw-wrapper,.pw-input-wrap{position:relative;display:flex;align-items:center}.pw-wrapper .doodle-input,.pw-input-wrap .modal-input{padding-right:38px;width:100%}.pw-reveal-btn{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;padding:4px;cursor:pointer;color:var(--text-faint);display:flex;align-items:center;justify-content:center;border-radius:4px}.pw-reveal-btn:hover{color:var(--text)}.pw-reveal-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.dash-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--text-dim);font:inherit;font-size:12px;cursor:pointer;transition:background .12s,border-color .12s,color .12s;white-space:nowrap}.dash-chip:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;border:1.5px solid currentColor;flex-shrink:0;transition:background .12s,border-color .12s}.dash-chip:hover:not(.on){border-color:var(--accent);color:var(--text)}.dash-chip.on{background:color-mix(in srgb,var(--accent) 18%,transparent);border-color:var(--accent);color:var(--text);font-weight:600}.dash-chip.on:before{background:var(--accent);border-color:var(--accent)}.mbn-more-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;z-index:148}.mbn-more-sheet{position:fixed;bottom:calc(56px + var(--safe-bottom, 0px));left:0;right:0;z-index:149;background:var(--bg-card);border-top:1px solid var(--border);border-radius:16px 16px 0 0;padding:12px 0 16px;animation:sheet-up .22s ease}@keyframes sheet-up{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.mbn-more-handle{width:36px;height:4px;background:var(--border);border-radius:2px;margin:0 auto 12px}.mbn-more-list{display:flex;flex-direction:column}.mbn-more-item{padding:13px 20px;text-align:left;background:none;border:none;font:inherit;font-size:15px;color:var(--text);cursor:pointer;border-bottom:1px solid var(--border)}.mbn-more-item:last-child{border-bottom:none}.mbn-more-item:active,.mbn-more-item.active{color:var(--accent);font-weight:600}
