:root{--canvas:#fcfcfa;--sidebar:#f8f9f6;--surface:#fff;--subtle:#f0f3f1;--accent:#174b3e;--accent-hover:#103c31;--ink:#17231f;--muted:#637069;--line:#dce2dd;--success-bg:#e5efe7;--warning:#a44713;--warning-bg:#fff0da;--danger:#a92f35;--danger-bg:#fff0f0;--overlay:#17231f66;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s8:32px;--s10:40px;--s12:48px;--s16:64px;--caption:13px;--small:14px;--body:16px;--h3:20px;--h2:26px;--h1:40px;--logo:30px;--radius:6px;--radius-lg:10px;--side-width:280px;--shadow:0 16px 48px #17231f26}
*{box-sizing:border-box}body{background:var(--canvas);color:var(--ink);font:var(--body) / 1.5 "Apple SD Gothic Neo", "Noto Sans KR", system-ui, sans-serif;word-break:keep-all;margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button:disabled{cursor:wait;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}h1,h2,h3,p{margin:0}h1{font-size:var(--h1);letter-spacing:-.035em;line-height:1.3}h2{font-size:var(--h2);letter-spacing:-.025em;line-height:1.4}h3{font-size:var(--h3);line-height:1.4}small{font-size:var(--caption)}svg{flex-shrink:0}input,select,textarea{min-width:0;max-width:100%;color:var(--ink)}input:not([type=checkbox]),select,textarea{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--s2) var(--s3);min-height:40px}textarea{resize:vertical;min-height:96px;line-height:1.6}input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);cursor:pointer}input::placeholder,textarea::placeholder{color:var(--muted)}hr{border:0;border-top:1px solid var(--line);margin:var(--s6) 0}.muted{color:var(--muted)}.small{font-size:var(--small)}.caption{font-size:var(--caption)}.mono{font-variant-numeric:tabular-nums}.stack{gap:var(--s4);flex-direction:column;display:flex}.cluster{align-items:center;gap:var(--s3);flex-wrap:wrap;display:flex}.between{justify-content:space-between}.grow{flex:1;min-width:0}.full{width:100%}.spaced{margin-top:var(--s6)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.preserve{white-space:pre-wrap;overflow-wrap:anywhere}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}
.button{justify-content:center;align-items:center;gap:var(--s2);min-height:40px;padding:var(--s2) var(--s4);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);font-weight:500;line-height:1.4;transition:opacity .1s;display:inline-flex}.button:hover{background:var(--subtle);text-decoration:none}.button:active{opacity:.8}.button.primary{background:var(--accent);border-color:var(--accent);color:var(--surface)}.button.primary:hover{background:var(--accent-hover)}.button.quiet{background:0 0;border-color:#0000}.button.danger{color:var(--danger);border-color:var(--danger)}.button.icon{padding:var(--s2);width:40px}.text-button{color:inherit;text-align:left;overflow-wrap:anywhere;background:0 0;border:0;padding:0;font-weight:500}.text-button:hover{color:var(--accent);text-decoration:underline}.field{gap:var(--s2);font-size:var(--small);flex-direction:column;display:flex}.field>span{font-weight:600}.field small{color:var(--muted);font-weight:400}.form-grid{gap:var(--s4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.wide{grid-column:1/-1}.badge{align-items:center;gap:var(--s1);padding:2px var(--s2);border-radius:var(--radius);font-size:var(--small);background:var(--subtle);white-space:nowrap;display:inline-flex}.badge.doing,.badge.done{background:var(--success-bg);color:var(--accent)}.badge.warning,.badge.paused{background:var(--warning-bg);color:var(--warning)}.badge.cancelled{color:var(--muted)}.feedback{padding:var(--s3) var(--s4);border-radius:var(--radius);background:var(--success-bg);color:var(--accent);font-size:var(--small);overflow-wrap:anywhere}.feedback.error{background:var(--danger-bg);color:var(--danger)}.empty{padding:var(--s12) var(--s6);text-align:center;align-items:center;gap:var(--s3);color:var(--muted);flex-direction:column;display:flex}.empty strong{color:var(--ink);font-size:var(--h3)}.tabs{border:1px solid var(--line);border-radius:var(--radius);display:inline-flex;overflow:hidden}.tabs button{border:0;border-right:1px solid var(--line);padding:var(--s2) var(--s5);color:var(--ink);white-space:nowrap;background:0 0;min-height:40px}.tabs button:last-child{border:0}.tabs button[aria-pressed=true]{background:var(--accent);color:var(--surface)}.tabs button:hover:not([aria-pressed=true]){background:var(--subtle)}
.dialog{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--canvas);color:var(--ink);width:min(640px,100% - 32px);max-height:calc(100dvh - 48px);box-shadow:var(--shadow);padding:0}.dialog::backdrop{background:var(--overlay)}.dialog-header{padding:var(--s5) var(--s6);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:var(--s3);background:var(--canvas);z-index:2;display:flex;position:sticky;top:0}.dialog-body{padding:var(--s6)}.dialog-actions{justify-content:flex-end;gap:var(--s2);margin-top:var(--s6);display:flex}.note{border-bottom:1px solid var(--line);padding:var(--s4) 0}.note:last-child{border-bottom:0}.note p{margin-top:var(--s2);white-space:pre-wrap;overflow-wrap:anywhere}.delete-work{border-top:1px solid var(--line);margin-top:var(--s6);padding-top:var(--s5)}.delete-work strong{overflow-wrap:anywhere}
.table-scroll{border:1px solid var(--line);border-radius:var(--radius);overflow:auto}table{border-collapse:collapse;text-align:left;width:100%;font-size:var(--body)}th{font-size:var(--small);background:var(--subtle);color:var(--muted);font-weight:500}th,td{padding:var(--s3) var(--s5);border-bottom:1px solid var(--line)}td{font-variant-numeric:tabular-nums}tr:last-child td{border-bottom:0}td a{overflow-wrap:anywhere}.employee-table{min-width:720px}.employee-table th,.employee-table td:first-child,.employee-count,.employee-table .table-subtitle,.employment-cell{white-space:nowrap}.task-filters{min-width:0;margin:0;padding:0}.filter-hint-part{display:inline-block}.employee-responsibilities{min-width:calc(var(--s10) * 5);max-width:calc(var(--s10) * 8);text-wrap:pretty}.sortable-heading{padding-block:var(--s1)}.sort-button{align-items:center;gap:var(--s1);min-height:var(--s10);padding:var(--s2) 0;border-radius:var(--radius);color:inherit;font:inherit;white-space:nowrap;background:0 0;border:0;display:inline-flex}.sort-button svg{flex-shrink:0}.sort-button:hover,.sortable-heading[aria-sort] .sort-button{color:var(--accent)}.annual-table{min-width:1000px}.annual-table th{white-space:nowrap}.weekly-table{min-width:560px}.metric{font-size:var(--h2);font-weight:600}.overdue{color:var(--warning)}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto;transition:none;animation:none}}@media (max-width:600px){h1{font-size:var(--h2)}.form-grid{grid-template-columns:1fr}.dialog-body,.dialog-header{padding:var(--s4)}.tabs button{padding:var(--s2) var(--s3)}th,td{padding:var(--s3)}.dialog{max-height:calc(100dvh - 24px)}}

