:root{--ink:#17233c;--muted:#71809c;--line:#e4e9f1;--soft:#f6f8fc;--white:#fff;--navy:#17294d;--blue:#526dff;--blue2:#4059e8;--green:#23a06b;--amber:#e59a29;--red:#df5261;--purple:#8557d8;--shadow:0 12px 35px rgba(27,42,73,.12)}
*{box-sizing:border-box}body{margin:0;font-family:"DM Sans",sans-serif;color:var(--ink);background:var(--soft);font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.brand{font:800 22px Manrope;color:var(--ink);display:flex;align-items:center;gap:10px}.brand-mark{width:34px;height:34px;border-radius:11px;background:linear-gradient(140deg,#6d7cff,#4258df);display:inline-grid;place-items:center;color:white;font-size:18px;box-shadow:0 7px 16px rgba(73,91,226,.3)}.brand-light{color:#fff}
.boot-screen{position:fixed;inset:0;z-index:300;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 42%,#f7f3ff 0,#f1ecfa 38%,#ebe5f5 100%);color:#241b38}.boot-screen:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(108,76,241,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(108,76,241,.035) 1px,transparent 1px);background-size:42px 42px;mask-image:radial-gradient(circle,#000 10%,transparent 72%)}.boot-aurora{position:absolute;border-radius:50%;filter:blur(4px);opacity:.55;animation:boot-float 7s ease-in-out infinite}.boot-aurora-one{width:420px;height:420px;left:-130px;top:-170px;background:radial-gradient(circle,rgba(124,92,231,.35),transparent 68%)}.boot-aurora-two{width:500px;height:500px;right:-180px;bottom:-220px;background:radial-gradient(circle,rgba(52,211,153,.2),transparent 68%);animation-delay:-3s}.boot-card{position:relative;width:min(430px,calc(100vw - 36px));padding:34px 42px 30px;border:1px solid rgba(255,255,255,.75);border-radius:26px;background:rgba(255,255,255,.7);box-shadow:0 30px 80px rgba(65,43,105,.16),inset 0 1px 0 #fff;backdrop-filter:blur(22px);text-align:center;animation:boot-card-in .55s cubic-bezier(.2,.8,.2,1) both}.boot-brand{display:flex;align-items:center;justify-content:center;gap:11px}.boot-brand .brand-mark{width:42px;height:42px}.boot-brand span:last-child{text-align:left}.boot-brand small,.boot-brand strong{display:block}.boot-brand small{font-size:8px;letter-spacing:.18em;color:#8b80a0}.boot-brand strong{font:800 21px Manrope}.boot-orbit{position:relative;width:126px;height:126px;margin:27px auto 20px}.orbit-ring{position:absolute;inset:12px;border:1px solid rgba(108,76,241,.22);border-radius:50%;transform:rotate(-22deg)}.orbit-ring.ring-two{inset:28px;border-style:dashed;transform:rotate(28deg)}.orbit-core{position:absolute;inset:45px;border-radius:16px;background:linear-gradient(145deg,#9b7cf8,#6546d7);box-shadow:0 10px 24px rgba(108,76,241,.35)}.orbit-core:after{content:"";position:absolute;inset:9px;border:3px solid white;border-radius:50%}.orbit-dot{position:absolute;width:12px;height:12px;border:3px solid #fff;border-radius:50%;box-shadow:0 3px 10px rgba(50,34,82,.25)}.dot-one{left:13px;top:53px;background:#6c4cf1;transform-origin:50px 10px;animation:boot-orbit-one 1.7s linear infinite}.dot-two{right:23px;top:20px;width:10px;height:10px;background:#34d399;transform-origin:-26px 43px;animation:boot-orbit-two 2.3s linear infinite}.boot-card h1{margin:0;font:800 20px Manrope}.boot-card p{min-height:18px;margin:7px 0 19px;color:#76698c;font-size:12px;transition:opacity .15s}.boot-progress{height:5px;overflow:hidden;border-radius:999px;background:#e9e1f4}.boot-progress i{display:block;width:42%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#6c4cf1,#a855f7,#34d399);animation:boot-progress 1.25s ease-in-out infinite}.boot-steps{display:flex;justify-content:center;gap:6px;margin-top:17px}.boot-steps span{width:5px;height:5px;border-radius:50%;background:#d4cbe1}.boot-steps span.active{width:18px;border-radius:5px;background:#6c4cf1;animation:boot-step 1.4s ease-in-out infinite}@keyframes boot-card-in{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}@keyframes boot-float{50%{transform:translate3d(20px,18px,0) scale(1.06)}}@keyframes boot-orbit-one{to{transform:rotate(360deg)}}@keyframes boot-orbit-two{to{transform:rotate(-360deg)}}@keyframes boot-progress{0%{transform:translateX(-110%)}100%{transform:translateX(340%)}}@keyframes boot-step{50%{opacity:.45;transform:scaleX(.7)}}[data-theme="dark"] .boot-screen{background:radial-gradient(circle at 50% 42%,#211730 0,#130f1d 48%,#0c0912 100%);color:#f3effe}[data-theme="dark"] .boot-card{border-color:rgba(255,255,255,.08);background:rgba(25,20,36,.76);box-shadow:0 30px 90px rgba(0,0,0,.45)}[data-theme="dark"] .boot-card p{color:#aaa0ba}[data-theme="dark"] .boot-progress{background:#312840}
.auth-screen{min-height:100vh;display:grid;grid-template-columns:46% 54%;background:#fff}.auth-brand{padding:48px 9%;background:linear-gradient(150deg,#1b315d,#111f3b);color:#fff;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;position:relative}.auth-brand:after{content:"";position:absolute;width:430px;height:430px;border-radius:50%;border:1px solid rgba(255,255,255,.08);right:-220px;bottom:-80px;box-shadow:0 0 0 60px rgba(255,255,255,.025),0 0 0 120px rgba(255,255,255,.02)}.auth-copy{position:relative;z-index:1}.eyebrow{font-size:11px;letter-spacing:.18em;color:#90a4d4;font-weight:700}.auth-copy h1{font:800 clamp(34px,4vw,58px)/1.08 Manrope;margin:20px 0}.auth-copy>p{color:#b6c3df;font-size:17px;max-width:480px;line-height:1.7}.auth-brand small{color:#8fa0c1}.mini-board{margin-top:46px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);padding:12px;border-radius:16px;max-width:430px;backdrop-filter:blur(10px);transform:rotate(-1deg)}.mini-board div{display:flex;align-items:center;gap:12px;background:#fff;color:#27334c;margin:8px 0;padding:12px 14px;border-radius:10px;box-shadow:0 4px 12px rgba(0,0,0,.1)}.mini-board i{width:9px;height:9px;background:#6478ff;border-radius:50%}.mini-board span{flex:1}.mini-board b{font-size:10px;color:#65708b;background:#edf0f6;padding:6px;border-radius:50%}.auth-panel{display:grid;place-items:center;padding:30px}.auth-card{width:min(420px,100%)}.auth-card h2{font:800 32px Manrope;margin:0 0 8px}.auth-card>p{color:var(--muted);margin-bottom:30px}.mobile-brand{display:none;margin-bottom:40px}.form-stack{display:flex;flex-direction:column;gap:18px}.form-stack label,.field{font-weight:600;font-size:13px;display:flex;flex-direction:column;gap:8px}.form-stack input,.field input,.field select,.field textarea{border:1px solid #d8deea;border-radius:9px;padding:12px 13px;outline:0;background:#fff;color:var(--ink)}input:focus,select:focus,textarea:focus{border-color:#7587ef!important;box-shadow:0 0 0 3px rgba(82,109,255,.1)}.btn{border:0;border-radius:9px;padding:11px 16px;font-weight:700;color:var(--ink);background:#edf0f6}.btn.primary{background:var(--blue);color:#fff;box-shadow:0 5px 13px rgba(82,109,255,.22)}.btn.primary:hover{background:var(--blue2)}.btn.danger{background:#fff0f1;color:var(--red)}.wide{width:100%;display:flex;justify-content:center;gap:10px}.auth-switch{text-align:center;margin-top:28px!important}.link-btn{border:0;background:none;color:var(--blue);font-weight:700}.form-error{background:#fff0f1;color:#b73542;border-radius:8px;padding:11px;margin-top:15px}
.app-shell{min-height:100vh;display:grid;grid-template-columns:244px 1fr}.sidebar{position:fixed;width:244px;height:100vh;background:#fff;border-right:1px solid var(--line);padding:25px 18px 18px;display:flex;flex-direction:column;z-index:20}.sidebar>.brand{padding:0 10px;margin-bottom:28px}.workspace-picker{position:relative;border-top:1px solid var(--line);padding:20px 5px}.workspace-picker>span{font-size:10px;letter-spacing:.12em;color:#9aa5b9;font-weight:700;margin-left:7px}.workspace-picker>button{width:100%;border:0;background:#f4f6fa;border-radius:9px;display:flex;align-items:center;gap:8px;padding:9px;margin-top:7px;color:var(--ink)}.workspace-picker b{width:26px;height:26px;background:#dfe4ff;color:#4f61d8;display:grid;place-items:center;border-radius:7px}.workspace-picker button span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;text-align:left;font-weight:700}.workspace-picker i{font-style:normal}.workspace-menu{position:absolute;background:#fff;top:94px;left:5px;width:212px;box-shadow:var(--shadow);border:1px solid var(--line);border-radius:10px;padding:6px;z-index:30}.workspace-menu button{width:100%;border:0;background:transparent;padding:10px;text-align:left;border-radius:7px}.workspace-menu button:hover{background:var(--soft)}.workspace-menu .new-workspace{color:var(--blue);font-weight:700;border-top:1px solid var(--line);border-radius:0;margin-top:4px}.sidebar nav{display:flex;flex-direction:column;gap:4px}.sidebar nav button,.sidebar-bottom>a{border:0;background:transparent;color:#64718b;display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;text-align:left;font-weight:600;text-decoration:none}.sidebar nav button span,.sidebar-bottom>a span{width:18px;text-align:center;font-size:17px}.sidebar nav button.active{background:#edf0ff;color:#4057d7}.sidebar-bottom{margin-top:auto}.user-chip{border-top:1px solid var(--line);margin-top:12px;padding:16px 6px 10px;display:flex;align-items:center;gap:9px}.user-chip>b,.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;color:#4f5cc6;background:#e5e8ff;font-size:12px}.user-chip div{overflow:hidden;flex:1}.user-chip strong,.user-chip small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-chip small{color:var(--muted);font-size:10px;margin-top:2px}.logout-button{width:100%;display:flex;align-items:center;justify-content:center;gap:9px;border:1px solid var(--line);border-radius:9px;padding:10px 12px;background:var(--surface);color:var(--muted);font-size:12px;font-weight:700;transition:background-color .15s,border-color .15s,color .15s,transform .15s}.logout-button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.logout-button:hover{border-color:color-mix(in srgb,var(--red) 35%,var(--line));background:color-mix(in srgb,var(--red) 8%,var(--surface));color:var(--red)}.logout-button:focus-visible{outline:3px solid color-mix(in srgb,var(--red) 18%,transparent);border-color:var(--red)}.logout-button:active{transform:translateY(1px)}
main{grid-column:2;min-width:0}.topbar{height:75px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 32px;position:sticky;top:0;z-index:10}.topbar>div:first-of-type{display:flex;flex-direction:column}.crumb{font-size:11px;color:#98a2b5}.topbar strong{font:700 18px Manrope}.top-actions{display:flex;gap:9px}.icon-btn{width:39px;height:39px;border:1px solid var(--line);background:#fff;border-radius:9px;font-size:18px;color:#65718a}.content{padding:30px 32px;max-width:1550px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:25px}.page-heading h1{font:800 27px Manrope;margin:0}.page-heading p{color:var(--muted);margin:5px 0}.section-title{font:700 17px Manrope;margin:28px 0 14px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.stat-card,.panel,.project-card{background:#fff;border:1px solid var(--line);border-radius:12px}.stat-card{padding:20px}.stat-top{display:flex;justify-content:space-between;color:var(--muted);font-weight:600}.stat-icon{width:35px;height:35px;border-radius:9px;display:grid;place-items:center;background:#edf0ff;color:#5265dc;font-size:17px}.stat-value{font:800 27px Manrope;margin:14px 0 2px}.stat-card small{color:#91a0b6}.dashboard-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:18px;margin-top:18px}.panel{padding:20px}.panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.panel-header h3{font:700 16px Manrope;margin:0}.panel-header button{border:0;background:transparent;color:var(--blue);font-weight:700}.progress-ring{width:150px;height:150px;border-radius:50%;display:grid;place-items:center;margin:25px auto;background:conic-gradient(var(--blue) var(--percent),#edf0f5 0);position:relative}.progress-ring:after{content:"";position:absolute;width:112px;height:112px;border-radius:50%;background:#fff}.progress-ring strong{font:800 24px Manrope;position:relative;z-index:1}.project-list{display:flex;flex-direction:column;gap:12px}.project-row{display:grid;grid-template-columns:36px 1fr auto;gap:12px;align-items:center;padding:10px;border-radius:9px}.project-row:hover{background:var(--soft)}.project-icon{width:36px;height:36px;border-radius:9px;background:#e9edff;color:#5165dc;display:grid;place-items:center;font-weight:800}.project-row strong,.project-row small{display:block}.project-row small{color:var(--muted);margin-top:3px}.badge{font-size:10px;padding:5px 8px;border-radius:20px;text-transform:capitalize;font-weight:700;background:#edf0f6;color:#68748b}.badge.active,.badge.done,.badge.completed{background:#e4f7ee;color:#188759}.badge.high,.badge.critical,.badge.overdue{background:#fff0ef;color:#d44d58}.badge.planned,.badge.medium{background:#edf0ff;color:#5264d7}.badge.on_hold,.badge.review,.badge.testing{background:#fff5df;color:#b57919}
.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:18px}.toolbar input,.toolbar select{border:1px solid var(--line);background:#fff;padding:10px 12px;border-radius:8px}.toolbar input{min-width:260px}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(230px,1fr));gap:16px}.project-card{padding:19px;cursor:pointer;transition:.2s}.project-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.project-card .project-head{display:flex;justify-content:space-between;gap:8px}.project-card h3{font:700 16px Manrope;margin:12px 0 6px}.project-card p{color:var(--muted);min-height:38px;line-height:1.5}.project-meta{border-top:1px solid var(--line);padding-top:13px;display:flex;justify-content:space-between;color:#8190a7;font-size:12px}
.board-wrap{overflow-x:auto;padding-bottom:12px}.kanban{display:grid;grid-template-columns:repeat(6,minmax(255px,1fr));gap:13px;min-width:1540px;align-items:start}.custom-board{min-width:max-content}.kanban-col{background:#eef1f6;border-radius:12px;padding:12px;min-height:530px;transition:opacity .15s,transform .15s}.kanban-col.column-dragging{opacity:.45;transform:rotate(1deg)}.kanban-head{display:flex;align-items:center;gap:8px;padding:3px 3px 12px;font-weight:700;cursor:grab}.kanban-head i{width:8px;height:8px;border-radius:50%;background:#8b97ac}.kanban-head strong{overflow:hidden;text-overflow:ellipsis}.kanban-head span{margin-left:auto;background:#dfe4eb;border-radius:10px;padding:2px 7px;font-size:11px}.column-menu{border:0;background:transparent;color:#7c889b;border-radius:6px;padding:2px 4px;letter-spacing:-1px}.column-menu:hover{background:#dfe4eb}.task-dropzone{min-height:20px}.task-dropzone.drag-over{background:rgba(82,109,255,.07);border-radius:9px;outline:2px dashed rgba(82,109,255,.25)}.task-card{background:#fff;border:1px solid #e0e5ed;border-radius:10px;padding:14px;margin-bottom:10px;box-shadow:0 2px 4px rgba(30,45,70,.04);cursor:grab}.task-card.dragging{opacity:.4;transform:rotate(2deg)}.task-card:hover{border-color:#aeb9e9}.task-card h4{margin:9px 0 8px;line-height:1.4}.task-card p{color:var(--muted);font-size:12px;line-height:1.45;margin:0 0 12px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.task-foot{display:flex;align-items:center;color:#8d99ad;font-size:11px}.task-foot .avatar{margin-left:auto;width:25px;height:25px}.priority-dot{display:inline-flex;align-items:center;gap:5px;text-transform:capitalize;font-size:10px;color:#7c879a}.priority-dot:before{content:"";width:7px;height:7px;border-radius:50%;background:#8090a9}.priority-dot.high:before,.priority-dot.critical:before{background:var(--red)}.priority-dot.medium:before{background:var(--amber)}.priority-dot.low:before{background:var(--green)}.column-add{width:100%;border:0;background:transparent;color:#66748b;text-align:left;padding:9px;border-radius:7px;font-weight:600}.column-add:hover{background:#e1e5ed}.add-column{border:0;background:rgba(224,229,239,.85);border-radius:10px;padding:13px 16px;min-height:48px;text-align:left;color:#55647d;font-weight:700}.add-column:hover{background:#dce2ee}.framework-pill{background:#e8ebff;color:#4f61d4;border-radius:20px;padding:7px 11px;font-size:11px;font-weight:700}.board-actions{display:flex;gap:8px}.board-note{background:var(--soft);padding:13px;border-radius:9px;display:grid;grid-template-columns:auto 1fr;gap:7px 12px!important}.board-note span{color:var(--muted);font-weight:400}
.empty{padding:45px;text-align:center;color:var(--muted);background:#fff;border:1px dashed #ced5e1;border-radius:12px}.empty strong{display:block;color:var(--ink);font:700 18px Manrope;margin-bottom:6px}.people-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:18px}.member-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.member-row:last-child{border:0}.member-row div:nth-child(2){flex:1}.member-row strong,.member-row small{display:block}.member-row small{color:var(--muted)}.team-card{border:1px solid var(--line);border-radius:10px;padding:15px;margin-bottom:10px}.team-card h4{margin:0 0 6px}.team-card p{color:var(--muted);margin:0}.sprint-row{background:#fff;border:1px solid var(--line);border-radius:11px;padding:18px;margin-bottom:12px;display:grid;grid-template-columns:1fr auto;gap:20px}.sprint-row h3{margin:0 0 5px}.sprint-row p{color:var(--muted);margin:0}.sprint-dates{color:#77859c;align-self:center}
.modal-backdrop{position:fixed;inset:0;background:rgba(15,25,45,.55);z-index:100;display:grid;place-items:center;padding:20px;backdrop-filter:blur(2px)}.modal-card{background:#fff;width:min(620px,100%);max-height:92vh;overflow:auto;border-radius:15px;box-shadow:0 25px 70px rgba(0,0,0,.25);padding:27px;position:relative}.modal-close{position:absolute;right:18px;top:15px;border:0;background:transparent;font-size:27px;color:#8993a6}.modal-card h2{font:800 22px Manrope;margin:0 35px 6px 0}.modal-card .subtitle{color:var(--muted);margin:0 0 23px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.field.full{grid-column:1/-1}.field textarea{min-height:90px;resize:vertical}.modal-actions{display:flex;justify-content:flex-end;gap:9px;border-top:1px solid var(--line);padding-top:18px;margin-top:22px}.task-detail-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0}.meta-box{background:var(--soft);padding:11px;border-radius:8px}.meta-box small,.meta-box strong{display:block}.meta-box small{color:var(--muted);font-size:10px;margin-bottom:5px}.comments{border-top:1px solid var(--line);margin-top:20px;padding-top:18px}.comment{background:var(--soft);border-radius:8px;padding:11px;margin:8px 0}.comment small{color:var(--muted)}.comment-form{display:flex;gap:8px;margin-top:10px}.comment-form input{flex:1;border:1px solid var(--line);border-radius:8px;padding:10px}.toast{position:fixed;right:24px;bottom:24px;background:#1e2e4d;color:#fff;padding:12px 17px;border-radius:9px;z-index:200;box-shadow:var(--shadow);opacity:0;transform:translateY(15px);pointer-events:none;transition:.25s}.toast.show{opacity:1;transform:none}.toast.error{background:#b93e4a}
#mobile-menu{display:none}.custom-board .kanban-col{display:flex;flex-direction:column;min-height:max(440px,calc(100vh - 270px))}.custom-board .task-dropzone{min-height:12px;flex:none;padding-bottom:0}.custom-board .task-dropzone:empty{min-height:8px}.custom-board .column-add{margin-top:0}
.task-is-dragging .custom-board .task-dropzone:empty{min-height:72px;background:color-mix(in srgb,var(--blue) 7%,transparent);border:1px dashed color-mix(in srgb,var(--blue) 35%,transparent);border-radius:8px}

/* Refined visual system and themes */
:root{color-scheme:light;--ink:#241b38;--muted:#746b88;--line:#e8e2f0;--soft:#f8f6fb;--white:#fff;--navy:#332454;--blue:#6c4cf1;--blue2:#5033d1;--green:#07966f;--amber:#dd8528;--red:#d94c66;--purple:#a855f7;--surface:#fff;--surface-2:#f3eff8;--sidebar:#fcfbfe;--board:#f0ecf6;--input:#fff;--overlay:rgba(28,19,46,.60);--shadow:0 16px 40px rgba(55,38,91,.11)}
[data-theme="dark"]{color-scheme:dark;--ink:#f3effe;--muted:#a79ebb;--line:#312840;--soft:#100d19;--white:#191424;--navy:#eee8ff;--blue:#a78bfa;--blue2:#7c5ce7;--green:#34d399;--amber:#f4ad55;--red:#fb7185;--purple:#c084fc;--surface:#191424;--surface-2:#211a31;--sidebar:#130f1d;--board:#171221;--input:#120e1c;--overlay:rgba(5,3,10,.78);--shadow:0 20px 52px rgba(0,0,0,.38)}
body{background:var(--soft);color:var(--ink);transition:background-color .2s,color .2s}.sidebar,.topbar,.panel,.stat-card,.project-card,.modal-card,.gantt-panel{background:var(--surface)}.sidebar{background:var(--sidebar)}.topbar{box-shadow:0 1px 0 var(--line)}.content{animation:content-in .22s ease-out}@keyframes content-in{from{opacity:.3;transform:translateY(4px)}to{opacity:1;transform:none}}
.brand-mark{background:linear-gradient(145deg,#a78bfa,#6546d7);box-shadow:0 8px 20px rgba(108,76,241,.30)}.auth-brand{background:radial-gradient(circle at 15% 15%,rgba(168,85,247,.22),transparent 32%),linear-gradient(150deg,#2b1b4b,#171126 72%)}
.sidebar nav button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}.sidebar nav button[data-view="dashboard"] svg,.sidebar nav button[data-view="board"] svg{fill:currentColor;stroke:none}.sidebar nav button{transition:background-color .15s,color .15s,transform .15s}.sidebar nav button:hover{background:var(--surface-2);color:var(--ink);transform:translateX(2px)}.sidebar nav button.active{background:color-mix(in srgb,var(--blue) 13%,transparent);color:var(--blue)}
.brand-mark{font-size:0;position:relative}.brand-mark:before{content:"";width:13px;height:13px;border:3px solid #fff;border-radius:50%}.brand-mark:after{content:"";position:absolute;width:4px;height:4px;border-radius:50%;background:#a7f3d0;right:5px;top:5px}.icon-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.theme-toggle{display:grid;place-items:center}.theme-toggle .sun-icon{display:none}[data-theme="dark"] .theme-toggle .sun-icon{display:block}[data-theme="dark"] .theme-toggle .moon-icon{display:none}
.btn,.icon-btn,.workspace-picker>button,input,select,textarea{transition:border-color .15s,background-color .15s,box-shadow .15s,transform .15s}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:focus-visible,.icon-btn:focus-visible,button:focus-visible{outline:3px solid color-mix(in srgb,var(--blue) 25%,transparent);outline-offset:2px}.btn.primary{background:linear-gradient(135deg,var(--blue),var(--blue2));box-shadow:0 6px 16px color-mix(in srgb,var(--blue) 28%,transparent)}
.stat-card,.panel,.project-card{box-shadow:0 1px 2px rgba(27,39,66,.03)}.stat-card:hover,.project-card:hover{border-color:color-mix(in srgb,var(--blue) 25%,var(--line))}.kanban-col{background:var(--board)}.task-card,.gantt-header,.unscheduled>button{background:var(--surface)}.task-card{box-shadow:0 3px 10px rgba(30,45,70,.06)}.workspace-picker>button,.workspace-menu button:hover,.meta-box,.comment,.empty,.board-note{background:var(--surface-2)}.workspace-menu{background:var(--surface);box-shadow:var(--shadow)}.modal-backdrop{background:var(--overlay)}.field input,.field select,.field textarea,.form-stack input,.toolbar input,.toolbar select,.comment-form input{background:var(--input);color:var(--ink);border-color:var(--line)}.badge{background:var(--surface-2);color:var(--muted)}
[data-theme="dark"] .auth-panel{background:#100d19}[data-theme="dark"] .auth-card input{background:#191424;color:var(--ink);border-color:#3a2e4d}[data-theme="dark"] .mini-board div{background:#211a31;color:#f3effe}[data-theme="dark"] .mini-board b{background:#362a4c;color:#d8d0e8}[data-theme="dark"] .project-icon,[data-theme="dark"] .stat-icon,[data-theme="dark"] .avatar,[data-theme="dark"] .user-chip>b{background:#30234b;color:#c4b5fd}[data-theme="dark"] .progress-ring:after{background:var(--surface)}[data-theme="dark"] .gantt-header{background:var(--surface)}[data-theme="dark"] .task-dropzone.drag-over{background:rgba(167,139,250,.11)}[data-theme="dark"] .danger-zone{background:#2d1823;border-color:#633044}[data-theme="dark"] .reset-note{background:#2d2519;border-color:#5e4c2d}[data-theme="dark"] .form-error{background:#351b27;color:#fda4af}[data-theme="dark"] .add-column{background:#211a31;color:#bdb3cf}[data-theme="dark"] .add-column:hover{background:#2a2140}[data-theme="dark"] .column-add:hover{background:#251d37}[data-theme="dark"] .task-card{border-color:#372c49}[data-theme="dark"] .gantt-days,[data-theme="dark"] .gantt-track{background-image:repeating-linear-gradient(to right,transparent 0,transparent calc((100% / var(--days)) - 1px),#312840 calc((100% / var(--days)) - 1px),#312840 calc(100% / var(--days)))}
[data-theme="dark"] .btn:not(.primary):not(.danger),[data-theme="dark"] .icon-btn{background:#251d37;color:#eee8ff;border:1px solid #423653;box-shadow:none}[data-theme="dark"] .btn:not(.primary):not(.danger):hover,[data-theme="dark"] .icon-btn:hover{background:#302642;border-color:#5a496e}[data-theme="dark"] .btn.danger{background:#3b1d2a;color:#fda4af;border:1px solid #6b3045}[data-theme="dark"] button:disabled{opacity:.5;cursor:not-allowed;transform:none}
[data-theme="dark"] button.btn:not(.primary):not(.danger){background:#251d37!important;color:#eee8ff!important;border-color:#423653!important}[data-theme="dark"] button.btn:not(.primary):not(.danger) *{color:inherit!important}[data-theme="dark"] .column-menu,[data-theme="dark"] .column-add,[data-theme="dark"] .sidebar-bottom a{color:#b8adc9}[data-theme="dark"] .page-heading p,[data-theme="dark"] .task-card p,[data-theme="dark"] .subtitle{color:#a79ebb}
.project-card-actions{display:flex;align-items:center;gap:6px}.project-card-actions button{border:0;background:transparent;color:var(--muted);border-radius:6px;padding:4px 6px;letter-spacing:-1px}.project-card-actions button:hover{background:var(--surface-2);color:var(--ink)}.settings-section-title{font:700 14px Manrope;margin:28px 0 10px;color:var(--muted)}
.nav-label{display:flex;flex-direction:column;gap:2px;min-width:0}.nav-label small{max-width:145px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:9px;font-weight:500}.project-context{display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,color-mix(in srgb,var(--blue) 9%,var(--surface)),var(--surface));border:1px solid color-mix(in srgb,var(--blue) 24%,var(--line));border-radius:12px;padding:14px 16px;margin-bottom:16px}.project-context>div{flex:1}.project-context small,.project-context strong{display:block}.project-context small{font-size:9px;letter-spacing:.12em;color:var(--muted);margin-bottom:3px}.inline-control{display:flex;gap:8px}.inline-control select{flex:1}.quick-sprint-row{display:flex;gap:8px;margin-top:8px;padding:10px;background:var(--surface-2);border-radius:9px}.quick-sprint-row input{flex:1}.field-help{color:var(--muted);font-weight:400;font-size:10px}
.gantt-range{color:var(--muted);font-size:12px}.gantt-panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:auto}.gantt-header,.gantt-row{display:grid;grid-template-columns:230px minmax(900px,1fr);min-width:1130px}.gantt-header{position:sticky;top:0;background:var(--surface);z-index:2;border-bottom:1px solid var(--line)}.gantt-header>div:first-child{padding:15px 17px;font-weight:700;border-right:1px solid var(--line)}.gantt-days,.gantt-track{display:grid;grid-template-columns:repeat(var(--days),minmax(36px,1fr));position:relative;background-image:repeating-linear-gradient(to right,transparent 0,transparent calc((100% / var(--days)) - 1px),var(--line) calc((100% / var(--days)) - 1px),var(--line) calc(100% / var(--days)))}.gantt-days span{text-align:center;padding:8px 2px;color:var(--muted);font-size:11px}.gantt-days span b{display:block;color:var(--muted);font-size:9px;margin-bottom:4px}.gantt-days span.today{background:color-mix(in srgb,var(--blue) 12%,var(--surface));color:var(--blue)}.gantt-row{border-bottom:1px solid var(--line);min-height:62px;cursor:pointer}.gantt-row:hover{background:var(--surface-2)}.gantt-task-name{padding:12px 17px;border-right:1px solid var(--line);overflow:hidden}.gantt-task-name strong,.gantt-task-name small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt-task-name small{color:var(--muted);font-size:10px;margin-top:5px}.gantt-track{align-items:center}.gantt-bar{grid-column:calc(var(--start) + 1)/span var(--duration);height:32px;border-radius:7px;background:#6678e8;color:#fff;margin:0 3px;padding:0 9px;display:flex;align-items:center;gap:8px;overflow:hidden;box-shadow:0 4px 9px rgba(67,85,190,.2)}.gantt-bar span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;font-size:11px}.gantt-bar b{font-size:9px}.gantt-bar.done{background:#28a570}.gantt-bar.review,.gantt-bar.testing{background:#8b62d1}.gantt-bar.in_progress{background:#e49a32}.gantt-empty{margin:24px;min-width:1060px}.unscheduled{margin-top:18px}.unscheduled>button{width:100%;border:0;border-top:1px solid var(--line);background:var(--surface);color:var(--ink);padding:12px;text-align:left;display:flex;justify-content:space-between}.unscheduled>button:hover{background:var(--surface-2)}.unscheduled>button span{color:var(--blue)}
.modal-actions{flex-wrap:wrap}.reset-note{background:#fff7e5;border:1px solid #f1ddb2;padding:12px;border-radius:9px}.reset-note span{color:#80662f;font-weight:400}.workspace-menu .workspace-settings{border-top:1px solid var(--line);border-radius:0;margin-top:4px;color:#63708a}.danger-zone{border:1px solid #f1c9cd;background:#fff8f8;padding:17px;border-radius:10px}.danger-zone h3{color:#b83f4b;margin:0 0 6px}.danger-zone p{color:#805d63;line-height:1.5;margin:0 0 16px}.danger-zone .btn{margin-top:14px}.assignee-field{border:1px solid var(--line);border-radius:9px;padding:12px}.assignee-field legend{font-weight:600;padding:0 5px}.assignee-options{display:flex;flex-wrap:wrap;gap:8px}.assignee-options label{display:flex;align-items:center;gap:6px;border:1px solid var(--line);padding:6px 9px;border-radius:20px;font-weight:500;cursor:pointer}.assignee-options label:has(input:checked){background:#edf0ff;border-color:#aeb8f3;color:#4659ca}.assignee-options input{width:auto;box-shadow:none!important}.assignee-options .avatar{width:24px;height:24px}.avatar-stack{display:flex;margin-left:auto}.avatar-stack .avatar{margin-left:-5px;border:2px solid #fff}.check-count{margin-left:9px;color:#7a879b}.check-count.complete{color:var(--green)}.card-progress{height:4px;background:#e7ebf1;border-radius:4px;overflow:hidden;margin:10px 0}.card-progress i,.checklist-progress i{display:block;height:100%;background:var(--blue);border-radius:inherit}.checklist{border-top:1px solid var(--line);margin-top:20px;padding-top:18px}.checklist-head{display:flex;align-items:center;justify-content:space-between}.checklist-head h3{margin:0}.checklist-progress{height:6px;background:#e7ebf1;border-radius:6px;overflow:hidden;margin:10px 0 14px}.check-item{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;padding:8px 5px;border-radius:7px}.check-item:hover{background:var(--soft)}.check-item input{width:17px;height:17px;accent-color:var(--blue)}.check-item span.done{text-decoration:line-through;color:var(--muted)}.check-item button{border:0;background:transparent;color:#9aa5b8;font-size:18px}
@media(max-width:1000px){.stats{grid-template-columns:repeat(2,1fr)}.project-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.people-grid{grid-template-columns:1fr}.auth-screen{grid-template-columns:1fr}.auth-brand{display:none}.mobile-brand{display:flex}.app-shell{grid-template-columns:1fr}.sidebar{transform:translateX(-100%);transition:.25s}.sidebar.open{transform:none;box-shadow:var(--shadow)}main{grid-column:1}#mobile-menu{display:block}.content{padding:24px}.topbar{padding:0 22px}}@media(max-width:620px){.stats,.project-grid,.form-grid{grid-template-columns:1fr}.top-actions .icon-btn{display:none}.content{padding:18px}.toolbar{align-items:stretch;flex-direction:column}.toolbar input{min-width:0}.page-heading{gap:12px}.page-heading h1{font-size:23px}.auth-panel{padding:24px}.task-detail-meta{grid-template-columns:1fr}.sprint-row{grid-template-columns:1fr}.topbar{height:66px}}
@media(max-width:620px){.top-actions .theme-toggle{display:grid}}
.ai-btn{color:var(--blue)!important;background:color-mix(in srgb,var(--blue) 10%,var(--surface))!important;border:1px solid color-mix(in srgb,var(--blue) 25%,var(--line))!important}.ai-note{background:var(--surface-2);border:1px solid var(--line);border-radius:9px;padding:13px}.ai-note strong,.ai-note span{display:block}.ai-note span{color:var(--muted);font-weight:400;line-height:1.5}.ai-provider{padding:10px 12px;border-radius:8px;background:#eef8f3;color:#287757;font-size:12px;margin-bottom:15px}.ai-provider.fallback{background:#fff7e5;color:#80662f}.ai-task-list{display:flex;flex-direction:column;gap:10px;max-height:52vh;overflow:auto;padding-right:4px}.ai-task-item{display:grid;grid-template-columns:auto 1fr;gap:11px;padding:13px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}.ai-task-enabled{width:17px;height:17px;margin-top:11px;accent-color:var(--blue)}.ai-task-title,.ai-task-description,.ai-task-meta input,.ai-task-meta select{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:7px;padding:9px;background:var(--input);color:var(--ink)}.ai-task-title{font-weight:700}.ai-task-description{min-height:58px;resize:vertical;margin-top:7px}.ai-task-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:7px}
.password-field{position:relative;display:block}.password-field input{width:100%;box-sizing:border-box;padding-right:46px}.password-toggle{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:36px;height:36px;border:0;border-radius:7px;background:transparent;color:#7d889c;display:grid;place-items:center}.password-toggle:hover{background:var(--surface-2);color:var(--blue)}.password-toggle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.password-toggle.showing:after{content:"";position:absolute;width:22px;height:1.8px;background:currentColor;transform:rotate(45deg);border-radius:2px}
.ai-plan-status{grid-column:1/-1;display:flex;align-items:center;gap:10px;padding:12px;border-radius:9px;background:color-mix(in srgb,var(--blue) 9%,var(--surface));color:var(--blue);font-size:12px;font-weight:600}.ai-plan-status i{width:16px;height:16px;border:2px solid color-mix(in srgb,var(--blue) 25%,transparent);border-top-color:var(--blue);border-radius:50%;animation:ai-spin .8s linear infinite}@keyframes ai-spin{to{transform:rotate(360deg)}}

/* Viewport-sized Kanban lists with independent, visible scrolling. */
.board-wrap{width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;padding:0 0 12px;scrollbar-gutter:stable;overscroll-behavior-x:contain}
.custom-board{display:grid!important;grid-template-columns:none!important;grid-auto-flow:column;grid-auto-columns:minmax(290px,320px);align-items:stretch!important;gap:13px;min-width:max-content}
.custom-board .kanban-col{height:clamp(440px,calc(100vh - 285px),760px);min-height:0!important;max-height:none;overflow:hidden;padding:12px;display:flex;flex-direction:column}
.custom-board .kanban-head{flex:0 0 auto;padding:3px 3px 10px;border-bottom:1px solid color-mix(in srgb,var(--line) 75%,transparent);margin-bottom:8px}
.custom-board .kanban-head strong{min-width:0;white-space:nowrap}
.custom-board .task-dropzone{flex:1 1 auto!important;min-height:40px!important;overflow-y:auto;overflow-x:hidden;padding:0 6px 4px 0;scrollbar-gutter:stable;overscroll-behavior-y:contain}
.custom-board .task-card{min-width:0;padding:12px;margin-bottom:9px}
.custom-board .task-card:last-child{margin-bottom:0}
.custom-board .task-card h4{overflow-wrap:anywhere}
.custom-board .column-add{flex:0 0 auto;margin-top:9px!important;border-top:1px solid color-mix(in srgb,var(--line) 75%,transparent);border-radius:0 0 7px 7px;padding:11px 9px}
.custom-board .add-column{width:290px;height:48px;min-height:48px;align-self:start}
.board-wrap,.custom-board .task-dropzone{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--muted) 55%,transparent) transparent}
.board-wrap::-webkit-scrollbar{height:10px}.custom-board .task-dropzone::-webkit-scrollbar{width:8px}
.board-wrap::-webkit-scrollbar-track,.custom-board .task-dropzone::-webkit-scrollbar-track{background:color-mix(in srgb,var(--surface-2) 65%,transparent);border-radius:20px}
.board-wrap::-webkit-scrollbar-thumb,.custom-board .task-dropzone::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--muted) 55%,transparent);border-radius:20px;border:2px solid transparent;background-clip:padding-box}
.board-wrap::-webkit-scrollbar-thumb:hover,.custom-board .task-dropzone::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--blue) 65%,var(--muted));background-clip:padding-box}
@media(max-width:620px){.custom-board{grid-auto-columns:minmax(260px,86vw)}.custom-board .kanban-col{height:calc(100vh - 330px);min-height:390px!important}.custom-board .add-column{width:260px}.board-actions{flex-wrap:wrap;justify-content:flex-end}}
.progress-field{gap:10px!important}.progress-label,.progress-scale{display:flex;align-items:center;justify-content:space-between}.progress-label output{min-width:52px;padding:5px 9px;border-radius:20px;background:color-mix(in srgb,var(--blue) 12%,var(--surface));color:var(--blue);font-weight:800;text-align:center}.progress-field input[type="range"]{width:100%;height:8px;padding:0;border:0;border-radius:20px;box-shadow:none!important;appearance:none;-webkit-appearance:none;background:linear-gradient(to right,var(--blue) 0 var(--progress),var(--surface-2) var(--progress) 100%);cursor:pointer}.progress-field input[type="range"]::-webkit-slider-runnable-track{height:8px;border-radius:20px;background:transparent}.progress-field input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;margin-top:-6px;border-radius:50%;border:3px solid var(--surface);background:var(--blue);box-shadow:0 2px 8px color-mix(in srgb,var(--blue) 35%,transparent)}.progress-field input[type="range"]::-moz-range-track{height:8px;border-radius:20px;background:var(--surface-2)}.progress-field input[type="range"]::-moz-range-progress{height:8px;border-radius:20px;background:var(--blue)}.progress-field input[type="range"]::-moz-range-thumb{width:15px;height:15px;border-radius:50%;border:3px solid var(--surface);background:var(--blue);box-shadow:0 2px 8px color-mix(in srgb,var(--blue) 35%,transparent)}.progress-scale{color:var(--muted);font-size:10px;font-weight:500}
.kanban-head .column-count,.member-count{min-width:25px;height:25px;padding:0 8px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:var(--ink);color:var(--surface);border:2px solid color-mix(in srgb,var(--surface) 80%,transparent);box-shadow:0 2px 8px rgba(0,0,0,.18);font-size:11px;font-weight:800;line-height:1}.readonly-pill{display:inline-flex;align-items:center;padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:12px;font-weight:700}.team-card{padding:0;overflow:hidden}.team-card-head{display:flex;justify-content:space-between;gap:14px;padding:15px}.team-card-head>div:first-child{min-width:0}.team-actions{display:flex;align-items:flex-start;gap:7px}.team-actions button,.remove-action{border:0;background:var(--surface-2);color:var(--blue);border-radius:7px;padding:7px 9px;font-size:10px;font-weight:700}.remove-action{color:var(--red)}.team-member-list{border-top:1px solid var(--line);padding:4px 15px}.team-member-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.team-member-row:last-child{border:0}.team-member-row>div{flex:1;min-width:0}.team-member-row strong,.team-member-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-member-row small,.team-empty{color:var(--muted);font-size:10px}.team-member-row .avatar{width:28px;height:28px}.member-row .remove-action{margin-left:3px}.read-only .task-card,.read-only .kanban-head{cursor:default}.read-only #new-project,.read-only #gantt-new-task,.read-only #new-sprint,.read-only [data-edit-project],.read-only [data-edit-sprint],.read-only #ai-plan-tasks,.read-only #customize-board,.read-only #new-task-view,.read-only #add-column,.read-only .column-add,.read-only .column-menu,.read-only #edit-task,.read-only #detail-delete-task,.read-only #checklist-form,.read-only #comment-form,.read-only [data-delete-check]{display:none!important}.read-only [data-check]{pointer-events:none}[data-theme="dark"] .kanban-head .column-count,[data-theme="dark"] .member-count{background:#f3effe;color:#171120;border-color:#3a2e4d}@media(max-width:620px){.team-card-head{flex-direction:column}.team-actions{align-self:flex-start}.member-row{flex-wrap:wrap}}
.member-profile-trigger{display:flex;align-items:center;gap:12px;min-width:0;flex:1;padding:5px 7px;margin:-5px -7px;border:0;border-radius:9px;background:transparent;color:inherit;text-align:left}.member-profile-trigger:hover,.member-profile-trigger:focus-visible{background:var(--surface-2);outline:none}.member-copy{display:block;min-width:0}.member-copy strong,.member-copy small,.project-count{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-count{margin-top:4px;color:var(--blue);font-size:10px;font-weight:700}.member-detail-head{display:flex;align-items:center;gap:13px;margin:0 38px 20px 0}.member-detail-head .avatar{width:48px;height:48px;font-size:15px;flex:none}.member-detail-head h2{margin:0}.member-detail-head p{margin:3px 0 0;color:var(--muted)}.member-detail-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:24px}.member-detail-summary>div{padding:13px;border-radius:9px;background:var(--surface-2)}.member-detail-summary strong,.member-detail-summary span{display:block}.member-detail-summary strong{font:800 17px Manrope}.member-detail-summary span{margin-top:3px;color:var(--muted);font-size:10px}.member-assignment-title{margin:0 0 10px;font:700 14px Manrope}.member-assignment-list{border:1px solid var(--line);border-radius:10px;overflow:hidden}.member-assignment{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 14px;border-bottom:1px solid var(--line)}.member-assignment:last-child{border:0}.member-assignment strong,.member-assignment small{display:block}.member-assignment small{margin-top:3px;color:var(--muted);font-size:10px}.member-assignment>span{padding:6px 9px;border-radius:20px;background:color-mix(in srgb,var(--blue) 10%,var(--surface));color:var(--blue);font-size:11px;font-weight:700;text-align:right}.member-assignments-empty{padding:24px;text-align:center}.member-assignments-empty p{margin:5px 0 0;color:var(--muted);font-size:12px}@media(max-width:620px){.member-detail-summary{grid-template-columns:1fr}.member-assignment{align-items:flex-start;flex-direction:column}.member-assignment>span{text-align:left}}
.assignee-options label>span:last-child{display:flex;flex-direction:column;line-height:1.15}.assignee-options label>span:last-child small{margin-top:3px;color:var(--muted);font-size:9px;font-weight:500}.assignee-options label:has(input:checked)>span:last-child small{color:inherit;opacity:.75}
.read-only #comment-form{display:flex!important}.read-only [data-check]{pointer-events:auto}.view-only #comment-form{display:none!important}.view-only [data-check]{pointer-events:none}.check-item>span small{display:block;margin-top:3px;color:var(--muted);font-size:9px;text-decoration:none}.comment strong,.comment p,.comment small{display:block}.comment p{margin:5px 0;line-height:1.45}.comment small{color:var(--muted);font-size:9px}
.user-chip>b.has-photo{background-size:cover;background-position:center;color:transparent}.profile-layout{display:grid;grid-template-columns:minmax(250px,320px) minmax(0,1fr);gap:18px;align-items:start}.profile-summary{text-align:center;position:sticky;top:100px}.profile-photo{width:112px;height:112px;margin:4px auto 15px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#e5e8ff,#d7ddff);color:#4f5cc6;font:800 28px Manrope;border:4px solid var(--surface);box-shadow:0 0 0 1px var(--line),0 10px 25px rgba(52,66,112,.15);background-size:cover;background-position:center}.profile-summary h2{margin:0;font:800 21px Manrope}.profile-summary>p{margin:5px 0;color:var(--blue);font-weight:700}.profile-summary>span{color:var(--muted);font-size:12px}.profile-project-stat{margin:20px 0;padding:16px;border-radius:10px;background:var(--surface-2)}.profile-project-stat strong,.profile-project-stat small{display:block}.profile-project-stat strong{font:800 27px Manrope}.profile-project-stat small{color:var(--muted)}.profile-skills{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.profile-skills span{padding:6px 9px;border-radius:20px;background:color-mix(in srgb,var(--blue) 11%,var(--surface));color:var(--blue);font-size:10px;font-weight:700}.profile-skills small{color:var(--muted)}.profile-history{margin-top:23px;padding-top:18px;border-top:1px solid var(--line);text-align:left}.profile-history h3{font:700 13px Manrope}.profile-history>div{display:flex;align-items:center;gap:9px;padding:7px 0;font-size:12px;font-weight:600}.profile-history .project-icon{width:28px;height:28px}.profile-history small{color:var(--muted)}.profile-editor{padding:25px}.profile-editor h3{margin:0 0 14px;font:700 15px Manrope}.profile-editor .form-grid{margin-bottom:4px}.profile-form-heading{grid-column:1/-1;margin:12px 0 0!important;padding-top:20px;border-top:1px solid var(--line)}.profile-photo-actions{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin-bottom:26px}.profile-photo-actions small{color:var(--muted);font-size:10px}.profile-editor .modal-actions{margin-bottom:0}@media(max-width:850px){.profile-layout{grid-template-columns:1fr}.profile-summary{position:static}}
.designation-panel{grid-column:1/-1}.designation-list{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:10px}.designation-list>.empty{grid-column:1/-1}.designation-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2)}.designation-row>div:first-child{min-width:0}.designation-row strong,.designation-row small{display:block;overflow:hidden;text-overflow:ellipsis}.designation-row small{margin-top:4px;color:var(--muted);font-size:10px}.designation-row>div:last-child{display:flex;gap:5px}.designation-row button{border:0;border-radius:7px;padding:6px 8px;background:var(--surface);color:var(--blue);font-size:10px;font-weight:700}@media(max-width:850px){.designation-list{grid-template-columns:1fr}}
.team-actions button.remove-action{background:color-mix(in srgb,var(--red) 10%,var(--surface));color:var(--red);border:1px solid color-mix(in srgb,var(--red) 22%,var(--line))}.team-actions button.remove-action:hover{background:color-mix(in srgb,var(--red) 17%,var(--surface));border-color:color-mix(in srgb,var(--red) 42%,var(--line))}.team-actions button.remove-action:focus-visible{outline-color:color-mix(in srgb,var(--red) 28%,transparent)}
.team-actions button.edit-action{background:color-mix(in srgb,var(--purple) 11%,var(--surface));color:var(--purple);border:1px solid color-mix(in srgb,var(--purple) 24%,var(--line))}.team-actions button.edit-action:hover{background:color-mix(in srgb,var(--purple) 18%,var(--surface));border-color:color-mix(in srgb,var(--purple) 42%,var(--line))}
.team-manager{display:flex;align-items:center;gap:8px;margin-top:13px;padding:9px;border-radius:9px;background:var(--surface-2);width:max-content;max-width:100%}.team-manager .avatar{width:28px;height:28px;flex:none}.team-manager span{min-width:0}.team-manager small,.team-manager strong,.team-manager em{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-manager small{font-size:8px;letter-spacing:.1em;color:var(--muted)}.team-manager strong{font-size:11px;margin-top:2px}.team-manager em{font-size:9px;color:var(--blue);font-style:normal;margin-top:2px}.manager-missing{display:inline-block;margin-top:11px;padding:6px 8px;border-radius:7px;background:color-mix(in srgb,var(--amber) 12%,var(--surface));color:var(--amber);font-size:9px;font-weight:700}
.member-professional{display:block;margin-top:3px;color:var(--muted);font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-edit-action{border:1px solid color-mix(in srgb,var(--purple) 20%,var(--line));background:color-mix(in srgb,var(--purple) 10%,var(--surface));color:var(--purple);border-radius:7px;padding:7px 9px;font-size:10px;font-weight:700}.member-edit-action:hover{background:color-mix(in srgb,var(--purple) 17%,var(--surface))}
.users-toolbar{display:grid;grid-template-columns:minmax(220px,1.5fr) repeat(3,minmax(150px,1fr));gap:10px;margin-bottom:16px}.users-toolbar input,.users-toolbar select{width:100%;border:1px solid var(--line);border-radius:9px;padding:10px 12px;background:var(--input);color:var(--ink)}.users-table-wrap{padding:0;overflow:auto}.users-table{width:100%;min-width:980px;border-collapse:collapse}.users-table th,.users-table td{padding:13px 15px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.users-table th{color:var(--muted);font-size:10px;letter-spacing:.04em;text-transform:uppercase;background:var(--surface-2)}.users-table tbody tr:last-child td{border-bottom:0}.users-table tbody tr:hover{background:color-mix(in srgb,var(--blue) 4%,var(--surface))}.directory-user{display:flex;align-items:center;gap:9px}.directory-user span{min-width:0}.directory-user strong,.directory-user small{display:block;max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.directory-user small{color:var(--muted);font-size:10px;margin-top:3px}.directory-projects{display:flex;flex-wrap:wrap;gap:5px}.directory-projects span{padding:4px 7px;border-radius:15px;background:color-mix(in srgb,var(--blue) 10%,var(--surface));color:var(--blue);font-size:9px;font-weight:700}.directory-projects small{color:var(--muted)}.directory-actions{display:flex;gap:6px}.directory-actions button{border:0;border-radius:7px;padding:7px 9px;background:var(--surface-2);color:var(--blue);font-size:10px;font-weight:700}.directory-actions button.remove-action{color:var(--red);background:color-mix(in srgb,var(--red) 9%,var(--surface))}.users-empty{text-align:center!important;color:var(--muted);padding:35px!important}@media(max-width:900px){.users-toolbar{grid-template-columns:1fr 1fr}}@media(max-width:620px){.users-toolbar{grid-template-columns:1fr}}
.remove-action{background:color-mix(in srgb,var(--red) 11%,var(--surface))!important;color:var(--red)!important;border:1px solid color-mix(in srgb,var(--red) 26%,var(--line))!important}.remove-action:hover{background:color-mix(in srgb,var(--red) 20%,var(--surface))!important;border-color:color-mix(in srgb,var(--red) 50%,var(--line))!important;color:color-mix(in srgb,var(--red) 85%,#fff)!important}.remove-action:focus-visible{outline:3px solid color-mix(in srgb,var(--red) 25%,transparent)!important;outline-offset:2px}.remove-action:active{background:color-mix(in srgb,var(--red) 26%,var(--surface))!important}
.form-error.success{background:#e7f8f0;color:#087754}.badge.pending{background:color-mix(in srgb,var(--amber) 14%,var(--surface));color:var(--amber)}.users-table tr.pending-user{background:color-mix(in srgb,var(--amber) 4%,var(--surface))}.directory-actions button.approve-action{background:color-mix(in srgb,var(--green) 12%,var(--surface));color:var(--green);border:1px solid color-mix(in srgb,var(--green) 25%,var(--line))}
.directory-actions{flex-wrap:nowrap}.access-switch{display:inline-flex;align-items:center;gap:7px;cursor:pointer;white-space:nowrap}.access-switch input{position:absolute;opacity:0;pointer-events:none}.access-switch span{width:34px;height:19px;padding:2px;border-radius:999px;background:var(--line);transition:.2s}.access-switch span:after{content:"";display:block;width:15px;height:15px;border-radius:50%;background:var(--surface);box-shadow:0 1px 4px rgba(0,0,0,.25);transition:.2s}.access-switch input:checked+span{background:var(--green)}.access-switch input:checked+span:after{transform:translateX(15px)}.access-switch input:focus-visible+span{outline:3px solid color-mix(in srgb,var(--blue) 25%,transparent)}.access-switch em{color:var(--muted);font-size:10px;font-style:normal;font-weight:700}.status-self{color:var(--muted);font-size:10px;white-space:nowrap}
.users-table .add-member-action{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:104px;padding:7px 10px;border:1px solid color-mix(in srgb,var(--blue) 35%,var(--line));border-radius:8px;background:color-mix(in srgb,var(--blue) 10%,var(--surface));color:var(--blue);font-size:10px;font-weight:800;white-space:nowrap;transition:.15s}.users-table .add-member-action span{font-size:13px;line-height:1}.users-table .add-member-action:hover{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 4px 12px color-mix(in srgb,var(--blue) 25%,transparent);transform:translateY(-1px)}.users-table .add-member-action:focus-visible{outline:3px solid color-mix(in srgb,var(--blue) 24%,transparent);outline-offset:2px}.users-table .add-member-action:active{transform:none}
.role-access{display:flex;align-items:center;gap:6px}.role-access button{border:0;border-radius:6px;padding:5px 7px;background:color-mix(in srgb,var(--blue) 9%,var(--surface));color:var(--blue);font-size:9px;font-weight:800}.role-access button:hover{background:color-mix(in srgb,var(--blue) 16%,var(--surface))}
.team-member-row>.allocation-edit-action{margin-left:auto}.team-member-row>.allocation-edit-action+.remove-action{margin-left:0}.allocation-edit-action{border:1px solid color-mix(in srgb,var(--purple) 22%,var(--line));background:color-mix(in srgb,var(--purple) 10%,var(--surface));color:var(--purple);border-radius:7px;padding:7px 9px;font-size:10px;font-weight:700}
.skill-tag-editor{position:relative}.skill-suggestions{position:absolute;z-index:20;top:calc(100% + 5px);left:0;right:0;max-height:210px;overflow:auto;padding:5px;border:1px solid var(--line);border-radius:9px;background:var(--surface);box-shadow:var(--shadow)}.skill-suggestions button{display:block;width:100%;padding:9px 10px;border:0;border-radius:6px;background:transparent;color:var(--ink);text-align:left;font-size:11px;font-weight:600}.skill-suggestions button:hover,.skill-suggestions button:focus{background:color-mix(in srgb,var(--blue) 11%,var(--surface));color:var(--blue);outline:0}
.task-card-title{display:flex;align-items:flex-start;gap:9px;margin:9px 0 8px}.task-card-title h4{margin:0;min-width:0}.task-completion-toggle{appearance:none;flex:0 0 18px;width:18px;height:18px;margin:1px 0 0;border:2px solid #8b97ac;border-radius:50%;background:transparent;cursor:pointer;display:grid;place-items:center;transition:.15s}.task-completion-toggle:checked{border-color:#84cc16;background:#84cc16}.task-completion-toggle:checked:after{content:"✓";color:#172006;font-size:12px;font-weight:900}.task-completion-toggle:focus-visible{outline:3px solid color-mix(in srgb,var(--blue) 30%,transparent);outline-offset:2px}.task-completion-toggle:disabled{cursor:not-allowed;opacity:.55}.task-completed .task-card-title h4{text-decoration:line-through;color:var(--muted)}
.board-loading{min-height:340px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--muted)}.board-loading i{width:28px;height:28px;border:3px solid var(--line);border-top-color:var(--blue);border-radius:50%;animation:spin .7s linear infinite}.board-loading strong{color:var(--ink)}.board-loading span{font-size:11px}
.people-workspace-switcher{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-bottom:14px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.people-workspace-switcher>span{margin-right:4px;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase}.people-workspace-switcher button{padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:var(--muted);font-size:10px;font-weight:700}.people-workspace-switcher button.active{border-color:var(--blue);background:color-mix(in srgb,var(--blue) 12%,var(--surface));color:var(--blue)}
.global-members-panel,.teams-panel{overflow:visible!important;max-height:none!important}.panel-search{display:flex;gap:7px;margin:4px 0 10px}.panel-search input{min-width:0;flex:1;border:1px solid var(--line);border-radius:8px;padding:9px 10px;background:var(--input);color:var(--ink)}.panel-search button,.panel-pagination button{border:1px solid color-mix(in srgb,var(--blue) 25%,var(--line));border-radius:8px;padding:8px 11px;background:color-mix(in srgb,var(--blue) 9%,var(--surface));color:var(--blue);font-size:10px;font-weight:800}.panel-pagination{display:flex;align-items:center;justify-content:center;gap:10px;min-height:30px;margin-top:10px;color:var(--muted);font-size:10px}.panel-pagination button:disabled{opacity:.45;cursor:not-allowed}.pagination-hidden{display:none!important}
.view-enter>.page-heading{animation:ui-heading-in .32s cubic-bezier(.2,.75,.25,1) both}.view-enter .stat-card,.view-enter .project-card,.view-enter>.panel,.view-enter>.dashboard-grid>.panel,.view-enter .people-grid>.panel,.view-enter .kanban-col,.view-enter .sprint-row,.view-enter .skill-member-card{animation:ui-card-in .38s cubic-bezier(.2,.75,.25,1) both;animation-delay:calc(var(--enter-index,0)*28ms)}@keyframes ui-heading-in{from{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:none}}@keyframes ui-card-in{from{opacity:0;transform:translateY(11px) scale(.992)}to{opacity:1;transform:none}}.panel,.stat-card,.project-card,.team-card,.task-card{transition:border-color .2s,box-shadow .2s,transform .2s,background-color .2s}.panel:hover{border-color:color-mix(in srgb,var(--blue) 18%,var(--line));box-shadow:0 10px 28px color-mix(in srgb,var(--blue) 7%,transparent)}.stat-card:hover,.team-card:hover,.task-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px color-mix(in srgb,var(--blue) 10%,transparent)}.badge,.member-count{transition:transform .18s,background-color .18s,color .18s}.badge:hover,.member-count:hover{transform:scale(1.05)}.modal-backdrop:not(.hidden){animation:ui-fade-in .18s ease-out both}.modal-backdrop:not(.hidden) .modal-card{animation:ui-modal-in .28s cubic-bezier(.2,.8,.2,1) both}.workspace-menu:not(.hidden){transform-origin:top left;animation:ui-menu-in .18s cubic-bezier(.2,.8,.2,1) both}@keyframes ui-fade-in{from{opacity:0}to{opacity:1}}@keyframes ui-modal-in{from{opacity:0;transform:translateY(12px) scale(.975)}to{opacity:1;transform:none}}@keyframes ui-menu-in{from{opacity:0;transform:translateY(-5px) scale(.98)}to{opacity:1;transform:none}}.board-loading{position:relative;overflow:hidden}.board-loading:after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(100deg,transparent 25%,color-mix(in srgb,var(--blue) 8%,transparent) 50%,transparent 75%);animation:ui-shimmer 1.5s infinite}@keyframes ui-shimmer{to{transform:translateX(100%)}}.task-completion-toggle:checked{animation:ui-check-pop .24s cubic-bezier(.2,.9,.3,1.4)}@keyframes ui-check-pop{50%{transform:scale(1.2)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
.avatar.has-photo{background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important;color:transparent!important}
.team-management-link{display:inline-flex;align-items:center;gap:5px;margin-top:11px;padding:0;border:0;background:transparent;color:var(--blue);font-size:10px;font-weight:800}.team-management-link:hover{text-decoration:underline}.team-management-link span{transition:transform .15s}.team-management-link:hover span{transform:translateX(3px)}
.ai-task-meta label,.ai-checklist-label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:9px;font-weight:700}.ai-checklist-label{margin-top:8px}.ai-task-checklist{width:100%;min-height:68px;border:1px solid var(--line);border-radius:7px;padding:9px;background:var(--input);color:var(--ink);resize:vertical}.project-date-rule{padding:11px 12px;border:1px solid color-mix(in srgb,var(--blue) 22%,var(--line));border-radius:9px;background:color-mix(in srgb,var(--blue) 7%,var(--surface))}.project-date-rule strong,.project-date-rule span{display:block}.project-date-rule span{color:var(--muted);font-size:10px;font-weight:400}
.skill-tag-editor{min-height:92px;padding:9px;border:1px solid var(--line);border-radius:9px;background:var(--input)}.skill-tag-list{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:7px}.skill-tag-list:empty{margin:0}.skill-tag-list span,.skill-tags span{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:999px;background:color-mix(in srgb,var(--blue) 11%,var(--surface));color:var(--blue);font-size:10px;font-weight:700}.skill-tag-list button{border:0;background:transparent;color:inherit;padding:0;font-size:14px;line-height:1}.skill-tag-editor>input{width:100%;border:0!important;padding:7px 3px!important;background:transparent!important;box-shadow:none!important;color:var(--ink)}.skills-search{display:grid;grid-template-columns:minmax(260px,1fr) minmax(180px,280px);gap:10px;margin-bottom:17px}.skills-search input,.skills-search select{border:1px solid var(--line);border-radius:9px;padding:11px 12px;background:var(--input);color:var(--ink)}.skills-directory{display:grid;grid-template-columns:repeat(3,minmax(240px,1fr));gap:14px}.skill-member-card{display:flex;flex-direction:column;gap:15px}.skill-member-head{display:flex;align-items:center;gap:10px}.skill-member-head>div{min-width:0}.skill-member-head strong,.skill-member-head small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.skill-member-head small,.skill-tags small,.skill-allocation-note{color:var(--muted);font-size:10px}.skill-tags{display:flex;flex-wrap:wrap;align-content:flex-start;gap:6px;min-height:58px}.skill-member-card>.btn{align-self:flex-start}.skill-allocation-note{display:block}@media(max-width:1000px){.skills-directory{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.skills-search,.skills-directory{grid-template-columns:1fr}}

/* Borderless, open-canvas startup animation. */
.boot-screen{background:radial-gradient(circle at 50% 45%,#f8fff9 0,#f2f7f2 38%,#eaf1ec 100%)}
.boot-screen:before{background-image:linear-gradient(rgba(37,148,91,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(37,148,91,.05) 1px,transparent 1px);background-size:38px 38px}
.boot-card{width:min(560px,calc(100vw - 32px));padding:20px;background:transparent;border:0;border-radius:0;box-shadow:none;backdrop-filter:none}
.boot-brand .brand-mark{position:relative;background:linear-gradient(145deg,#35c77a,#168a50);box-shadow:0 12px 30px rgba(28,165,91,.28)}
.boot-brand .brand-mark>i,.boot-brand .brand-mark:before,.boot-brand .brand-mark:after{content:"";position:absolute;width:5px;height:5px;border-radius:50%;background:#79efa9;box-shadow:0 0 10px #48dd8a;animation:boot-sparkle 1.7s ease-in-out infinite}
.boot-brand .brand-mark>i{right:-9px;top:2px}.boot-brand .brand-mark:before{left:-8px;top:12px;animation-delay:-.55s}.boot-brand .brand-mark:after{right:-5px;bottom:-6px;animation-delay:-1.1s}
.boot-orbit{width:230px;height:190px;margin:20px auto 12px}.orbit-ring{inset:28px 35px;border-color:rgba(34,169,96,.23);border-width:1.5px}.orbit-ring.ring-two{inset:47px 58px;border-color:rgba(108,76,241,.2)}
.orbit-core{inset:68px 88px 62px;border-radius:22px;background:linear-gradient(145deg,#36ce7d,#178b51);box-shadow:0 14px 34px rgba(25,159,83,.3)}
.orbit-icon,.orbit-badge{position:absolute;display:grid;place-items:center;background:#fff;border:1px solid rgba(31,139,81,.14);box-shadow:0 8px 24px rgba(24,87,53,.14);color:#177748;font-weight:800}
.orbit-icon{width:34px;height:34px;border-radius:11px;font-size:17px;animation:boot-icon-float 2.5s ease-in-out infinite}.orbit-resume{left:22px;top:77px}.orbit-job{right:18px;top:58px;animation-delay:-1.2s}
.orbit-badge{height:23px;padding:0 8px;border-radius:999px;font-size:8px;letter-spacing:.06em;animation:boot-badge-float 3s ease-in-out infinite}.badge-ai{left:58px;top:19px}.badge-ats{right:52px;bottom:17px;animation-delay:-1s}.badge-match{left:52px;bottom:15px;animation-delay:-2s}
.boot-card h1{font-size:23px;color:#153324}.boot-card p{color:#678071}.boot-progress{width:min(290px,70vw);margin:0 auto;background:#dce9df}.boot-progress i{background:linear-gradient(90deg,#1aa35b,#62df91,#6c4cf1)}.boot-steps span.active{background:#1ca45c}
[data-theme="dark"] .boot-screen{background:radial-gradient(circle at 50% 44%,#122b1d 0,#0c1912 48%,#08110c 100%)}[data-theme="dark"] .boot-card{background:transparent;border:0;box-shadow:none}[data-theme="dark"] .boot-card h1{color:#ecfff3}[data-theme="dark"] .orbit-icon,[data-theme="dark"] .orbit-badge{background:#13261b;border-color:#28593b;color:#76eca6}
@keyframes boot-sparkle{0%,100%{opacity:.15;transform:scale(.45)}50%{opacity:1;transform:scale(1.25)}}@keyframes boot-icon-float{50%{transform:translateY(-9px) rotate(4deg)}}@keyframes boot-badge-float{50%{transform:translateY(6px)}}
@media(max-width:480px){.boot-orbit{transform:scale(.86);margin:8px auto 0}.boot-card h1{font-size:20px}.boot-brand strong{font-size:19px}}

/* Minimal startup state: the Orbit animation is the only visible element. */
.boot-screen,.boot-screen[data-theme="dark"]{display:grid;place-items:center;background:var(--surface-2);color:var(--ink)}
.boot-screen:before,.boot-aurora,.boot-card,.boot-brand,.orbit-icon,.orbit-badge,.boot-progress,.boot-steps{display:none!important}
.boot-screen>.boot-orbit{display:block;position:relative;width:126px;height:126px;margin:0;transform:none}
.boot-screen .orbit-ring{display:block;position:absolute;inset:12px;border:1px solid color-mix(in srgb,var(--blue) 28%,transparent);border-radius:50%;transform:rotate(-22deg)}
.boot-screen .orbit-ring.ring-two{inset:28px;border-style:dashed;border-color:color-mix(in srgb,var(--blue) 24%,transparent);transform:rotate(28deg)}
.boot-screen .orbit-core{display:block;position:absolute;inset:45px;border-radius:16px;background:linear-gradient(145deg,#9b7cf8,var(--blue));box-shadow:0 10px 25px color-mix(in srgb,var(--blue) 34%,transparent)}
.boot-screen .orbit-core:after{content:"";position:absolute;inset:9px;border:3px solid #fff;border-radius:50%}
.boot-screen .orbit-dot{display:block;position:absolute;width:12px;height:12px;border:3px solid var(--surface);border-radius:50%;box-shadow:0 3px 10px rgba(50,34,82,.25)}
.boot-screen .dot-one{left:13px;top:53px;background:var(--blue);transform-origin:50px 10px;animation:boot-orbit-one 1.7s linear infinite}
.boot-screen .dot-two{right:23px;top:20px;width:10px;height:10px;background:#a78bfa;transform-origin:-26px 43px;animation:boot-orbit-two 2.3s linear infinite}
[data-theme="dark"] .boot-screen{background:var(--surface-2)}
@media(max-width:480px){.boot-screen>.boot-orbit{transform:scale(.9);margin:0}}

/* Playful Orbit loader — no text and no container panel. */
.boot-screen{isolation:isolate;overflow:hidden;background:radial-gradient(circle at center,color-mix(in srgb,var(--blue) 7%,var(--surface-2)) 0,var(--surface-2) 42%)}
.boot-screen>.boot-orbit{width:160px;height:160px;filter:drop-shadow(0 18px 22px color-mix(in srgb,var(--blue) 18%,transparent));animation:fun-loader-bob 2.4s ease-in-out infinite}
.boot-screen>.boot-orbit:before,.boot-screen>.boot-orbit:after{content:"";position:absolute;z-index:-1;inset:20px;border:2px solid color-mix(in srgb,var(--blue) 25%,transparent);border-radius:50%;animation:fun-loader-pulse 2s ease-out infinite}
.boot-screen>.boot-orbit:after{animation-delay:1s}
.boot-screen .orbit-ring{inset:13px;border-width:2px;border-color:color-mix(in srgb,var(--blue) 35%,transparent);border-left-color:var(--blue);border-bottom-color:transparent;animation:fun-ring-one 2.8s cubic-bezier(.65,0,.35,1) infinite}
.boot-screen .orbit-ring.ring-two{inset:34px;border:2px dashed color-mix(in srgb,#a78bfa 50%,transparent);animation:fun-ring-two 1.9s cubic-bezier(.65,0,.35,1) infinite}
.boot-screen .orbit-core{inset:54px;border-radius:21px;box-shadow:0 12px 30px color-mix(in srgb,var(--blue) 42%,transparent),inset 0 1px 1px rgba(255,255,255,.5);animation:fun-core 1.65s cubic-bezier(.45,0,.3,1) infinite}
.boot-screen .orbit-core:before{content:"";position:absolute;inset:-9px;border:2px solid color-mix(in srgb,var(--blue) 20%,transparent);border-radius:26px;animation:fun-core-halo 1.65s ease-in-out infinite}
.boot-screen .orbit-core:after{inset:11px;border-width:4px;animation:fun-logo-eye 1.65s ease-in-out infinite}
.boot-screen .orbit-dot{width:16px;height:16px;border-width:4px;box-shadow:0 0 0 5px color-mix(in srgb,var(--blue) 10%,transparent),0 6px 14px color-mix(in srgb,var(--blue) 30%,transparent)}
.boot-screen .dot-one{left:12px;top:68px;transform-origin:68px 12px;animation:fun-dot-one 1.55s cubic-bezier(.55,.08,.4,.95) infinite}
.boot-screen .dot-two{right:20px;top:25px;width:13px;height:13px;background:#ec4899;transform-origin:-42px 55px;animation:fun-dot-two 2.15s cubic-bezier(.55,.08,.4,.95) infinite}
@keyframes fun-loader-bob{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-10px) rotate(2deg)}}
@keyframes fun-loader-pulse{0%{opacity:.55;transform:scale(.55)}75%,100%{opacity:0;transform:scale(1.65)}}
@keyframes fun-ring-one{0%{transform:rotate(-25deg) scale(1)}45%{transform:rotate(190deg) scale(1.06)}100%{transform:rotate(335deg) scale(1)}}
@keyframes fun-ring-two{0%{transform:rotate(25deg)}50%{transform:rotate(-175deg) scale(.92)}100%{transform:rotate(-335deg)}}
@keyframes fun-core{0%,100%{transform:rotate(-5deg) scale(.96);border-radius:21px}45%{transform:rotate(8deg) scale(1.1);border-radius:50%}70%{transform:rotate(-2deg) scale(1.02);border-radius:17px}}
@keyframes fun-core-halo{0%,100%{opacity:.25;transform:scale(.82) rotate(0)}50%{opacity:.85;transform:scale(1.12) rotate(45deg)}}
@keyframes fun-logo-eye{0%,100%{transform:scale(.88)}50%{transform:scale(1.08)}}
@keyframes fun-dot-one{0%{transform:rotate(0) scale(.75)}40%{transform:rotate(165deg) scale(1.25)}100%{transform:rotate(360deg) scale(.75)}}
@keyframes fun-dot-two{0%{transform:rotate(0) scale(1.2)}55%{transform:rotate(-205deg) scale(.72)}100%{transform:rotate(-360deg) scale(1.2)}}
@media(prefers-reduced-motion:reduce){.boot-screen>.boot-orbit,.boot-screen>.boot-orbit:before,.boot-screen>.boot-orbit:after,.boot-screen .orbit-ring,.boot-screen .orbit-core,.boot-screen .orbit-core:before,.boot-screen .orbit-core:after,.boot-screen .orbit-dot{animation:none!important}}

.boot-screen{grid-template-rows:auto auto;align-content:center;gap:18px}.boot-loading{display:flex;align-items:flex-end;justify-content:center;height:24px;color:var(--blue);font:800 14px Manrope;letter-spacing:.06em}.boot-loading span{display:inline-block;animation:fun-loading-letter 1.25s ease-in-out infinite}.boot-loading span:nth-child(2){animation-delay:.08s}.boot-loading span:nth-child(3){animation-delay:.16s}.boot-loading span:nth-child(4){animation-delay:.24s}.boot-loading span:nth-child(5){animation-delay:.32s}.boot-loading span:nth-child(6){animation-delay:.4s}.boot-loading span:nth-child(7){animation-delay:.48s}.boot-loading i{width:4px;height:4px;margin:0 0 2px 4px;border-radius:50%;background:currentColor;animation:fun-loading-dot 1.1s ease-in-out infinite}.boot-loading i:nth-of-type(2){animation-delay:.15s}.boot-loading i:nth-of-type(3){animation-delay:.3s}@keyframes fun-loading-letter{0%,60%,100%{transform:translateY(0);opacity:.55}30%{transform:translateY(-7px) rotate(-4deg);opacity:1}}@keyframes fun-loading-dot{0%,60%,100%{transform:scale(.55);opacity:.3}30%{transform:translateY(-5px) scale(1);opacity:1}}@media(prefers-reduced-motion:reduce){.boot-loading span,.boot-loading i{animation:none!important;opacity:1}}

/* Intermediate project loader: a mini moving board, distinct from startup Orbit. */
.board-wait{min-height:340px;display:grid;place-content:center;justify-items:center;gap:22px;border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden}.wait-board{position:relative;display:grid;grid-template-columns:repeat(3,74px);gap:10px;padding:13px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2);box-shadow:0 18px 42px color-mix(in srgb,var(--blue) 10%,transparent);transform:rotate(-2deg);animation:wait-board-float 2.2s ease-in-out infinite}.wait-column{display:flex;flex-direction:column;gap:7px;min-height:108px;padding:8px;border:1px solid var(--line);border-radius:9px;background:var(--surface)}.wait-column b{width:60%;height:5px;margin-bottom:2px;border-radius:8px;background:color-mix(in srgb,var(--blue) 35%,var(--line))}.wait-column i{display:block;height:25px;border-radius:6px;background:linear-gradient(105deg,var(--surface-2) 20%,color-mix(in srgb,var(--blue) 14%,var(--surface)) 45%,var(--surface-2) 70%);background-size:220% 100%;animation:wait-card-shimmer 1.25s linear infinite}.wait-column:nth-child(2) i{animation-delay:-.35s}.wait-column:nth-child(3) i{animation-delay:-.7s}.wait-card{position:absolute;width:56px;height:25px;left:22px;top:52px;border-radius:6px;background:linear-gradient(135deg,#9b7cf8,var(--blue));box-shadow:0 7px 16px color-mix(in srgb,var(--blue) 30%,transparent);animation:wait-card-travel 2.7s cubic-bezier(.65,0,.35,1) infinite}.wait-dots{display:flex;gap:7px}.wait-dots i{width:7px;height:7px;border-radius:50%;background:var(--blue);animation:wait-dot-wave 1s ease-in-out infinite}.wait-dots i:nth-child(2){animation-delay:.13s}.wait-dots i:nth-child(3){animation-delay:.26s}@keyframes wait-board-float{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-7px) rotate(1deg)}}@keyframes wait-card-shimmer{to{background-position:-220% 0}}@keyframes wait-card-travel{0%,15%{transform:translate(0,0) rotate(0)}40%,55%{transform:translate(84px,38px) rotate(4deg)}80%,95%{transform:translate(168px,-5px) rotate(-3deg)}100%{transform:translate(0,0)}}@keyframes wait-dot-wave{0%,100%{transform:translateY(0);opacity:.35}50%{transform:translateY(-6px);opacity:1}}@media(max-width:480px){.wait-board{grid-template-columns:repeat(3,62px);gap:7px}.wait-card{width:48px}}@media(prefers-reduced-motion:reduce){.wait-board,.wait-column i,.wait-card,.wait-dots i{animation:none!important}}

.profile-photo-actions{flex-wrap:wrap}.profile-photo-actions>small:not(.image-upload-error){flex-basis:100%;line-height:1.5}.image-upload-error{display:block;flex-basis:100%;padding:9px 11px;border:1px solid color-mix(in srgb,var(--red) 42%,var(--line));border-radius:8px;background:color-mix(in srgb,var(--red) 9%,var(--surface));color:var(--red)!important;font-weight:700;line-height:1.45}.image-upload-error.hidden{display:none}
