:root{--bg:#0b0f15;--panel:#141b25;--panel-2:#182331;--line:#2b3a49;--text:#f0f6fb;--muted:#96a8b8;--blue:#68ccff;--blue-2:#238fc9;--green:#66d4af;--danger:#ff8c97;--project-h:62px;--task-h:54px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--bg)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{background:radial-gradient(circle at 78% -15%,#143648 0,transparent 36%),var(--bg)}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}.hidden{display:none!important}.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}.eyebrow{margin:0 0 7px;color:#8edaff;font-size:10px;font-weight:850;letter-spacing:.14em}.button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:7px 12px;border:1px solid #34475b;border-radius:9px;background:#192431;color:#e3eff8;font-size:12px;font-weight:750;white-space:nowrap}.button:hover{border-color:#5ca6cb;background:#203447}.button.primary{border-color:#67c9f4;background:linear-gradient(135deg,#7dd7ff,#36a9df);color:#082335}.button.primary:hover{filter:brightness(1.08)}.button.quiet{background:transparent}.button.danger{border-color:#7b414b;background:#35232d;color:#ffd0d4}.icon-button{display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:8px;background:transparent;color:#91a6b8;font-size:26px}.icon-button:hover{background:#263646;color:#fff}input,select,textarea{outline:0}input:focus,select:focus,textarea:focus{border-color:#6bceff!important;box-shadow:0 0 0 3px rgba(90,190,240,.14)}
.center-screen{min-height:100dvh;display:grid;place-items:center;padding:20px}.notice-card{width:min(480px,100%);padding:30px;border:1px solid var(--line);border-radius:18px;background:var(--panel)}.notice-card img{width:160px}.notice-card h1{margin:24px 0 10px}.notice-card p{color:var(--muted);line-height:1.6}.notice-card code{color:#b9e8ff}
.auth-screen{min-height:100dvh;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(340px,.88fr)}.auth-intro{position:relative;display:flex;flex-direction:column;justify-content:center;overflow:hidden;padding:clamp(34px,7vw,108px);border-right:1px solid #355064;background:radial-gradient(circle at 75% 15%,#155473 0,transparent 43%),linear-gradient(150deg,#112636,#0d151d 72%)}.auth-intro>img{position:absolute;top:35px;left:clamp(34px,7vw,108px);width:170px;height:auto}.auth-intro h1{max-width:630px;margin:8px 0 19px;font-size:clamp(56px,7vw,104px);line-height:.96;letter-spacing:-.075em}.auth-intro>p:last-of-type{max-width:450px;margin:0;color:#b7cbd9;font-size:18px;line-height:1.55}.auth-preview{display:grid;gap:9px;max-width:520px;margin-top:55px;transform:rotate(-2deg)}.auth-preview div{display:flex;align-items:center;height:42px;border:1px solid #477491;border-radius:8px;background:#152f41;color:#daf4ff;font-size:12px;font-weight:750}.auth-preview span{width:155px;padding-left:15px}.auth-preview i{display:block;height:24px;border-radius:6px;background:linear-gradient(90deg,#53b9ee,#80d2ce)}.auth-preview div:nth-child(1) i{width:44%;margin-left:25px}.auth-preview div:nth-child(2) i{width:38%;margin-left:90px;background:linear-gradient(90deg,#e5b976,#d88e6e)}.auth-preview div:nth-child(3) i{width:27%;margin-left:165px;background:linear-gradient(90deg,#8c9ce2,#ad9de9)}.auth-panel{display:flex;flex-direction:column;justify-content:center;width:min(430px,100%);margin:auto;padding:42px 28px}.auth-panel h2{margin:2px 0 8px;font-size:31px;letter-spacing:-.04em}.auth-panel>p:not(.eyebrow){color:var(--muted);line-height:1.5}.auth-panel form{display:grid;gap:16px;margin-top:24px}.auth-panel label,.modal label{display:grid;gap:8px;color:#d2e0ea;font-size:12px;font-weight:780}.auth-panel input,.modal input,.modal textarea,.modal select{width:100%;min-height:43px;padding:10px 12px;border:1px solid #354457;border-radius:9px;background:#0e151d;color:var(--text)}.auth-panel form .button{margin-top:5px;min-height:45px}.auth-footnote{margin-top:18px;font-size:12px}.auth-footnote a{color:#9fddfa}.error{min-height:17px;margin:5px 0;color:#ffadb5;font-size:12px;line-height:1.4}
.app{min-height:100dvh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:65px;padding:10px 22px;border-bottom:1px solid var(--line);background:#0c131b}.brand{display:flex;align-items:center;gap:12px}.brand img{width:118px;height:38px;object-fit:contain;object-position:left}.brand-divider{height:25px;border-left:1px solid #3a5061}.brand strong{font-size:15px;letter-spacing:-.02em}.top-actions{display:flex;align-items:center;gap:12px}.account-name{color:#bdcfdd;font-size:12px}.toolbar{display:flex;align-items:end;justify-content:space-between;gap:20px;min-height:102px;padding:17px 22px 18px}.toolbar-title h1{margin:0;font-size:24px;line-height:1.1;letter-spacing:-.045em}.toolbar-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.search input{width:min(240px,28vw);height:36px;padding:7px 11px;border:1px solid #314353;border-radius:9px;background:#121e29;color:var(--text);font-size:12px}.zoom-label{display:flex;align-items:center;gap:7px;color:#9caebe;font-size:11px;font-weight:750}.zoom-label select{height:36px;padding:6px 27px 6px 9px;border:1px solid #314353;border-radius:9px;background:#121e29;color:var(--text);font-size:12px}.banner{margin:0 22px 12px;padding:10px 13px;border:1px solid #57768a;border-radius:9px;background:#173040;color:#d5edfa;font-size:12px}.banner.error{border-color:#8d4c56;background:#34242b;color:#ffd9de}
.workspace{display:flex;flex:1;flex-direction:column;min-height:420px;height:calc(100dvh - 208px);margin:0 22px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#111820}.board-head{display:grid;grid-template-columns:320px minmax(0,1fr);height:73px;flex:0 0 73px;border-bottom:1px solid #354453}.left-head{display:flex;align-items:end;justify-content:space-between;gap:8px;padding:0 14px 14px;border-right:1px solid #354453;background:#16212c;color:#c4d2dd;font-size:10px;font-weight:850;letter-spacing:.09em}.left-head small{color:#8297a9;font-size:10px;font-weight:650;letter-spacing:0}.timeline-head{min-width:0;overflow:hidden;background:#141e28}.timeline-head-inner{position:relative;height:72px}.month-strip,.day-strip{position:absolute;left:0;right:0;display:flex}.month-strip{top:0;height:32px;border-bottom:1px solid #374653}.day-strip{top:32px;height:40px}.month-cell{flex:0 0 auto;display:flex;align-items:center;padding:0 12px;border-right:1px solid #364a59;color:#cce5f3;font-size:11px;font-weight:800}.day-cell{flex:0 0 auto;display:grid;place-items:center;gap:0;border-right:1px solid #293a48;color:#a5b7c5;font-size:10px;line-height:1.05}.day-cell strong{font-size:11px;color:#d4e3ed}.day-cell.weekend{background:#1a2530;color:#718b9c}.day-cell.today{background:#20445a;color:#aee7ff}.day-cell.today strong{color:#dff7ff}.board-body{display:grid;grid-template-columns:320px minmax(0,1fr);flex:1;min-height:0}.left-rows{overflow-y:auto;overflow-x:hidden;scrollbar-width:none;border-right:1px solid #354453;background:#111a23}.left-rows::-webkit-scrollbar{display:none}.timeline-viewport{min-width:0;overflow:auto;background:#0f161e;scrollbar-color:#3b596d #121d27;scrollbar-width:thin}.timeline-rows{position:relative;min-height:100%;background-image:repeating-linear-gradient(to right,transparent 0,transparent calc(var(--day-w) - 1px),#293744 calc(var(--day-w) - 1px),#293744 var(--day-w));background-size:auto}.today-line{position:absolute;z-index:1;top:0;bottom:0;width:2px;background:#64c7f5;pointer-events:none;box-shadow:0 0 9px #57bbf2aa}.timeline-project-row,.left-project-row{height:var(--project-h);background:#192734;border-bottom:1px solid #364957}.timeline-task-row,.left-task-row{height:var(--task-h);border-bottom:1px solid #253644}.timeline-task-row,.timeline-project-row{position:relative}.timeline-project-row{background-image:repeating-linear-gradient(to right,transparent 0,transparent calc(var(--day-w) - 1px),#2a3b48 calc(var(--day-w) - 1px),#2a3b48 var(--day-w))}.timeline-project-row.editable{cursor:crosshair}.timeline-project-row.editable:hover{background-color:#203646}.timeline-project-row .project-range{position:absolute;top:28px;height:7px;border-radius:99px;background:#6bc5eb77;pointer-events:none}.left-project-row{display:flex;align-items:center;gap:6px;padding:0 9px}.fold-button,.row-action,.status-toggle{display:grid;place-items:center;flex:0 0 auto;border:0;border-radius:7px;background:transparent;color:#a3bbcd}.fold-button{width:27px;height:27px;font-size:12px}.fold-button:hover,.row-action:hover,.status-toggle:hover{background:#2c4557;color:#e3f5ff}.project-mark{width:5px;height:28px;border-radius:9px;background:var(--project-color,#6ac8ef)}.project-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#eaf2f8;font-size:13px;font-weight:850}.project-title-button,.task-title-button{border:0;background:none;color:inherit;text-align:left}.project-title-button:hover,.task-title-button:hover{text-decoration:underline}.project-count{flex:0 0 auto;padding:3px 6px;border-radius:6px;background:#2b4050;color:#b9d4e4;font-size:10px;font-weight:750}.row-action{width:27px;height:27px;font-size:18px}.row-action.share{font-size:12px}.left-task-row{display:flex;align-items:center;gap:7px;padding:0 10px 0 29px}.status-toggle{width:25px;height:25px;border:1px solid #415361;border-radius:50%;font-size:12px}.status-toggle.status-done{border-color:#3c8d7a;background:#236d5b;color:#e5fff7}.status-toggle.status-in-progress{border-color:#b48b4f;background:#604c2d;color:#ffdc9d}.task-title-button{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:650}.left-task-row.status-done .task-title-button{text-decoration:line-through;color:#8297a6}.task-row-dates{flex:0 0 auto;color:#8599a9;font-size:10px}.task-more{font-size:18px}.gantt-bar{position:absolute;top:10px;height:33px;min-width:16px;display:flex;align-items:center;overflow:hidden;border:1px solid #66c8f4;border-radius:7px;background:linear-gradient(90deg,#24759f,#309fc6);color:#e8f8ff;box-shadow:0 3px 10px #0005;touch-action:none;user-select:none;cursor:grab;z-index:2}.gantt-bar:hover{filter:brightness(1.13);z-index:4}.gantt-bar.dragging{cursor:grabbing;box-shadow:0 0 0 2px #a5e8ff,0 10px 25px #0007}.gantt-bar.status-in-progress{border-color:#f0c17e;background:linear-gradient(90deg,#966236,#bf8847);color:#fff5e1}.gantt-bar.status-done{border-color:#4b9d88;background:#255748;color:#bdddd3;opacity:.68}.gantt-bar.status-done .bar-title{text-decoration:line-through}.bar-title{display:block;overflow:hidden;padding:0 14px;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:800;pointer-events:none}.bar-handle{position:absolute;top:0;bottom:0;width:9px;cursor:ew-resize}.bar-handle.start{left:0}.bar-handle.end{right:0}.gantt-bar:not(:hover) .bar-handle{opacity:0}.bar-handle::after{content:"";position:absolute;top:8px;bottom:8px;left:3px;width:2px;border-radius:2px;background:#e8f7ff99}.empty-state{display:grid;place-items:center;min-height:280px;padding:30px;text-align:center}.empty-state strong{font-size:19px}.empty-state p{max-width:340px;color:var(--muted);font-size:13px;line-height:1.5}.empty-state button{margin-top:8px}.app-footer{display:flex;justify-content:space-between;gap:16px;padding:10px 24px;color:#7c91a1;font-size:10px}
.modal{width:min(510px,calc(100vw - 24px));max-height:calc(100dvh - 28px);overflow:auto;padding:23px;border:1px solid #3b5062;border-radius:17px;background:#17212c;color:var(--text);box-shadow:0 24px 80px #000a}.modal::backdrop{background:#02080cc9;backdrop-filter:blur(3px)}.modal form{display:grid;gap:16px}.modal-head{display:flex;align-items:start;justify-content:space-between;gap:15px;margin-bottom:15px}.modal-head h2{margin:0;font-size:23px;letter-spacing:-.04em}.modal label{display:grid;gap:8px}.modal textarea{resize:vertical;min-height:120px;line-height:1.5}.field-hint{margin:-6px 0 2px;color:#96aabd;font-size:11px;line-height:1.5}.modal-actions{display:flex;align-items:center;gap:8px;margin-top:12px}.spacer{flex:1}.share-intro{margin:0 0 18px;color:#a8bac9;font-size:12px;line-height:1.55}.member-list{display:grid;gap:7px;max-height:240px;overflow:auto}.member-row{display:flex;align-items:center;gap:8px;padding:9px;border:1px solid #34485a;border-radius:9px;background:#111a23}.member-row strong{display:block;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.member-row small{color:var(--muted);font-size:10px}.member-row select{width:auto;min-height:32px;padding:5px 6px;font-size:11px}.member-row button{border:0;background:transparent;color:#ffadb6;font-size:11px}.member-form{display:grid;grid-template-columns:minmax(0,1fr) 110px auto;align-items:end;gap:8px;margin-top:15px}.member-form label{font-size:11px}.member-form select{font-size:12px}.toast{position:fixed;z-index:20;right:18px;bottom:18px;max-width:min(350px,calc(100vw - 36px));padding:12px 14px;border:1px solid #54849e;border-radius:10px;background:#1b3545;color:#e4f5ff;font-size:12px;box-shadow:0 12px 30px #0009}.toast.error{border-color:#92515b;background:#39252d;color:#ffd6db}
@media(max-width:850px){.auth-screen{grid-template-columns:1fr}.auth-intro{min-height:330px;padding:80px 28px 35px}.auth-intro>img{top:25px;left:28px;width:135px}.auth-intro h1{font-size:54px}.auth-preview{display:none}.auth-panel{padding:36px 22px}.topbar{padding:9px 13px}.brand img{width:95px}.toolbar{align-items:start;flex-direction:column;padding:14px 13px}.toolbar-actions{width:100%}.search{flex:1}.search input{width:100%}.workspace{height:calc(100dvh - 244px);margin:0 10px}.board-head,.board-body{grid-template-columns:250px minmax(0,1fr)}.app-footer{padding:10px 13px}.app-footer span:last-child{display:none}}
@media(max-width:560px){.account-name{display:none}.toolbar-title h1{font-size:20px}.toolbar-actions{gap:6px}.zoom-label{font-size:0}.zoom-label select{font-size:11px}.board-head,.board-body{grid-template-columns:190px minmax(0,1fr)}.left-project-row{padding:0 5px}.project-title{font-size:12px}.project-count,.row-action.share{display:none}.left-task-row{padding-left:11px}.task-row-dates{display:none}.member-form{grid-template-columns:1fr 90px}.member-form button{grid-column:1/-1}.workspace{height:calc(100dvh - 255px)}.auth-intro h1{font-size:48px}}
.muted{color:var(--muted);font-size:12px}.toast.is-error{border-color:#92515b;background:#39252d;color:#ffd6db}.member-row>span:first-child{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:750}.member-row>span:nth-child(2){font-size:11px}.member-row button{padding:5px 7px}.empty-state{color:#97adbe;font-size:13px;line-height:1.5}.timeline-task-row{background-image:repeating-linear-gradient(to right,transparent 0,transparent calc(var(--day-w) - 1px),#293744 calc(var(--day-w) - 1px),#293744 var(--day-w))}.status-toggle.status-planned{background:#243443}.status-toggle:disabled{cursor:default}.gantt-bar .bar-handle{z-index:2}.gantt-bar .bar-handle.end{right:0}.gantt-bar .bar-handle.start{left:0}.timeline-project-row .project-range{background:#75c8ec77}
.month-cell span{position:sticky;left:12px;white-space:nowrap}