.shell{min-height:100dvh}.sidebar{width:var(--side-width);background:var(--sidebar);border-right:1px solid var(--line);padding:var(--s8) var(--s5);gap:var(--s8);z-index:10;flex-direction:column;display:flex;position:fixed;inset:0 auto 0 0}.brand{gap:var(--s2);font-size:var(--logo);letter-spacing:-.04em;color:var(--accent);padding:0 var(--s4);align-items:center;font-weight:750;display:flex}.brand:hover{text-decoration:none}.nav{gap:var(--s2);flex-direction:column;display:flex}.nav a,.nav button{align-items:center;gap:var(--s4);padding:var(--s3) var(--s4);border-radius:var(--radius);font-size:var(--h3);color:var(--ink);text-align:left;white-space:nowrap;background:0 0;border:1px solid #0000;display:flex}.nav a:hover,.nav button:hover{background:var(--subtle);text-decoration:none}.nav a[aria-current=page]{background:var(--accent);color:var(--surface)}.sidebar-bottom{margin-top:auto}.workspace-caption{padding:var(--s5) var(--s4) 0;margin-top:var(--s4);border-top:1px solid var(--line)}.content{margin-left:var(--side-width);padding:0 var(--s8) var(--s8);min-width:0}.topbar{justify-content:space-between;align-items:center;gap:var(--s3);border-bottom:1px solid var(--line);min-height:64px;font-size:var(--small);display:flex}.breadcrumb{gap:var(--s4);font-size:var(--body);align-items:center;display:flex}.top-search{align-items:center;gap:var(--s2);color:var(--muted);display:flex}.top-search input:not([type=checkbox]){width:160px;padding:var(--s2);background:0 0;border:0}.page-heading{justify-content:space-between;align-items:center;gap:var(--s4);padding:var(--s6) 0;display:flex}.page-heading p{margin-top:var(--s2);color:var(--muted)}.page-heading>.button{white-space:nowrap;padding-inline:var(--s6);flex-shrink:0;min-height:48px}.filters{gap:var(--s6);margin-bottom:var(--s5);flex-wrap:wrap;align-items:center;display:flex}.filters .person-filter{border-left:1px solid var(--line);padding-left:var(--s6)}.filters .tabs{max-width:100%;overflow-x:auto}
.task-table{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.task-grid{align-items:center;gap:var(--s2);min-height:48px;padding:0 var(--s3);border-bottom:1px solid var(--line);grid-template-columns:38px minmax(160px,1fr) 156px 164px 200px 40px;display:grid}.task-head{font-size:var(--small);color:var(--muted);background:var(--subtle);min-height:44px}.task-group{background:var(--subtle);align-items:center;gap:var(--s3);padding:var(--s2) var(--s3);border-bottom:1px solid var(--line);min-height:44px;display:flex}.task-group strong{font-size:var(--body)}.task-group .button{min-height:28px;padding-block:var(--s1)}.task-row{background:var(--surface);min-height:48px}.task-row:hover{background:var(--canvas)}.task-row .row-title{font-weight:500;font-size:var(--body);padding-block:var(--s2)}.task-row.done .row-title{color:var(--muted)}.task-row select{min-height:32px;padding:var(--s1) var(--s2);width:fit-content;max-width:100%;font-size:var(--body);background:0 0;border-color:#0000}.task-row .state-select{background:var(--subtle);border:0;min-width:94px}.task-row .state-select.doing,.task-row .state-select.done{background:var(--success-bg);color:var(--accent)}.task-row .row-date{font-size:var(--body);align-items:center;gap:var(--s2);flex-wrap:wrap;display:flex}.table-add{padding:var(--s2) var(--s3);align-items:center;min-height:48px;display:flex}.table-add .button{color:var(--muted);min-height:32px}.weekly-preview{border-top:1px solid var(--line);margin-top:var(--s6);padding-top:var(--s5)}.section-heading{justify-content:space-between;gap:var(--s4);margin-bottom:var(--s3);align-items:center;display:flex}.section-heading p{color:var(--muted);margin-top:var(--s1)}.sync-meta{text-align:right;color:var(--muted);font-size:var(--caption);margin-top:var(--s2)}
.profile-grid{gap:var(--s5);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.summary-strip{gap:var(--s8);padding:var(--s5) 0;border-block:1px solid var(--line);margin-bottom:var(--s6);flex-wrap:wrap;display:flex}.settings-section{padding:var(--s6) 0;border-bottom:1px solid var(--line);max-width:900px}.settings-section h2{font-size:var(--h3);margin-bottom:var(--s3)}.repo-row{justify-content:space-between;align-items:center;gap:var(--s3);padding:var(--s3) 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere;display:flex}.details-list{padding:0;list-style:none}.details-list li{padding:var(--s3) 0;border-bottom:1px solid var(--line)}.notice-line{padding:var(--s3) 0;color:var(--muted);font-size:var(--small)}.selected-row{background:var(--success-bg)}.login-screen{min-height:100dvh;padding:var(--s6);place-items:center;display:grid}.login-panel{width:min(100%,380px)}.login-panel .brand{margin-bottom:var(--s12);padding:0}.login-panel h1{font-size:var(--h2)}.login-panel .intro{margin:var(--s3) 0 var(--s8);color:var(--muted)}.login-footer{margin-top:var(--s8);padding-top:var(--s5);border-top:1px solid var(--line);color:var(--muted);font-size:var(--small)}.global-feedback{top:var(--s2);z-index:5;margin-top:var(--s3);position:sticky}
.mobile-viewer{display:none}@media (max-width:1280px){.task-grid{grid-template-columns:30px minmax(140px,1fr) 120px 112px 136px 32px}.task-row .row-date .badge{font-size:var(--caption)}.task-group .caption{display:none}}@media (max-width:1024px){:root{--side-width:208px}.sidebar{padding-inline:var(--s3)}.brand{font-size:var(--h2)}.nav a,.nav button{font-size:var(--body)}.content{padding-inline:var(--s6)}.task-grid{gap:var(--s1);grid-template-columns:26px minmax(110px,1fr) 100px 100px 110px 28px}.task-row .row-date .badge{display:none}.task-grid .button.icon{width:28px}.top-search input:not([type=checkbox]){width:120px}}@media (max-width:900px){.mobile-viewer{gap:var(--s2);font-size:var(--small);overflow-wrap:anywhere;flex-wrap:wrap;align-items:baseline;display:flex}.sidebar{width:100%;padding:var(--s4);gap:var(--s4);border-right:0;border-bottom:1px solid var(--line);position:static}.brand{padding:0}.nav{gap:var(--s1);flex-flow:wrap}.nav a,.nav button{padding:var(--s2);gap:var(--s2);font-size:var(--small)}.nav svg{width:18px;height:18px}.sidebar-bottom{align-items:center;gap:var(--s3);top:var(--s3);right:var(--s3);display:flex;position:absolute}.sidebar-bottom .nav a span,.sidebar-bottom .nav button span,.workspace-caption{display:none}.content{padding-inline:var(--s4);margin-left:0}.topbar{min-height:48px}.top-search input:not([type=checkbox]){width:110px}.page-heading{align-items:flex-start}.page-heading>.button{min-height:40px;padding-inline:var(--s3);font-size:var(--small)}.filters{gap:var(--s3)}.filters .person-filter{border-left:0;padding-left:0}.task-head{display:none}.task-row{gap:var(--s2);padding:var(--s3);grid-template-columns:24px minmax(0,1fr) minmax(0,1fr) 28px}.task-row>.task-check{grid-area:1/1}.task-row>.row-title{grid-area:1/2/auto/4}.task-row>.row-person{grid-area:2/2}.task-row>.row-status{grid-area:2/3}.task-row>.row-date{grid-area:3/2/auto/4}.task-row>.row-menu{grid-area:1/4}.task-row .row-date .badge{display:inline-flex}.task-group{gap:var(--s2)}.task-group .button{font-size:var(--caption);padding:var(--s2)}.task-group strong{font-size:var(--small)}.section-heading{flex-wrap:wrap;align-items:flex-start}h2{font-size:var(--h3)}.profile-grid{grid-template-columns:1fr}.summary-strip{gap:var(--s5)}.weekly-table{font-size:var(--small);min-width:560px}.employee-table{min-width:650px}.page-heading .muted{font-size:var(--small)}}
.collection-progress,.repository-scope{padding:var(--s4) var(--s5);margin-block:var(--s4);border:1px solid var(--line);border-radius:var(--radius);background:var(--subtle)}.collection-progress progress{width:100%;height:var(--s2);margin-block:var(--s3);accent-color:var(--accent);display:block}.repository-scope p,.collection-progress p+p{margin-top:var(--s2)}.activity-disclosure{border-block:1px solid var(--line)}.activity-disclosure summary{cursor:pointer;padding-block:var(--s4);overflow-wrap:anywhere;font-weight:600}.disclosure-action{float:right;margin-left:var(--s3);color:var(--accent);font-weight:400}.when-open,details[open]>summary .when-closed{display:none}details[open]>summary .when-open{display:inline}.activity-disclosure>.details-list{margin-top:0}.weekly-table.with-files{min-width:820px}.weekly-table th{white-space:nowrap}.table-subtitle{margin-top:var(--s1);font-size:var(--caption);display:block}.repository-list{max-height:24rem;overflow:auto}.align-end{align-self:flex-end}
.record-fields{border:0;min-width:0;margin:0;padding:0}.operations-filters{align-items:end}.operations-filters .field{width:min(100%,200px)}.operations-filters input:not([type=checkbox]),.operations-filters select{width:100%}.operations-table{min-width:720px}.operations-table th,.operations-table td{vertical-align:top}.operations-table th,.record-date,.record-meta{white-space:nowrap}.operations-table td:first-child{min-width:180px;max-width:340px}.record-excerpt{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:var(--s2);max-width:340px}.operations-section{margin-top:var(--s8);border-top:1px solid var(--line);padding-top:var(--s6)}.operations-section h2{font-size:var(--h3)}.record-counts{gap:var(--s4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.followup-row{gap:var(--s2);grid-template-columns:24px minmax(0,1fr) 150px auto;align-items:center;display:grid}.followup-row input{min-width:0}.sidebar{overflow-y:auto}@media (max-width:600px){.operations-filters .field{width:100%}.record-counts{grid-template-columns:repeat(2,minmax(0,1fr))}.followup-row{grid-template-columns:24px minmax(0,1fr) auto}.followup-row input[type=date]{grid-column:2}}.work-title{text-wrap:balance;max-width:100%;display:inline-block}
.task-view-toolbar,.board-heading{justify-content:space-between;align-items:center;gap:var(--s3);margin-bottom:var(--s4);flex-wrap:wrap;display:flex}.task-view-switch{min-width:0;margin:0;padding:0}.task-view-switch button{align-items:center;gap:var(--s2);display:inline-flex}.board-heading{margin-top:var(--s6);font-size:var(--small)}.kanban-board{gap:var(--s3);grid-template-columns:repeat(4,minmax(0,1fr));align-items:start;display:grid}.kanban-column{background:var(--subtle);border-radius:var(--radius-lg);min-width:0;padding:var(--s3)}.kanban-column-heading{justify-content:space-between;align-items:center;gap:var(--s2);padding:var(--s1) var(--s1) var(--s4);display:flex}.kanban-column-heading h2{align-items:center;gap:var(--s2);font-size:var(--body);white-space:nowrap;display:flex}.kanban-column-heading .badge{background:var(--surface);font-variant-numeric:tabular-nums}.kanban-dot{width:var(--s2);height:var(--s2);background:var(--muted);border-radius:50%}.doing .kanban-dot{background:var(--accent)}.done .kanban-dot{background:var(--surface);border:2px solid var(--accent)}.paused .kanban-dot{background:var(--warning)}.kanban-cards{gap:var(--s3);flex-direction:column;display:flex}.kanban-card{align-items:stretch;gap:var(--s3);min-width:0;padding:var(--s4);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);flex-direction:column;display:flex}.kanban-card:focus-within{border-color:var(--accent)}.kanban-project{font-size:var(--caption);color:var(--muted)}.kanban-title{font-size:var(--body);text-wrap:pretty;font-weight:600;line-height:1.6}.kanban-card.done .kanban-title,.kanban-card.cancelled .kanban-title{color:var(--muted)}.kanban-due,.kanban-owner,.kanban-status{align-items:center;gap:var(--s2);font-size:var(--small);flex-wrap:wrap;display:flex}.kanban-due{color:var(--muted)}.kanban-due.overdue{color:var(--warning)}.kanban-due .badge{font-size:var(--caption)}.kanban-owner{margin-top:var(--s1);overflow-wrap:anywhere}.task-avatar{flex:0 0 var(--s8);height:var(--s8);background:var(--success-bg);color:var(--accent);font-size:var(--caption);border-radius:50%;justify-content:center;align-items:center;font-weight:600;display:inline-flex}.kanban-status{border-top:1px solid var(--line);padding-top:var(--s3)}.kanban-status select{width:100%;font-size:var(--small)}.kanban-empty{padding:var(--s8) var(--s2);color:var(--muted);text-align:center;font-size:var(--small)}@media (max-width:1279px){.kanban-board{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:600px){.kanban-board{grid-template-columns:minmax(0,1fr)}.task-view-toolbar{flex-direction:column;align-items:flex-start}}
.deadline-overview{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);padding:var(--s5)}.deadline-heading,.deadline-footer{justify-content:space-between;align-items:center;gap:var(--s3);flex-wrap:wrap;display:flex}.deadline-heading h2{font-size:var(--h3)}.deadline-heading p{color:var(--muted);font-size:var(--caption);margin-top:var(--s1)}.deadline-heading .cluster{gap:var(--s1)}.deadline-heading .button{font-size:var(--small)}.deadline-weeks{gap:var(--s3);margin-block:var(--s4);grid-template-columns:repeat(auto-fit,minmax(130px,1fr));display:grid}.deadline-week{align-items:stretch;gap:var(--s2);padding:var(--s3);border:1px solid var(--line);border-radius:var(--radius);background:var(--canvas);text-align:left;color:var(--ink);flex-direction:column;min-width:0;display:flex}.deadline-week:hover{background:var(--subtle)}.deadline-week[aria-pressed=true]{border-color:var(--accent);background:var(--success-bg)}.deadline-range{gap:var(--s1) var(--s2);font-size:var(--small);flex-wrap:wrap;display:flex}.deadline-range .caption{color:var(--accent)}.deadline-count{font-size:var(--caption);color:var(--muted)}.deadline-count strong{color:var(--ink);font-size:var(--h2);margin-right:var(--s1);font-variant-numeric:tabular-nums}.deadline-bar{height:var(--s1);border-radius:var(--radius);background:var(--line);display:block}.deadline-bar>span{background:var(--accent);border-radius:inherit;height:100%;display:block}.deadline-people{color:var(--muted);font-size:var(--caption);text-wrap:pretty;overflow-wrap:anywhere}.deadline-footer{border-top:1px solid var(--line);padding-top:var(--s2)}.deadline-footer .cluster{gap:var(--s1)}.deadline-footer .button{font-size:var(--small)}.deadline-footer .button[aria-pressed=true]{background:var(--accent);color:var(--surface)}@media (max-width:1100px){.deadline-weeks{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:600px){.deadline-overview{padding:var(--s4)}.deadline-weeks{grid-template-columns:minmax(0,1fr)}}.development-cycle{gap:var(--s3) var(--s6);margin:var(--s4) 0 0;padding:var(--s3);border-radius:var(--radius);background:var(--canvas);font-size:var(--small);flex-wrap:wrap;list-style:none;display:flex}.development-cycle li{align-items:center;gap:var(--s2);flex-wrap:wrap;display:flex}.deadline-heading input[type=month]{max-width:180px}
.deadline-kpi>.table-scroll td:first-child,.deadline-kpi>.table-scroll th:first-child{z-index:1;background:var(--surface);position:sticky;left:0}.deadline-kpi>.table-scroll th:first-child{background:var(--subtle);z-index:2}

