:root{--color-navy:#0f172a;--color-accent:#1d4ed8;--color-surface-bg:#f5f6f8;--color-surface-card:#fff;--color-border:#e2e5ea;--color-text-secondary:#5b6472;--color-text-primary:#10182b;--color-success:#166534;--color-error:#b91c1c;--font-display:"Newsreader", Georgia, serif;--font-ui:"IBM Plex Sans", system-ui, sans-serif;--radius-input:4px;--radius-card:8px;--radius-button:6px;--radius-pill:999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-8:48px;--shadow-sm:0 1px 2px #0f172a0f;--shadow-md:0 4px 12px #0f172a14;--nav-height:56px;--bottom-nav-height:64px}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%}body{font-family:var(--font-ui);color:var(--color-text-primary);background:var(--color-surface-bg);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.5}h1,h2,h3,.wordmark{font-family:var(--font-display);letter-spacing:-.01em;font-weight:500}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}img{max-width:100%;display:block}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.app-page{max-width:1100px;padding:var(--space-5) var(--space-4);margin:0 auto}.app-page--narrow{max-width:480px}.card{background:var(--color-surface-card);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-sm)}.muted{color:var(--color-text-secondary)}.stack{gap:var(--space-4);flex-direction:column;display:flex}.row{align-items:center;gap:var(--space-3);display:flex}.row-wrap{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=768px){.app-page{padding:var(--space-4) var(--space-3) calc(var(--bottom-nav-height) + var(--space-5))}.shell-nav--desktop,.shell-signout{display:none}.shell-bottom{display:flex}}.app-shell{min-height:100vh}.shell-top{background:var(--color-navy);color:#fff;height:var(--nav-height)}.shell-top__inner{max-width:1100px;padding:0 var(--space-4);align-items:center;gap:var(--space-4);height:100%;margin:0 auto;display:flex}.shell-wordmark{color:#fff;font-size:18px;text-decoration:none}.shell-nav{gap:var(--space-3);flex:1;display:flex}.shell-link{color:#ffffffbf;border-radius:6px;padding:6px 10px;font-size:14px;font-weight:500;text-decoration:none}.shell-link--active,.shell-link:hover{color:#fff;background:#ffffff1a}.shell-profile{align-items:center;gap:var(--space-2);display:flex}.shell-avatar{background:#ffffff26;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:12px;font-weight:600;display:flex}.shell-profile__meta{flex-direction:column;line-height:1.2;display:flex}.shell-profile__name{font-size:13px;font-weight:500}.shell-profile__role{color:#ffffffa6;font-size:11px}.shell-signout{color:#fff;background:0 0;border:1px solid #ffffff40;border-radius:6px;padding:6px 12px;font-size:13px}.shell-main{min-height:calc(100vh - var(--nav-height))}.shell-bottom{height:var(--bottom-nav-height);background:var(--color-surface-card);border-top:1px solid var(--color-border);padding:0 var(--space-2);justify-content:space-around;align-items:center;display:none;position:fixed;bottom:0;left:0;right:0}.shell-bottom .shell-link{color:var(--color-text-secondary)}.shell-bottom .shell-link--active{color:var(--color-accent);background:#eef2ff}.auth-page{min-height:100vh;padding:var(--space-5);background:var(--color-surface-bg);justify-content:center;align-items:center;display:flex}.auth-card{width:100%;max-width:400px;padding:var(--space-6) var(--space-5)}.invite-note{color:var(--color-text-secondary);background:var(--color-surface-bg);border:1px solid var(--color-border);border-radius:6px;margin:12px 0 0;padding:8px 10px;font-size:12px}.page-header,.filters{margin-bottom:var(--space-4)}.chip-group{gap:var(--space-2);flex-wrap:wrap;display:flex}.chip{border:1px solid var(--color-border);background:var(--color-surface-card);border-radius:999px;padding:6px 12px;font-size:13px}.chip--active{border-color:var(--color-accent);color:var(--color-accent);background:#eef2ff;font-weight:600}.search-input{border:1px solid var(--color-border);background:var(--color-surface-card);border-radius:6px;flex:1;min-width:180px;min-height:36px;padding:8px 12px}.task-list{gap:var(--space-2)}.task-row{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4);color:inherit;text-decoration:none;display:flex}.task-row:hover{border-color:var(--color-accent)}.task-row__title{margin-bottom:4px;font-weight:600}.task-row__meta{gap:var(--space-3);flex-wrap:wrap;font-size:13px;display:flex}.task-row__badges{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.task-detail{padding:var(--space-5)}.kanban{gap:var(--space-4);grid-template-columns:repeat(3,1fr);display:grid}.kanban__col{background:var(--color-surface-bg);border:1px solid var(--color-border);border-radius:var(--radius-card);padding:var(--space-3);min-height:200px}.kanban__title{margin:0 0 var(--space-3);font-size:14px}.kanban__list{gap:var(--space-2);flex-direction:column;display:flex}.kanban__card-wrap .task-row{margin-bottom:var(--space-2)}.kanban__move-btn{color:var(--color-accent);background:0 0;border:none;padding:4px 0;font-size:11px;font-weight:600}.user-row{align-items:center;gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--color-border);display:flex}.notif-row{gap:var(--space-3);width:100%;padding:var(--space-4);border:none;border-bottom:1px solid var(--color-border);text-align:left;background:0 0;align-items:flex-start;display:flex}.notif-row--unread{background:#f8fafc}.notif-dot{background:var(--color-accent);border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:6px}.field__label{color:var(--color-text-secondary);margin-bottom:6px;font-size:13px;font-weight:500;display:block}.field__input{border-radius:var(--radius-input);border:1px solid var(--color-border);background:var(--color-surface-card);width:100%;padding:8px 12px}@media (width<=900px){.kanban{grid-template-columns:1fr}}
