:root{--ink:#161a1d;--muted:#b1a7a6;--line:#d3d3d3;--purple:#a4161a;--purple-dark:#660708;--surface:#fff;--canvas:#f5f3f4;--green:#660708;--blue:#ba181b;--shadow:0 8px 28px rgba(22,26,29,.08)}
*{box-sizing:border-box}
body{margin:0;background:var(--canvas);color:var(--ink);font:14px system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
button,input,textarea,select{font:inherit}
a{color:inherit;text-decoration:none}
button{cursor:pointer}
.app-shell{min-height:100vh}
.sidebar{width:246px;background:#fff;border-right:1px solid var(--line);position:fixed;inset:0 auto 0 0;padding:27px 17px 16px;display:flex;flex-direction:column;z-index:2}
.brand{display:flex;align-items:center;gap:10px;font:800 17px 'Manrope',sans-serif;letter-spacing:-.5px;padding:0 9px 36px}
.brand-mark{height:31px;width:31px;border-radius:10px;background:linear-gradient(145deg,#ba181b,#660708);color:#fff;display:grid;place-items:center;font:800 17px 'Manrope',sans-serif;box-shadow:0 4px 10px #66070866}
.side-nav{display:flex;flex-direction:column;gap:5px}
.side-nav>a{min-height:40px;display:flex;align-items:center;gap:11px;padding:0 12px;border-radius:9px;color:#717588;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.side-nav>a.active,.side-nav>a:hover{background:#f1efff;color:var(--purple)}
.nav-icon{font-size:18px;width:19px;text-align:center}
.nav-label{padding:28px 12px 7px;color:#a1a4b2;font-size:10px;letter-spacing:1.1px;font-weight:700}
.side-nav>a.project-nav{font-weight:500;font-size:13px}
.project-dot{width:8px;height:8px;border-radius:50%;flex:none;background:var(--purple)}
.project-dot.status-planning{background:#660708}.project-dot.status-paused{background:#b1a7a6}.project-dot.status-completed{background:#ba181b}
.sidebar-bottom{margin-top:auto}
.user-chip{display:flex;align-items:center;gap:10px;padding:15px 8px 13px;border-top:1px solid var(--line);font-weight:600}
.avatar{width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:#eeeaff;color:var(--purple);font-weight:700}
.logout-link{display:block;padding:0 8px;color:#9295a4;font-size:12px}
.main-content{margin-left:246px;min-height:100vh}
.topbar{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 42px}
.breadcrumbs{display:flex;align-items:center;gap:11px;color:#85899b;font-size:13px}.breadcrumbs strong{color:#34374a;font-weight:600}.breadcrumbs span{color:#c2c4ce}
.topbar-date{color:#999cac;font-size:12px}
.page-content{max-width:1500px;padding:37px 42px 60px;margin:auto}
.page-heading,.section-heading,.board-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}
.eyebrow{margin:0 0 8px;color:#9995ca;font-size:10px;font-weight:700;letter-spacing:1.2px}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{font-family:'Manrope',sans-serif;letter-spacing:-.5px}
h1{font-size:27px;margin:0 0 6px;font-weight:800}
h2{font-size:17px;margin:0 0 6px;font-weight:750}
.muted{color:var(--muted);margin:0}
.wave{color:#e9ad52;font-size:20px}
.button{border:0;border-radius:8px;padding:10px 15px;font-weight:700;font-size:12px;transition:.15s;white-space:nowrap}
.button.primary{color:#fff;background:var(--purple);box-shadow:0 4px 10px #7063e933}.button.primary:hover{background:var(--purple-dark);transform:translateY(-1px)}
.button.secondary{background:#fff;border:1px solid #e5e5ed;color:#55596d}.button.secondary:hover{background:#f7f7fb}
.button.full{width:100%;padding:12px}
.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;margin:29px 0 38px}
.stat-card{min-height:97px;background:#fff;border:1px solid var(--line);border-radius:12px;display:flex;align-items:center;gap:13px;padding:17px 19px;box-shadow:0 2px 7px #25283a05}
.stat-icon{width:39px;height:39px;border-radius:11px;display:grid;place-items:center;font-size:19px;font-weight:700}.stat-icon.violet{background:#f0edff;color:#786ce8}.stat-icon.blue{background:#e9f4ff;color:#4d95dc}.stat-icon.green{background:#e8f8f2;color:#2da985}
.stat-card>div{display:flex;flex-direction:column;gap:2px}.stat-label{font-size:11px;color:#8a8d9e}.stat-card strong{font:800 22px 'Manrope',sans-serif}.stat-note{margin-left:auto;color:#a0a2af;font-size:10px}
.section-heading{margin-bottom:16px}.section-heading h2{margin-bottom:4px}.section-heading p{font-size:12px}
.count-pill,.column-count{background:#f0eff6;color:#87899a;border-radius:20px;padding:5px 9px;font-size:10px;font-weight:700}
.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}
.project-card{display:block;background:white;border:1px solid var(--line);border-radius:12px;padding:18px;min-width:0;box-shadow:0 2px 7px #25283a05;transition:.18s}
.project-card:hover{border-color:#d9d4ff;box-shadow:var(--shadow);transform:translateY(-2px)}
.project-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.project-symbol{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#f5f3f4;color:#a4161a;font-size:17px}.project-symbol.status-planning{background:#f5f3f4;color:#660708}.project-symbol.status-paused{background:#d3d3d3;color:#161a1d}.project-symbol.status-completed{background:#f5f3f4;color:#ba181b}.project-symbol.large{width:45px;height:45px;font-size:21px}
.badge{font-size:10px;font-weight:700;border-radius:20px;padding:5px 9px}.status-badge-active{background:#e9f8f3;color:#239b77}.status-badge-planning{background:#fff5e9;color:#ce8734}.status-badge-paused{background:#f1f1f4;color:#828492}.status-badge-completed{background:#edebff;color:#6d60dc}
.project-card h3{font-size:15px;margin:0 0 6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.project-description{height:34px;line-height:17px;font-size:11px;color:#9194a3;margin:0 0 19px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.progress-meta{display:flex;justify-content:space-between;color:#9396a5;font-size:10px;margin-bottom:7px}.progress-meta strong{color:#55586a;font-size:11px}
.progress-track{height:6px;background:#efeff4;border-radius:9px;overflow:hidden}.progress-track span{height:100%;display:block;background:linear-gradient(90deg,#8375f0,#6d60df);border-radius:9px}
.project-card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:12px;color:#999baa;font-size:10px}.arrow{color:#a5a3ba;font-size:15px}
.empty-state{margin:24px 0;background:#fff;border:1px dashed #dedee8;border-radius:14px;text-align:center;padding:55px 20px}.empty-illustration{width:52px;height:52px;margin:0 auto 15px;border-radius:16px;display:grid;place-items:center;background:#f0edff;color:var(--purple);font-size:25px}.empty-state h3{font-size:16px;margin-bottom:8px}.empty-state p{color:var(--muted);font-size:12px;margin-bottom:20px}
.board-heading{margin:2px 0 12px}.board-title-wrap{display:flex;align-items:center;gap:13px}.board-title-wrap .eyebrow{margin:0 0 3px}.board-title-wrap h1{margin:0}.board-actions{display:flex;gap:9px}.board-description{color:#838698;font-size:12px;margin:0 0 19px 58px}
.board-overview{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:13px 16px;margin:19px 0 25px}.board-progress-copy{display:flex;gap:6px;align-items:baseline;min-width:112px}.board-progress-copy strong{font:800 17px 'Manrope',sans-serif;color:var(--purple)}.board-progress-copy span,.board-task-total{font-size:11px;color:#999baa}.board-overview .progress-track{flex:1}.board-task-total{min-width:87px;text-align:right}
.kanban{display:grid;grid-template-columns:repeat(3,minmax(230px,1fr));gap:15px;align-items:start}
.kanban-column{min-height:310px;background:#f1f1f6;border-radius:11px;padding:12px}
.column-heading{display:flex;align-items:center;justify-content:space-between;margin:0 2px 12px}.column-heading>div{display:flex;align-items:center;gap:8px}.column-heading h2{font:700 12px 'DM Sans',sans-serif;letter-spacing:0;margin:0}.column-count{padding:3px 7px;font-size:10px}.column-dot{width:8px;height:8px;border-radius:50%;background:#9b9ca9}.dot-doing{background:#6694e7}.dot-done{background:#39a886}.column-add,.task-menu,.icon-button{border:0;background:transparent;color:#9193a2}.column-add{font-size:18px;width:25px;height:25px;border-radius:6px}.column-add:hover{background:#e4e2ef}
.task-list{display:grid;gap:9px}.task-card{padding:12px;background:#fff;border:1px solid #eaeaf0;border-radius:9px;box-shadow:0 2px 5px #30314c08}.task-card-top{height:15px;display:flex;justify-content:space-between;align-items:center}.task-priority{height:5px;width:22px;border-radius:5px;background:#bbb3f5}.task-menu{font-weight:800;font-size:17px;letter-spacing:1px;line-height:10px;padding:0 3px}.task-menu:hover{color:#d06464}.task-card h3{font-size:12px;margin:10px 0 5px;line-height:1.5;overflow-wrap:anywhere}.task-card>p{font-size:10px;color:#9295a4;line-height:1.5;margin:0 0 11px;white-space:pre-wrap;overflow-wrap:anywhere}
.task-title-button{border:0;background:none;color:inherit;padding:0;text-align:left;font:inherit;cursor:pointer}.task-title-button:hover{color:var(--purple)}
.task-card-bottom{border-top:1px solid #f0f0f4;padding-top:8px;display:flex;align-items:center;justify-content:space-between;gap:7px}.task-date{font-size:9px;color:#a2a4b1}.task-move-form select{max-width:106px;border:1px solid #edecf2;border-radius:5px;background:#fafafd;padding:4px 18px 4px 6px;color:#747789;font-size:9px}
.column-empty{border:1px dashed #d7d7e2;border-radius:8px;text-align:center;color:#a4a5b2;font-size:10px;padding:19px 8px}
.add-task-inline{border:0;background:transparent;color:#999baa;font-size:11px;font-weight:600;padding:12px 3px 3px}.add-task-inline:hover{color:var(--purple)}
.notice{padding:11px 14px;border-radius:8px;margin-bottom:18px;font-size:12px}.notice.success{background:#eaf8f2;color:#218265}.notice.error{background:#fff0f0;color:#b84b4b}
.modal{padding:0;border:0;border-radius:14px;width:min(460px,calc(100% - 28px));max-height:90vh;box-shadow:0 20px 75px #28283d38}.modal::backdrop{background:#22223872;backdrop-filter:blur(2px)}.modal-content{padding:24px}.stack{display:flex;flex-direction:column;gap:15px}.modal-title{display:flex;justify-content:space-between;align-items:start;margin-bottom:2px}.modal-title h2{font-size:20px;margin:0}.icon-button{font-size:24px;line-height:20px}.modal label,.auth-card label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:11px;color:#55586b}.optional{color:#a3a5b0;font-weight:400}.modal input,.modal textarea,.modal select,.auth-card input{width:100%;border:1px solid #e5e5ed;border-radius:7px;padding:10px 11px;background:white;color:var(--ink);outline:none;font-size:12px}.modal textarea{resize:vertical}.modal input:focus,.modal textarea:focus,.modal select:focus,.auth-card input:focus{border-color:#aaa1f2;box-shadow:0 0 0 3px #7569e51a}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:5px}.modal-split{justify-content:space-between}.modal-split>div{display:flex;gap:8px}.danger-quiet{background:#fff1f1;color:#bd5757}.modal-split form{margin:0}
.auth-page{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(ellipse at 70% 10%,#eceaff 0,transparent 35%),#f8f8fb}.auth-card{width:min(410px,100%);background:white;border:1px solid var(--line);border-radius:15px;padding:30px;box-shadow:0 16px 50px #3735580c}.auth-card .brand{padding:0;margin-bottom:30px}.auth-card h1{font-size:24px;margin-bottom:7px}.auth-card>p{font-size:12px;margin-bottom:24px}.auth-card .stack{gap:16px}.auth-card .notice{margin-bottom:16px}.auth-card .small{font-size:10px;margin:18px 0 0}
.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}
@media(max-width:1050px){.sidebar{width:210px}.main-content{margin-left:210px}.topbar{padding:0 28px}.page-content{padding:30px 28px 50px}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.kanban{gap:10px}}
@media(max-width:720px){.sidebar{width:62px;padding:19px 8px}.sidebar .brand{padding:0 7px 29px;font-size:0}.brand-mark{flex:none}.side-nav>a{padding:0;justify-content:center;font-size:0}.side-nav>a.project-nav{font-size:0}.nav-icon{font-size:18px}.nav-label{font-size:0;padding:17px 0 5px}.project-dot{width:9px;height:9px}.user-chip{justify-content:center;padding:12px 0}.user-chip>span:last-child,.logout-link{display:none}.main-content{margin-left:62px}.topbar{height:58px;padding:0 17px}.page-content{padding:25px 17px 40px}.page-heading,.board-heading{align-items:flex-start;flex-direction:column}.page-heading>.button{align-self:flex-start}.stats-grid{gap:8px;margin:23px 0 30px}.stat-card{min-height:82px;padding:11px 9px;gap:8px;flex-wrap:wrap}.stat-icon{width:31px;height:31px;font-size:15px}.stat-card strong{font-size:18px}.stat-label{font-size:10px}.stat-note{display:none}.project-grid{grid-template-columns:1fr}.section-heading{align-items:flex-start}.board-heading{gap:15px}.board-actions{width:100%;flex-wrap:wrap}.board-actions .button{flex:1;padding:10px 8px}.board-description{margin-left:0}.board-overview{gap:9px;padding:11px}.board-progress-copy{min-width:93px}.board-task-total{min-width:70px;font-size:10px}.topbar-date{font-size:10px}}

:root{color-scheme:light}
body{background:var(--canvas);color:var(--ink)}
.sidebar{background:#0b090a;border-color:#161a1d;color:#f5f3f4}
.brand-mark{background:linear-gradient(145deg,#ba181b,#660708);box-shadow:0 4px 10px #66070866}
.side-nav>a{color:#b1a7a6}
.side-nav>a.active,.side-nav>a:hover{background:#660708;color:#fff}
.nav-label,.logout-link{color:#b1a7a6}
.topbar,.project-card,.stat-card,.empty-state,.board-overview,.task-card,.modal,.auth-card,.info-panel,.settings-card{background:var(--surface);color:var(--ink);border-color:var(--line)}
.breadcrumbs strong{color:#161a1d}
.eyebrow{color:#a4161a}
.button.primary{background:#a4161a;box-shadow:0 4px 10px #a4161a33}
.button.primary:hover{background:#660708}
.button.secondary{border-color:#d3d3d3;color:#161a1d}
.button.secondary:hover,.column-add:hover{background:#f5f3f4}
.project-dot,.project-symbol{background:#f5f3f4;color:#a4161a}
.project-dot.status-planning,.project-symbol.status-planning{background:#f5f3f4;color:#660708}
.project-dot.status-paused,.project-symbol.status-paused{background:#d3d3d3;color:#161a1d}
.project-dot.status-completed,.project-symbol.status-completed{background:#f5f3f4;color:#ba181b}
.project-card:hover{border-color:#ba181b}
.status-badge-active,.status-badge-completed{background:#f5f3f4;color:#660708}
.status-badge-planning{background:#f5f3f4;color:#a4161a}
.status-badge-paused{background:#d3d3d3;color:#161a1d}
.progress-track,.count-pill,.column-count{background:#d3d3d3;color:#161a1d}
.progress-track span{background:linear-gradient(90deg,#a4161a,#e5383b)}
.board-progress-copy strong{color:#a4161a}
.kanban-column{background:#f5f3f4}
.dot-doing,.dot-done{background:#ba181b}
.task-priority{background:#ba181b}
.task-menu:hover,.task-title-button:hover{color:#ba181b}
.task-card-bottom,.managed-user,.attachment-item{border-color:#d3d3d3}
.task-move-form select{background:#f5f3f4;border-color:#d3d3d3;color:#161a1d}
.notice.success{background:#f5f3f4;color:#660708}
.notice.error{background:#f5f3f4;color:#a4161a}
.danger-quiet{background:#f5f3f4;color:#a4161a}
.modal input,.modal textarea,.modal select,.auth-card input{border-color:#d3d3d3;background:#fff;color:#161a1d}
.modal input:focus,.modal textarea:focus,.modal select:focus,.auth-card input:focus{border-color:#ba181b;box-shadow:0 0 0 3px #ba181b22}
.modal::backdrop{background:#0b090a99}
.auth-page{background:radial-gradient(ellipse at 70% 10%,#d3d3d388 0,transparent 35%),#f5f3f4}
.avatar,.empty-illustration,.stat-icon,.attachment-icon,.admin-badge{background:#f5f3f4;color:#660708}
.stat-icon.violet,.stat-icon.blue,.stat-icon.green{background:#f5f3f4;color:#660708}
.wave{color:#ba181b}
.progress-meta strong,.board-progress-copy strong{color:#a4161a}
.board-description,.column-dot,.column-add,.task-menu,.icon-button,.optional{color:#b1a7a6}
.empty-illustration{color:#a4161a}
.column-empty{border-color:#d3d3d3}
.info-panel,.settings-card{border-color:#d3d3d3}
.info-panel input,.info-panel textarea,.settings-card input,.settings-card select,.settings-card textarea{border-color:#d3d3d3;color:#161a1d}

:root[data-theme="dark"]{color-scheme:dark;--ink:#f5f3f4;--muted:#b1a7a6;--line:#111111;--purple:#e5383b;--purple-dark:#ba181b;--surface:#111111;--canvas:#000000;--green:#ba181b;--blue:#e5383b;--shadow:0 8px 28px rgba(0,0,0,.3)}
:root[data-theme="dark"] body,:root[data-theme="dark"] .auth-page{background:#000000;color:#f5f3f4}
:root[data-theme="dark"] .sidebar{background:#000000;border-color:#111111;color:#f5f3f4}
:root[data-theme="dark"] .topbar,:root[data-theme="dark"] .project-card,:root[data-theme="dark"] .stat-card,:root[data-theme="dark"] .empty-state,:root[data-theme="dark"] .board-overview,:root[data-theme="dark"] .task-card,:root[data-theme="dark"] .modal,:root[data-theme="dark"] .auth-card,:root[data-theme="dark"] .info-panel,:root[data-theme="dark"] .settings-card{background:#111111;color:#f5f3f4;border-color:#b1a7a6}
:root[data-theme="dark"] .breadcrumbs strong,:root[data-theme="dark"] .column-heading h2,:root[data-theme="dark"] .stat-card strong,:root[data-theme="dark"] .project-card h3,:root[data-theme="dark"] .task-card h3{color:#f5f3f4}
:root[data-theme="dark"] .side-nav>a{color:#b1a7a6}
:root[data-theme="dark"] .side-nav>a.active,:root[data-theme="dark"] .side-nav>a:hover{background:#660708;color:#fff}
:root[data-theme="dark"] .nav-label,:root[data-theme="dark"] .logout-link,:root[data-theme="dark"] .muted,:root[data-theme="dark"] .topbar-date,:root[data-theme="dark"] .project-description,:root[data-theme="dark"] .project-card-footer,:root[data-theme="dark"] .progress-meta,:root[data-theme="dark"] .board-task-total,:root[data-theme="dark"] .task-date,:root[data-theme="dark"] .field-hint{color:#b1a7a6}
:root[data-theme="dark"] .breadcrumbs,:root[data-theme="dark"] .task-card>p{color:#d3d3d3}
:root[data-theme="dark"] .button.primary{background:#ba181b;color:#fff}
:root[data-theme="dark"] .button.primary:hover{background:#e5383b}
:root[data-theme="dark"] .button.secondary,:root[data-theme="dark"] .task-move-form select,:root[data-theme="dark"] .modal input,:root[data-theme="dark"] .modal textarea,:root[data-theme="dark"] .modal select,:root[data-theme="dark"] .auth-card input,:root[data-theme="dark"] .settings-card input,:root[data-theme="dark"] .settings-card select,:root[data-theme="dark"] .settings-card textarea,:root[data-theme="dark"] .info-panel input,:root[data-theme="dark"] .info-panel textarea,:root[data-theme="dark"] .upload-form input[type=file]{background:#000000;color:#f5f3f4;border-color:#b1a7a6}
:root[data-theme="dark"] .button.secondary:hover,:root[data-theme="dark"] .column-add:hover{background:#111111}
:root[data-theme="dark"] .kanban-column,:root[data-theme="dark"] .tasks-panel{background:#000000;border-color:#b1a7a6}
:root[data-theme="dark"] .progress-track,:root[data-theme="dark"] .count-pill,:root[data-theme="dark"] .column-count{background:#111111;color:#f5f3f4}
:root[data-theme="dark"] .progress-track span{background:linear-gradient(90deg,#ba181b,#e5383b)}
:root[data-theme="dark"] .task-card-bottom,:root[data-theme="dark"] .managed-user,:root[data-theme="dark"] .attachment-item{border-color:#b1a7a6}
:root[data-theme="dark"] .task-move-form select{color:#d3d3d3}
:root[data-theme="dark"] .notice.success,:root[data-theme="dark"] .notice.error,:root[data-theme="dark"] .danger-quiet{background:#111111;color:#f5f3f4}
:root[data-theme="dark"] .modal::backdrop{background:#000000cc}
:root[data-theme="dark"] .auth-page{background:radial-gradient(ellipse at 70% 10%,#66070866 0,transparent 35%),#000000}
:root[data-theme="dark"] .avatar,:root[data-theme="dark"] .empty-illustration,:root[data-theme="dark"] .stat-icon,:root[data-theme="dark"] .attachment-icon,:root[data-theme="dark"] .admin-badge{background:#660708;color:#f5f3f4}
:root[data-theme="dark"] .stat-icon.violet,:root[data-theme="dark"] .stat-icon.blue,:root[data-theme="dark"] .stat-icon.green{background:#660708;color:#f5f3f4}
:root[data-theme="dark"] .wave{color:#e5383b}
:root[data-theme="dark"] .board-description,:root[data-theme="dark"] .column-dot,:root[data-theme="dark"] .column-add,:root[data-theme="dark"] .task-menu,:root[data-theme="dark"] .icon-button,:root[data-theme="dark"] .optional{color:#b1a7a6}
:root[data-theme="dark"] .column-empty{border-color:#111111}
:root[data-theme="dark"] .info-panel input,:root[data-theme="dark"] .info-panel textarea,:root[data-theme="dark"] .settings-card input,:root[data-theme="dark"] .settings-card select,:root[data-theme="dark"] .settings-card textarea{border-color:#111111;color:#f5f3f4}
