﻿@font-face{font-family:'Pretendard';font-weight:45 920;font-style:normal;font-display:swap;src:url("/static/fonts/PretendardVariable.woff2?1bf80c77af43") format("woff2-variations")}*,*::before,*::after{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,"Pretendard","Apple SD Gothic Neo","Malgun Gothic","맑은 고딕","Noto Sans KR","Segoe UI",sans-serif;font-size:13px;color:#1F1B16;background:#F0EBE0;-webkit-font-smoothing:antialiased;line-height:1.55;letter-spacing:-0.005em}a{color:#1F1B16;text-decoration:none;transition:color .12s ease}a:hover{color:#0F0C09;text-decoration:underline}button{font:inherit;cursor:pointer}img{max-width:100%;display:block}ul,ol{margin:0;padding:0;list-style:none}h1,h2,h3,h4,h5,h6,p,dl,dd{margin:0}table{border-collapse:collapse;width:100%}input,select,textarea{font:inherit;color:inherit}details summary{cursor:pointer}:focus{outline:none}:focus-visible{outline:2px solid #0F0C09;outline-offset:2px;border-radius:6px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none}::selection{background:#0F0C09;color:#F0EBE0}h1{font-size:26px;font-weight:800;letter-spacing:-0.025em;color:#0F0C09}h2{font-size:20px;font-weight:700;letter-spacing:-0.02em;color:#0F0C09}h3{font-size:16px;font-weight:700;letter-spacing:-0.01em;color:#0F0C09}h4{font-size:14px;font-weight:600;color:#0F0C09}.muted{color:#8A8170}strong{font-weight:700;color:#0F0C09}small{font-size:11px;color:#8A8170}.sidebar{background:#E8E2D3;border-right:1px solid #E5DFCF;display:flex;flex-direction:column;padding:12px 0 12px;z-index:30;height:100vh;max-height:100vh;overflow:hidden}@media (max-width:767px){.sidebar{position:fixed;top:0;left:0;bottom:0;width:280px;height:100vh;transform:translateX(-100%);transition:transform .25s ease;box-shadow:0 12px 32px rgba(31,27,22,0.1)}.sidebar--open{transform:translateX(0)}}.sidebar__brand{display:flex;align-items:center;gap:10px;padding:12px 16px 20px;text-decoration:none;color:inherit}.sidebar__brand:hover{text-decoration:none}.sidebar__brand-mark{width:30px;height:30px;border-radius:6px;background:#0F0C09;color:#F0EBE0;font-size:14px;font-weight:800;display:grid;place-items:center;letter-spacing:-0.02em;flex-shrink:0}.sidebar__brand-text{font-weight:700;font-size:15px;color:#0F0C09;letter-spacing:-0.02em}.sidebar__brand-dot{color:#C2410C}.sidebar__nav{flex:1;min-height:0;overflow-y:auto;padding:0 12px;scrollbar-width:thin}.sidebar__nav::-webkit-scrollbar{width:6px;height:6px}.sidebar__nav::-webkit-scrollbar-thumb{background:#DCD5C4;border-radius:3px}.sidebar__group{margin-bottom:20px}.sidebar__group-label{font-size:10px;font-weight:700;color:#8A8170;letter-spacing:0.08em;text-transform:uppercase;padding:0 12px 8px}.sidebar__link{display:flex;align-items:center;padding:7px 12px;border-radius:6px;color:#1F1B16;font-weight:500;font-size:13px;transition:background .12s ease,color .12s ease;margin-bottom:1px}.sidebar__link:hover{background:#F5F1E6;color:#0F0C09;text-decoration:none}.sidebar__link:focus-visible{outline:2px solid #0F0C09;outline-offset:2px}.sidebar__link--active{background:#0F0C09;color:#fff;font-weight:600}.sidebar__link--active:hover{background:#000;color:#fff}.sidebar__footer{padding:12px 16px 8px;border-top:1px solid #E5DFCF;margin-top:12px}.sidebar__user{display:flex;align-items:center;gap:12px;margin-bottom:8px}.sidebar__user-avatar{width:30px;height:30px;border-radius:50%;background:#0F0C09;color:#F0EBE0;font-weight:700;font-size:12px;display:grid;place-items:center}.sidebar__user-meta{display:flex;flex-direction:column;min-width:0}.sidebar__user-name{font-weight:600;font-size:12px;color:#0F0C09;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar__user-role{font-size:10px;color:#8A8170}.sidebar__sensitive{display:flex;align-items:center;gap:6px;width:100%;padding:7px 10px;margin-bottom:12px;border:1px solid #DCD5C4;border-radius:6px;background:#F0EBE0;color:#8A8170;font-size:11px;font-weight:600;cursor:pointer;transition:background .12s,color .12s,border-color .12s}.sidebar__sensitive:hover{background:#F5F1E6;color:#0F0C09;border-color:#8A8170}.sidebar__sensitive--on{background:#FEE2E2;border-color:rgba(220,38,38,0.35);color:#DC2626}.sidebar__sensitive--on:hover{background:#FEE2E2;color:#DC2626}.sidebar__sensitive-icon{font-size:13px;line-height:1}.sidebar__logout{display:block;text-align:center;padding:6px;color:#8A8170;font-size:11px;border-radius:6px;margin-top:8px;transition:background .12s,color .12s}.sidebar__logout:hover{background:#F5F1E6;text-decoration:none;color:#0F0C09}.sidebar__brand:hover .sidebar__brand-mark{background:#000}.sidebar__overlay{display:none}@media (max-width:767px){.sidebar__overlay{display:block;position:fixed;inset:0;background:rgba(31,27,22,0.45);z-index:20}}.topbar{height:56px;min-height:56px;background:#F0EBE0;border-bottom:1px solid #E5DFCF;display:flex;align-items:center;gap:12px;padding:0 20px;position:sticky;top:0;z-index:10;flex-shrink:0;box-sizing:border-box}@media (max-width:767px){.topbar{padding:0 12px;gap:8px}}.topbar__menu{background:transparent;border:0;padding:8px;display:none;cursor:pointer}@media (max-width:767px){.topbar__menu{display:inline-flex;flex-direction:column;gap:4px}}.topbar__menu span{display:block;width:20px;height:2px;background:#1F1B16;border-radius:2px}.topbar__breadcrumb{min-width:0}@media (max-width:767px){.topbar__breadcrumb{display:none}}.topbar__search{margin-left:auto}@media (max-width:767px){.topbar__search{display:none}}.topbar__search input{width:280px;padding:7px 12px;border:1px solid #DCD5C4;border-radius:6px;background:#FAF7F0;font-size:12px;color:#1F1B16}.topbar__search input::placeholder{color:#8A8170}.topbar__search input:focus{outline:none;border-color:#0F0C09;background:#fff}.topbar__bell{background:transparent;border:1px solid #DCD5C4;border-radius:6px;width:34px;height:34px;position:relative;display:inline-flex;align-items:center;justify-content:center;color:#1F1B16;cursor:pointer;flex-shrink:0;padding:0;transition:background .12s,border-color .12s,color .12s}.topbar__bell:hover{background:#F5F1E6;border-color:#8A8170;color:#0F0C09}.topbar__bell:focus-visible{outline:2px solid #0F0C09;outline-offset:2px}.topbar__bell-icon{display:block;pointer-events:none}.topbar__bell-slot{position:absolute;top:-6px;right:-6px;pointer-events:none}.bell__badge{display:inline-grid;place-items:center;min-width:18px;height:18px;background:#DC2626;color:#fff;font-size:10px;font-weight:700;border-radius:9px;padding:0 5px;border:2px solid #F0EBE0;line-height:1}.topbar__new{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;background:#0F0C09;color:#fff;border:1px solid #0F0C09;border-radius:6px;font-size:12px;font-weight:600;text-decoration:none;flex-shrink:0;cursor:pointer;transition:background .12s,border-color .12s}.topbar__new:hover{background:#000;border-color:#000;text-decoration:none;color:#fff}.topbar__new:focus-visible{outline:2px solid #0F0C09;outline-offset:2px}@media (max-width:767px){.topbar__new{padding:0;width:34px;height:34px;justify-content:center}.topbar__new .topbar__new-text{display:none}.topbar__new .topbar__new-icon{font-size:18px;line-height:1}}.topbar__new-icon{font-size:14px;font-weight:700;line-height:1}.topbar__notifications{position:fixed;right:20px;top:64px;min-width:320px;max-width:380px;background:#FAF7F0;border-radius:10px;box-shadow:0 12px 32px rgba(31,27,22,0.1);border:1px solid #DCD5C4;z-index:40;overflow:hidden}.layout{display:grid;grid-template-columns:220px 1fr;height:100vh;overflow:hidden}@media (max-width:767px){.layout{grid-template-columns:1fr}}.layout__main{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}.workspace{display:grid;grid-template-columns:1fr 0;transition:grid-template-columns .25s ease;flex:1;min-height:0;overflow:hidden}.workspace--with-detail{grid-template-columns:1fr 380px}@media (max-width:1023px){.workspace--with-detail{grid-template-columns:1fr}}.content{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.workspace .content{overflow:hidden;display:flex;flex-direction:column}.page-shell{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column}.page-shell__head{flex-shrink:0;padding:16px 20px 12px;border-bottom:1px solid #E5DFCF;background:#F0EBE0}@media (max-width:767px){.page-shell__head{padding:12px 12px 8px}}.page-shell__titlebar{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-top:4px}.page-shell__title{margin:0;font-size:22px;font-weight:700;line-height:1.2;color:#0F0C09;letter-spacing:-0.01em}.page-shell__sub{margin:3px 0 0;font-size:12px;color:#8A8170}.page-shell__actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.page-shell__body{flex:1;min-width:0;min-height:0}.page-shell__body--scroll{overflow-y:auto;overflow-x:hidden;padding:20px;scrollbar-width:thin}.page-shell__body--scroll::-webkit-scrollbar{width:6px;height:6px}.page-shell__body--scroll::-webkit-scrollbar-thumb{background:#DCD5C4;border-radius:3px}@media (max-width:767px){.page-shell__body--scroll{padding:12px}}.page-shell__body--split{overflow:hidden;display:flex;flex-direction:column}.page-shell__body--scroll>.page{padding:0}.page{max-width:none}.page--projects{max-width:none;width:100%;flex:1;min-height:0;display:flex;flex-direction:column;padding:20px}.page--placeholder{background:#FAF7F0;border-radius:10px;box-shadow:0 1px 2px rgba(31,27,22,0.04);padding:16px;border:1px solid #DCD5C4}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;border-radius:6px;border:1px solid #DCD5C4;background:#FAF7F0;color:#1F1B16;font-weight:600;font-size:12px;cursor:pointer;transition:background .12s,border-color .12s,color .12s,transform .05s;text-decoration:none;line-height:1.2}.btn:hover{text-decoration:none;background:#F5F1E6;border-color:#8A8170;color:#0F0C09}.btn:active{transform:scale(0.97)}.btn:focus-visible{outline:2px solid #0F0C09;outline-offset:2px}.btn:disabled{opacity:0.5;cursor:not-allowed;pointer-events:none}.btn--primary{background:#0F0C09;color:#F0EBE0;border-color:#0F0C09}.btn--primary:hover{background:#000;border-color:#000;color:#fff}.btn--ghost{background:#F0EBE0;border-color:#DCD5C4;color:#1F1B16}.btn--ghost:hover{background:#F5F1E6;border-color:#8A8170;color:#0F0C09}.btn--danger{background:#DC2626;color:#fff;border-color:#DC2626}.btn--danger:hover{background:#991B1B;border-color:#991B1B;color:#fff}.btn--block{width:100%}.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:600;line-height:1.4;white-space:nowrap;margin-right:4px;--cat-color:#8A8170;background:color-mix(in srgb,var(--cat-color) 14%,white);color:color-mix(in srgb,var(--cat-color) 65%,black);border:1px solid color-mix(in srgb,var(--cat-color) 22%,transparent)}.badge--solid{background:var(--cat-color);color:#fff;border-color:transparent}.dday{display:inline-block;padding:3px 8px;border-radius:6px;font-weight:700;font-size:11px;background:#F5F1E6;color:#8A8170;border:1px solid #E5DFCF;line-height:1.4}.dday--urgent{background:#FEE2E2;color:#DC2626;border-color:rgba(220,38,38,0.2)}.dday--overdue{background:#991B1B;color:#fff;border-color:#991B1B}.dday--today{background:#DC2626;color:#fff;border-color:#DC2626}.dday--danger{background:#FEE2E2;color:#DC2626;border-color:rgba(220,38,38,0.3)}.dday--warn{background:#FFF3E6;color:#C2630A;border-color:rgba(194,99,10,0.25)}.dday--soon{background:#FFFBE6;color:#9A7B0A;border-color:rgba(154,123,10,0.25)}.state-pill{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:600;line-height:1.4;white-space:nowrap;--state-color:#8A8170;background:var(--state-color);color:color-mix(in srgb,var(--state-color) 14%,white);border:1px solid color-mix(in srgb,var(--state-color) 22%,transparent)}.avatar{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#0F0C09;color:#F0EBE0;font-size:10px;font-weight:700;margin-right:-6px;border:2px solid #FAF7F0;position:relative;z-index:1}.page-header{margin-bottom:16px}.page-header h2{font-size:26px;font-weight:700;color:#0F0C09;letter-spacing:-0.02em;margin-bottom:4px}.page-header .page-header__sub{color:#8A8170;font-size:12px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap;background:#FAF7F0;border:1px solid #E5DFCF;border-radius:10px;padding:10px 12px}.toolbar__group{display:flex;align-items:center;gap:6px}.toolbar__inline-search{padding:6px 12px;border:1px solid #DCD5C4;border-radius:6px;background:#F0EBE0;font-size:12px;min-width:180px;flex:0 1 220px;margin-left:auto;color:#1F1B16}.toolbar__inline-search::placeholder{color:#8A8170}.toolbar__inline-search:focus{outline:none;border-color:#0F0C09;background:#fff}.cat-chips{display:inline-flex;flex-wrap:wrap;gap:4px;align-items:center}.cat-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px 5px 12px;background:#F0EBE0;border:1px solid #DCD5C4;border-radius:999px;font-size:12px;font-weight:500;color:#1F1B16;cursor:pointer;user-select:none;transition:background .12s,color .12s,border-color .12s;line-height:1.3;font-family:inherit}.cat-chip:hover{background:#F5F1E6;color:#0F0C09;border-color:#8A8170}.cat-chip:hover .cat-chip__count{background:#0F0C09;color:#fff}.cat-chip--on{background:#0F0C09;color:#fff;border-color:#0F0C09;font-weight:600}.cat-chip--on .cat-chip__count{background:rgba(255,255,255,0.18);color:#fff}.cat-chip--on:hover{background:#000;color:#fff;border-color:#000}.cat-chip--on:hover .cat-chip__count{background:rgba(255,255,255,0.25);color:#fff}.cat-chip:focus-visible{outline:2px solid #0F0C09;outline-offset:2px}.cat-chip__input{appearance:none;-webkit-appearance:none;position:absolute;width:0;height:0;opacity:0;pointer-events:none;margin:0;padding:0}.cat-chip__dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 1px rgba(0,0,0,0.08)}.cat-chip__count{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 6px;background:#F5F1E6;color:#8A8170;border-radius:999px;font-size:11px;font-weight:700;font-feature-settings:"tnum";line-height:1;transition:background .12s,color .12s}.filter-pop{position:relative;display:inline-block}.filter-pop__btn{display:inline-flex;align-items:center;gap:6px;border:1px solid #DCD5C4;background:#F0EBE0;padding:6px 12px;border-radius:6px;font-size:12px;font-weight:500;color:#1F1B16;cursor:pointer;user-select:none;transition:background .12s,color .12s,border-color .12s;line-height:1.3}.filter-pop__btn:hover{background:#F5F1E6;color:#0F0C09;border-color:#8A8170}.filter-pop__btn:focus-visible{outline:2px solid #0F0C09;outline-offset:2px}.filter-pop__btn--open{background:#0F0C09;color:#fff;border-color:#0F0C09}.filter-pop__btn--open:hover{background:#000;color:#fff;border-color:#000}.filter-pop__btn--open .filter-pop__count{background:#fff;color:#0F0C09}.filter-pop__count{background:#C2410C;color:#fff;border-radius:999px;padding:0 6px;font-size:10px;font-weight:700;min-width:16px;text-align:center}.filter-pop__panel{position:absolute;top:100%;left:0;z-index:20;margin-top:6px;background:#FAF7F0;border:1px solid #DCD5C4;border-radius:10px;box-shadow:0 12px 32px rgba(31,27,22,0.1);padding:8px;min-width:220px;max-height:320px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.filter-pop__item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;cursor:pointer;font-size:12px;color:#1F1B16;transition:background .12s,color .12s}.filter-pop__item:hover{background:#F5F1E6;color:#0F0C09}.filter-pop__item:has(input:checked){background:#E8E2D3;color:#0F0C09;font-weight:600}.filter-pop__item input[type="checkbox"]{accent-color:#0F0C09;width:14px;height:14px;cursor:pointer}.toolbar__inline-search{transition:border-color .12s,background .12s,box-shadow .12s}.toolbar__inline-search:hover{border-color:#8A8170;background:#FAF7F0}.toolbar__group--scope{background:#FAF7F0;border:1px solid #DCD5C4;border-radius:6px;padding:3px;gap:0;display:inline-flex}.seg__input{appearance:none;-webkit-appearance:none;position:absolute;width:0;height:0;opacity:0;pointer-events:none;margin:0;padding:0}.seg{display:inline-flex;align-items:center;gap:7px;border:0;background:transparent;padding:5px 12px 5px 16px;font-size:12px;font-weight:600;cursor:pointer;color:#1F1B16;transition:background .12s,color .12s;user-select:none;border-radius:6px;line-height:1.3;position:relative}.seg:first-child,.seg:last-child{border-radius:6px}.seg:hover{background:#F5F1E6;color:#0F0C09}.seg:hover .seg__count{background:#0F0C09;color:#fff}.seg:focus-within{outline:2px solid #0F0C09;outline-offset:2px;z-index:1}.seg--active{background:#0F0C09;color:#fff;font-weight:700;box-shadow:0 1px 2px rgba(0,0,0,0.15)}.seg--active .seg__count{background:rgba(255,255,255,0.18);color:#fff}.seg--active:hover{background:#000;color:#fff}.seg--active:hover .seg__count{background:rgba(255,255,255,0.25);color:#fff}.seg__count{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 6px;background:#F5F1E6;color:#8A8170;border-radius:999px;font-size:11px;font-weight:700;font-feature-settings:"tnum";line-height:1;transition:background .12s,color .12s}.select{padding:6px 12px;border:1px solid #DCD5C4;border-radius:6px;background:#F0EBE0;font-size:12px;color:#1F1B16;cursor:pointer;transition:border-color .12s,background .12s,box-shadow .12s}.select:hover{background:#F5F1E6;border-color:#8A8170}.select:focus{outline:none;border-color:#0F0C09;background:#fff;box-shadow:0 0 0 3px rgba(15,12,9,0.1)}.project-list{background:#FAF7F0;border:1px solid #E5DFCF;border-radius:10px;flex:1;min-height:0;overflow-y:auto;overflow-x:auto;scrollbar-width:thin}.project-list::-webkit-scrollbar{width:6px;height:6px}.project-list::-webkit-scrollbar-thumb{background:#DCD5C4;border-radius:3px}.page--projects>.page-header,.page--projects>.toolbar{flex-shrink:0}.cat-dot{display:inline-block;width:9px;height:9px;border-radius:50%;box-shadow:0 0 0 1px rgba(0,0,0,0.1);cursor:help;flex-shrink:0;transition:transform .12s ease}.cat-dot:hover{transform:scale(1.4)}.row-name__dot{margin-right:2px}.group-header{--cat-color:#6B7280;background:color-mix(in srgb,var(--cat-color) 8%,white)!important;cursor:default}.group-header td{position:sticky;top:calc(var(--thead-h,42px) - 1px);z-index:2;padding:13px 16px 10px;border-top:0;border-bottom:0;box-shadow:inset 0 4px 0 var(--cat-color),inset 0 -1px 0 color-mix(in srgb,var(--cat-color) 25%,transparent);font-size:12px;background:color-mix(in srgb,var(--cat-color) 8%,white)!important}.group-header:hover td{background:color-mix(in srgb,var(--cat-color) 8%,white)!important}.group-header__name{font-weight:700;letter-spacing:-0.01em;color:color-mix(in srgb,var(--cat-color) 70%,#111)}.group-header__count{display:inline-grid;place-items:center;min-width:20px;height:18px;padding:0 7px;margin-left:10px;background:var(--cat-color);color:#fff;border-radius:999px;font-size:11px;font-weight:700;font-feature-settings:"tnum";line-height:1;vertical-align:middle}.row-name{display:inline-flex;align-items:baseline;gap:6px}.row-flag{display:inline-grid;place-items:center;height:16px;padding:0 6px;background:#0F0C09;color:#F0EBE0;border-radius:6px;font-size:10px;font-weight:700;line-height:1;font-feature-settings:"tnum";cursor:help}.row-memo{display:inline-block;margin-left:4px;font-size:10px;font-weight:700;color:#C2410C;cursor:help}.row-lastmemo{font-size:11px;color:#8A8170;margin-top:2px;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:48em}.row-subtitle{font-size:11px;font-weight:400;color:#8A8170;margin-top:2px;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:48em}.row-subtitle__sep{opacity:0.5;margin:0 4px}.row-next-ms{color:#1F1B16}.row-next-ms--urgent{color:#DC2626;font-weight:600}.table{width:100%;font-size:12px;--thead-h:42px}.table thead{position:sticky;top:0;z-index:3}.table th{text-align:left;padding:12px 12px;font-weight:600;color:#8A8170;border-bottom:1px solid #E5DFCF;font-size:11px;text-transform:uppercase;letter-spacing:0.05em;white-space:nowrap;background:#F5F1E6}.table td{padding:12px;border-bottom:1px solid #EAE3D2;vertical-align:middle;color:#1F1B16}.table tr:last-child td{border-bottom:0}.table tbody tr{transition:background .12s ease;cursor:pointer;position:relative;background:#FAF7F0}.table tbody tr:nth-child(even){background:color-mix(in srgb,#F0EBE0 60%,#FAF7F0)}.table tbody tr:hover td{background:color-mix(in srgb,#C2410C 9%,#FAF7F0);color:#0F0C09}.table tbody tr.row--selected td{background:#E8E2D3;color:#0F0C09;font-weight:600}.table tbody tr:focus-visible{outline:2px solid #0F0C09;outline-offset:-2px}.table tbody tr .row-link::after{content:"";position:absolute;inset:0;z-index:0}.table tbody td a:not(.row-link),.table tbody td button,.table tbody td form,.table tbody td label,.table tbody td input,.table tbody td select{position:relative;z-index:1}.row--urgent td{background:rgba(220,38,38,0.04)}.row--overdue td{background:rgba(153,27,27,0.06)}.row--urgent:hover td{background:rgba(220,38,38,0.1);color:#0F0C09}.row--overdue:hover td{background:rgba(153,27,27,0.12);color:#0F0C09}@media (max-width:767px){.table thead{display:none}.table,.table tbody{display:block;background:transparent;border:0}.table tr{display:block}.table tbody tr.group-header{margin:16px 0 8px;padding:0;background:transparent!important}.table tbody tr.group-header td{display:block;position:static;padding:8px 12px;background:color-mix(in srgb,var(--cat-color) 12%,white)!important;border:0;border-radius:6px;box-shadow:inset 3px 0 0 var(--cat-color);color:color-mix(in srgb,var(--cat-color) 70%,#111);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:0.05em}.table tbody tr.row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;padding:12px 14px;margin:8px 0;background:#FAF7F0!important;border:1px solid #E5DFCF;border-radius:10px;box-shadow:0 1px 2px rgba(31,27,22,0.04);cursor:pointer;transition:border-color .12s,box-shadow .12s}.table tbody tr.row:hover{border-color:#8A8170;box-shadow:0 2px 6px rgba(31,27,22,0.06);background:#FAF7F0!important}.table tbody tr.row td{display:flex;align-items:center;gap:5px;padding:0;border:0;margin:0;background:transparent!important;min-width:0;color:#1F1B16}.table tbody tr.row td::before{display:none}.table tbody tr.row td[data-label="프로젝트명"]{grid-column:1;grid-row:1;display:block}.table tbody tr.row td[data-label="D-day"]{grid-column:2;grid-row:1;justify-self:end;align-self:start;font-size:12px}.table tbody tr.row td[data-label="지원사업"]{grid-column:1;grid-row:2;font-size:12px;color:#8A8170;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.table tbody tr.row td[data-label="상태"]{grid-column:2;grid-row:2;justify-self:end;align-self:center}.table tbody tr.row td[data-label="클라이언트"]{grid-column:1;grid-row:3;font-size:12px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.table tbody tr.row td[data-label="마감"]{grid-column:2;grid-row:3;justify-self:end;align-self:center;font-size:11px;color:#8A8170;font-feature-settings:"tnum"}.table tbody tr.row td[data-label="담당자"]{grid-column:1 / -1;grid-row:4;flex-wrap:wrap;gap:3px}.table tbody tr.row td[data-label="담당자"]:not(:has(.avatar)){display:none}.row-name{font-size:14px;gap:5px}.row-name strong{font-weight:700}.row-subtitle{font-size:11px;margin-top:3px;max-width:none;white-space:normal}.table tbody tr.row--urgent{border-left:3px solid #D97706}.table tbody tr.row--overdue{border-left:3px solid #991B1B}.table tbody tr.row--urgent td,.table tbody tr.row--overdue td{background:transparent!important}.table tbody tr:nth-child(even){background:transparent}}.card{background:#FAF7F0;border-radius:10px;box-shadow:0 1px 2px rgba(31,27,22,0.04);padding:16px;border:1px solid #DCD5C4}.profile{display:grid;grid-template-columns:120px 1fr;gap:12px 16px;background:#FAF7F0;border-radius:10px;box-shadow:0 1px 2px rgba(31,27,22,0.04);padding:16px;border:1px solid #DCD5C4;max-width:600px}.profile dt{color:#8A8170;font-weight:500}.profile dd{font-weight:500}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.field__label{font-size:11px;font-weight:700;color:#8A8170;letter-spacing:0.05em;text-transform:uppercase}.field input[type="text"],.field input[type="email"],.field input[type="password"],.field input[type="search"],.field input[type="date"],.field input[type="number"],.field select,.field textarea{padding:9px 12px;border:1px solid #DCD5C4;border-radius:6px;background:#F0EBE0;font-size:14px;color:#0F0C09;transition:border-color .12s,background .12s,box-shadow .12s}.field input[type="text"]::placeholder,.field input[type="email"]::placeholder,.field input[type="password"]::placeholder,.field input[type="search"]::placeholder,.field input[type="date"]::placeholder,.field input[type="number"]::placeholder,.field select::placeholder,.field textarea::placeholder{color:#8A8170}.field input[type="text"]:hover:not(:disabled):not(:focus),.field input[type="email"]:hover:not(:disabled):not(:focus),.field input[type="password"]:hover:not(:disabled):not(:focus),.field input[type="search"]:hover:not(:disabled):not(:focus),.field input[type="date"]:hover:not(:disabled):not(:focus),.field input[type="number"]:hover:not(:disabled):not(:focus),.field select:hover:not(:disabled):not(:focus),.field textarea:hover:not(:disabled):not(:focus){border-color:#8A8170;background:#FAF7F0}.field input[type="text"]:focus,.field input[type="email"]:focus,.field input[type="password"]:focus,.field input[type="search"]:focus,.field input[type="date"]:focus,.field input[type="number"]:focus,.field select:focus,.field textarea:focus{outline:none;border-color:#0F0C09;background:#fff;box-shadow:0 0 0 3px rgba(15,12,9,0.1)}.field input[type="text"]:disabled,.field input[type="email"]:disabled,.field input[type="password"]:disabled,.field input[type="search"]:disabled,.field input[type="date"]:disabled,.field input[type="number"]:disabled,.field select:disabled,.field textarea:disabled{background:#F5F1E6;color:#8A8170;cursor:not-allowed;opacity:0.7}.field__err{color:#DC2626;font-size:11px;margin-top:2px}.field__hint{color:#8A8170;font-size:11px;margin-top:2px}.auth{min-height:100vh;display:grid;place-items:center;background:radial-gradient(ellipse at top,#F5F1E6 0%,#F0EBE0 60%);padding:20px}.auth__card{background:#FAF7F0;border:1px solid #E5DFCF;border-radius:14px;padding:40px 28px 28px;width:100%;max-width:380px;box-shadow:0 12px 32px rgba(31,27,22,0.1)}.auth__brand{text-align:center;margin-bottom:20px;display:flex;flex-direction:column;align-items:center;gap:10px}.auth__brand h1{font-size:20px;font-weight:800;letter-spacing:-0.02em;color:#0F0C09;margin-top:4px}.auth__brand-mark{width:52px;height:52px;border-radius:10px;background:#0F0C09;color:#F0EBE0;font-weight:800;font-size:22px;display:grid;place-items:center;letter-spacing:-0.02em}.auth__brand-sub{color:#8A8170;font-size:12px;letter-spacing:-0.01em}.auth__form{display:flex;flex-direction:column;gap:12px;margin-top:16px}.auth__form .field{margin:0}.auth__form .field__label{font-size:11px;font-weight:700;color:#8A8170;letter-spacing:0.05em;text-transform:uppercase;margin-bottom:4px}.auth__form input[type="text"],.auth__form input[type="password"]{padding:10px 12px;border:1px solid #DCD5C4;border-radius:6px;background:#F0EBE0;font-size:14px;color:#0F0C09}.auth__form input[type="text"]:focus,.auth__form input[type="password"]:focus{outline:none;border-color:#0F0C09;background:#fff;box-shadow:0 0 0 3px rgba(15,12,9,0.08)}.auth__form .btn--primary{margin-top:8px;padding:11px;font-size:14px;font-weight:700}.auth__error{background:#FEE2E2;color:#DC2626;border:1px solid rgba(220,38,38,0.25);padding:10px 12px;border-radius:6px;font-size:12px;font-weight:500}.auth__hint{text-align:center;color:#8A8170;font-size:12px;margin-top:20px;padding-top:16px;border-top:1px solid #EAE3D2}.notifications__header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid #EAE3D2;font-weight:700;color:#0F0C09;background:#F5F1E6}.notifications__mark-all{background:transparent;border:1px solid transparent;color:#8A8170;font-size:12px;padding:4px 8px;border-radius:6px;transition:background .12s,color .12s,border-color .12s}.notifications__mark-all:hover{color:#0F0C09;background:#FAF7F0;border-color:#DCD5C4}.notifications__mark-all:focus-visible{outline:2px solid #0F0C09;outline-offset:2px}.notifications__list{max-height:400px;overflow-y:auto}.notifications__item{border-bottom:1px solid #EAE3D2;transition:background .12s}.notifications__item:last-child{border-bottom:0}.notifications__item a{color:#1F1B16;display:block;padding:12px 16px;transition:background .12s,color .12s;text-decoration:none}.notifications__item a:hover{background:#F5F1E6;color:#0F0C09;text-decoration:none}.notifications__item--unread{background:#E8E2D3}.notifications__item--unread a{font-weight:600}.notifications__kind{display:inline-block;background:#0F0C09;color:#fff;padding:2px 8px;border-radius:999px;font-size:10px;font-weight:700;margin-right:8px;letter-spacing:0.02em}.notifications__msg{display:block;font-size:12px;margin-top:2px;line-height:1.45}.notifications__empty{padding:20px;color:#8A8170;text-align:center;font-size:12px}.notifications__loading{padding:16px;color:#8A8170;text-align:center;font-size:12px}.empty{text-align:center;padding:40px 16px;color:#8A8170}.empty p{margin:6px 0;font-size:12px}.empty .empty__hint{font-size:11px;opacity:0.85}.empty strong{color:#0F0C09}.page--form{max-width:1100px}.page--detail{max-width:none}.form__error{background:#FEE2E2;color:#DC2626;border:1px solid rgba(220,38,38,0.25);border-radius:6px;padding:10px 12px;margin-bottom:12px;font-size:12px}.project-form{background:#FAF7F0;border:1px solid #E5DFCF;border-radius:10px;padding:20px}.form__grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width:767px){.form__grid{grid-template-columns:1fr}}.field--full{grid-column:1 / -1}.field input[type="text"],.field input[type="email"],.field input[type="password"],.field input[type="search"],.field input[type="date"],.field select,.field textarea{width:100%}.field__chips{display:flex;flex-wrap:wrap;gap:6px;background:#F0EBE0;padding:10px;border-radius:6px;border:1px solid #E5DFCF}.field__chips>div,.field__chips>div>div{display:contents}.field__chips ul{display:contents}.field__chips li,.field__chips label{list-style:none}.field__chips label{display:inline-flex;align-items:center;gap:6px;background:#FAF7F0;padding:5px 12px;border-radius:999px;border:1px solid #DCD5C4;font-size:12px;color:#1F1B16;cursor:pointer;transition:border-color .12s,background .12s,color .12s;user-select:none}.field__chips label:hover{border-color:#0F0C09;background:#F5F1E6;color:#0F0C09}.field__chips label:has(input:checked){background:#0F0C09;border-color:#0F0C09;color:#fff;font-weight:600}.field__chips label:focus-within{outline:2px solid #0F0C09;outline-offset:2px}.field__chips input[type="checkbox"]{accent-color:#0F0C09;width:14px;height:14px;cursor:pointer}.form__actions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px;padding-top:16px;border-top:1px solid #EAE3D2}.detail__header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:20px;flex-wrap:wrap}.detail__title h2{font-size:26px;font-weight:800;color:#0F0C09;letter-spacing:-0.02em;margin-bottom:8px}.detail__subtitle{font-size:14px;color:#8A8170;margin:-4px 0 12px;line-height:1.5}.detail__meta{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.detail__actions{display:flex;gap:8px}.detail__section{background:#FAF7F0;border:1px solid #E5DFCF;border-radius:10px;padding:16px 20px;margin-bottom:12px}.detail__section h3{margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid #EAE3D2;font-size:14px;font-weight:700;color:#0F0C09}.profile{display:grid;grid-template-columns:110px 1fr;gap:10px 16px}.profile dt{color:#8A8170;font-weight:500;font-size:12px}.profile dd{font-weight:600;color:#0F0C09;font-size:12px}.milestone-list,.subproject-list,.memo-list{margin-bottom:12px}.milestone-list__item,.subproject-list__item{padding:10px;border-bottom:1px solid #EAE3D2;display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:12px}.milestone-list__item:last-child,.subproject-list__item:last-child{border-bottom:0}.milestone-list__date{background:#0F0C09;color:#F0EBE0;padding:2px 8px;border-radius:6px;font-weight:700;font-size:11px;font-family:ui-monospace,"SF Mono","Menlo","Cascadia Code","Consolas",monospace}.memo-list__item{padding:12px;background:#F0EBE0;border-radius:6px;margin-bottom:8px}.memo-list__item:last-child{margin-bottom:0}.memo-list__head{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:12px}.memo-list__head time{color:#8A8170;margin-left:auto;font-size:11px}.memo-list__body{padding-left:32px;font-size:12px;line-height:1.55}.inline-form{margin-top:12px;padding-top:12px;border-top:1px dashed #DCD5C4}.inline-form__row{display:flex;gap:8px;align-items:stretch;flex-wrap:wrap}.inline-form__row input[type="text"],.inline-form__row input[type="date"],.inline-form__row select,.inline-form__row textarea{flex:1;min-width:160px;padding:8px 12px;border:1px solid #DCD5C4;border-radius:6px;background:#FAF7F0;font-size:12px;color:#0F0C09;transition:border-color .12s,background .12s,box-shadow .12s}.inline-form__row input[type="text"]::placeholder,.inline-form__row input[type="date"]::placeholder,.inline-form__row select::placeholder,.inline-form__row textarea::placeholder{color:#8A8170}.inline-form__row input[type="text"]:hover:not(:focus),.inline-form__row input[type="date"]:hover:not(:focus),.inline-form__row select:hover:not(:focus),.inline-form__row textarea:hover:not(:focus){border-color:#8A8170;background:#fff}.inline-form__row input[type="text"]:focus,.inline-form__row input[type="date"]:focus,.inline-form__row select:focus,.inline-form__row textarea:focus{outline:none;border-color:#0F0C09;background:#fff;box-shadow:0 0 0 3px rgba(15,12,9,0.1)}.inline-form__row .memo-input{min-width:100%}.small{font-size:11px}.page-tabs{display:inline-flex;gap:2px;padding:3px;background:#F5F1E6;border:1px solid #E5DFCF;border-radius:10px;margin:0}.page-shell__head .page-tabs{margin-top:12px;max-width:100%;overflow-x:auto;scrollbar-width:thin}.page-shell__head .page-tabs::-webkit-scrollbar{width:6px;height:6px}.page-shell__head .page-tabs::-webkit-scrollbar-thumb{background:#DCD5C4;border-radius:3px}.page-tab{padding:5px 14px;border-radius:6px;font-size:12px;font-weight:600;color:#8A8170;white-space:nowrap}.page-tab:hover{text-decoration:none;color:#0F0C09}.page-tab--active{background:#FAF7F0;color:#0F0C09;box-shadow:0 1px 2px rgba(31,27,22,0.1)}.page-crumb{font-weight:500;color:#8A8170;white-space:nowrap}.page-crumb::before{content:"›";margin:0 8px;color:#B8B0A0;font-weight:400}.page-subtabs{display:flex;gap:12px;margin:0}.page-shell__head .page-subtabs{margin-top:8px;max-width:100%;overflow-x:auto;scrollbar-width:thin}.page-shell__head .page-subtabs::-webkit-scrollbar{width:6px;height:6px}.page-shell__head .page-subtabs::-webkit-scrollbar-thumb{background:#DCD5C4;border-radius:3px}.page-subtab{padding:4px 2px;font-size:12px;font-weight:500;color:#8A8170;border-bottom:2px solid transparent;white-space:nowrap}.page-subtab:hover{text-decoration:none;color:#0F0C09}.page-subtab--active{color:#0F0C09;border-bottom-color:#0F0C09;font-weight:700}.search-input{padding:6px 10px;border:1px solid #DCD5C4;border-radius:6px;background:#FAF7F0;font-size:12px;color:#0F0C09}.search-input::placeholder{color:#8A8170}.search-input:focus{outline:none;border-color:#0F0C09;background:#fff;box-shadow:0 0 0 3px rgba(31,27,22,0.08)}.search-input--push{margin-left:auto}.settings-tabs{display:flex;gap:0;margin-bottom:16px;border-bottom:1px solid #E5DFCF;flex-wrap:wrap}.settings-tab{padding:10px 16px;color:#8A8170;font-weight:500;font-size:12px;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .12s,border-color .12s,background .12s}.settings-tab:hover{text-decoration:none;color:#0F0C09;border-bottom-color:#8A8170;background:#F5F1E6}.settings-tab:focus-visible{outline:2px solid #0F0C09;outline-offset:-2px;background:#F5F1E6}.settings-tab--active{color:#0F0C09;border-bottom-color:#0F0C09;font-weight:700}.invited{background:#DCFCE7;border-color:rgba(21,128,61,0.3)}.invited__pw{background:#0F0C09;color:#F0EBE0;padding:12px 16px;border-radius:6px;font-size:18px;font-family:ui-monospace,"SF Mono","Menlo","Cascadia Code","Consolas",monospace;user-select:all;margin-top:8px;letter-spacing:0.02em}.taxonomy-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}@media (max-width:767px){.taxonomy-grid{grid-template-columns:1fr}}.taxonomy-list{display:flex;flex-direction:column;gap:6px}.taxonomy-list li{display:flex;align-items:center;gap:8px;font-size:12px}.table--simple{font-size:12px}.detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px 16px;margin:0}.detail-grid__item{display:flex;flex-direction:column;gap:3px;min-width:0;padding-bottom:12px;border-bottom:1px solid #EAE3D2}.detail-grid__item dt{font-size:11px;font-weight:600;color:#8A8170;letter-spacing:0.03em}.detail-grid__item dd{margin:0;font-size:12px;color:#1F1B16;word-break:break-word}.detail-grid__hint{display:block;margin-top:2px;font-size:10px;color:#8A8170}.detail-block{margin-top:12px}.detail-block__label{font-size:11px;font-weight:600;color:#8A8170;letter-spacing:0.03em;margin-bottom:4px}.detail-block__body{font-size:12px;color:#1F1B16;line-height:1.6;word-break:break-word}.masked{color:#8A8170;letter-spacing:2px;user-select:none}.table--users th,.table--users td{vertical-align:middle}.user-row{transition:background .12s}.user-row:hover{background:#F5F1E6}.user-row__id{font-family:ui-monospace,"SF Mono","Menlo","Cascadia Code","Consolas",monospace}.user-row__actions{text-align:right;white-space:nowrap}.user-row--edit{background:#F5F1E6!important}.user-row--edit td{padding-top:12px;padding-bottom:12px}.role-pill{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;margin-right:4px}.role-pill--super{background:#7C3AED;color:#fff}.role-pill--admin{background:#0F0C09;color:#fff}.role-pill--member{background:#F5F1E6;color:#8A8170;border:1px solid #DCD5C4}.role-pill--inactive{background:#FEE2E2;color:#DC2626;border:1px solid rgba(220,38,38,0.25)}.btn--xs{padding:4px 10px;font-size:11px;font-weight:700}.user-edit{background:#FAF7F0;border:1px solid #DCD5C4;border-radius:6px;padding:12px 16px}.user-edit__grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (max-width:767px){.user-edit__grid{grid-template-columns:1fr}}.user-edit__field{display:flex;flex-direction:column;gap:4px}.user-edit__field--full{grid-column:1 / -1}.user-edit__label{font-size:10px;font-weight:700;color:#8A8170;letter-spacing:0.06em;text-transform:uppercase}.user-edit__field input[type="text"],.user-edit__field input[type="email"]{padding:7px 12px;border:1px solid #DCD5C4;border-radius:6px;background:#F0EBE0;font-size:12px;color:#0F0C09}.user-edit__field input[type="text"]:focus,.user-edit__field input[type="email"]:focus{outline:none;border-color:#0F0C09;background:#fff;box-shadow:0 0 0 3px rgba(15,12,9,0.1)}.user-edit__chips{display:flex;flex-wrap:wrap;gap:4px;background:#F0EBE0;padding:6px;border-radius:6px;border:1px solid #E5DFCF}.user-edit__chips>div,.user-edit__chips>div>div{display:contents}.user-edit__chips ul,.user-edit__chips li{list-style:none;padding:0;margin:0;display:contents}.user-edit__chips label{display:inline-flex;align-items:center;gap:4px;background:#FAF7F0;padding:3px 10px;border-radius:999px;border:1px solid #DCD5C4;font-size:11px;cursor:pointer;transition:background .12s,color .12s,border-color .12s;user-select:none}.user-edit__chips label:hover{border-color:#8A8170;background:#F5F1E6;color:#0F0C09}.user-edit__chips label:has(input:checked){background:#0F0C09;color:#fff;border-color:#0F0C09;font-weight:600}.user-edit__chips input[type="checkbox"]{accent-color:#0F0C09}.user-edit__check{flex-direction:row;align-items:center;gap:6px;cursor:pointer;font-size:12px;user-select:none}.user-edit__check input[type="checkbox"]{accent-color:#0F0C09;width:14px;height:14px}.user-edit__err{margin-top:8px;background:#FEE2E2;color:#DC2626;padding:6px 12px;border-radius:6px;font-size:11px}.user-edit__err p{margin:0}.table-scroll{overflow-x:auto;scrollbar-width:thin;border-radius:10px}.table-scroll::-webkit-scrollbar{width:6px;height:6px}.table-scroll::-webkit-scrollbar-thumb{background:#DCD5C4;border-radius:3px}.emp-row{cursor:default}.emp-row .nowrap{white-space:nowrap}.emp-row .emp-name a{color:#0F0C09;font-weight:600}.emp-row .emp-name a:hover{text-decoration:underline}.emp-row .emp-actions{text-align:right;white-space:nowrap}.emp-row td{white-space:nowrap}.emp-row--editing td{background:#F5F1E6!important;white-space:normal}.emp-edit{padding:12px 8px}.emp-edit__head{margin-bottom:12px;font-size:12px}.emp-edit__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.emp-edit .field{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:700;color:#8A8170;letter-spacing:0.04em}.emp-edit .field input[type="text"],.emp-edit .field input[type="email"],.emp-edit .field input[type="number"],.emp-edit .field input[type="date"],.emp-edit .field select,.emp-edit .field textarea{font-weight:400;letter-spacing:normal;color:#0F0C09;padding:6px 12px;border:1px solid #DCD5C4;border-radius:6px;background:#F0EBE0;font-size:12px;width:100%}.emp-edit .field input[type="text"]:focus,.emp-edit .field input[type="email"]:focus,.emp-edit .field input[type="number"]:focus,.emp-edit .field input[type="date"]:focus,.emp-edit .field select:focus,.emp-edit .field textarea:focus{outline:none;border-color:#0F0C09;background:#fff;box-shadow:0 0 0 3px rgba(15,12,9,0.1)}.emp-edit__full{grid-column:1 / -1}.emp-edit .field--check{flex-direction:row;flex-wrap:wrap;gap:12px;align-items:center}.emp-edit .field--check label{display:inline-flex;align-items:center;gap:5px;font-weight:600;color:#1F1B16}.emp-edit .field--check label input[type="checkbox"]{accent-color:#0F0C09;width:14px;height:14px}.emp-edit .field__chips{display:flex;flex-wrap:wrap;gap:4px;background:#F0EBE0;padding:6px;border-radius:6px;border:1px solid #E5DFCF}.emp-edit .field__chips>div,.emp-edit .field__chips>div>div{display:contents}.emp-edit .field__chips ul,.emp-edit .field__chips li{list-style:none;padding:0;margin:0;display:contents}.emp-edit .field__chips label{display:inline-flex;align-items:center;gap:4px;background:#FAF7F0;padding:3px 10px;border-radius:999px;border:1px solid #DCD5C4;font-size:11px;font-weight:500;cursor:pointer}.emp-edit .field__chips label:has(input:checked){background:#0F0C09;color:#fff;border-color:#0F0C09}.emp-edit .field__chips input[type="checkbox"]{accent-color:#0F0C09}.emp-edit .field__err{color:#DC2626;font-weight:600;font-size:11px}.emp-edit__actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.messages{position:fixed;bottom:20px;right:20px;z-index:100;display:flex;flex-direction:column;gap:8px}.message{background:#0F0C09;color:#F0EBE0;padding:10px 16px;border-radius:6px;box-shadow:0 12px 32px rgba(31,27,22,0.1);font-size:12px;font-weight:500;max-width:360px;border:1px solid #0F0C09}.message--success{background:#15803D;border-color:#15803D}.message--error{background:#DC2626;border-color:#DC2626}.message--warning{background:#D97706;border-color:#D97706}.staff-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-top:8px}.staff-card{display:flex;gap:12px;padding:12px;background:#FAF7F0;border:1px solid #E5DFCF;border-radius:10px;text-decoration:none;color:inherit}.staff-card:hover{border-color:#C2410C;box-shadow:0 1px 4px rgba(31,27,22,0.08)}.staff-card__avatar{flex:0 0 40px;width:40px;height:40px;border-radius:50%;background:#E8E2D3;color:#0F0C09;display:flex;align-items:center;justify-content:center;font-weight:700}.staff-card__body{min-width:0;flex:1}.staff-card__name{font-weight:600;display:flex;gap:6px;align-items:baseline}.staff-card__teams{margin:4px 0;display:flex;flex-wrap:wrap;gap:4px}.hc-input{width:100%;padding:4px 6px;border:1px solid #E5DFCF;border-radius:6px;text-align:center;font-size:12px}.hc-total td{background:#DCFCE7}.stats-split{display:flex;gap:16px;margin-top:12px;align-items:flex-start}@media (max-width:1024px){.stats-split{flex-direction:column}}.stats-side{flex:0 0 240px;display:flex;flex-direction:column;gap:12px}.career-modal__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.career-editor__head{display:flex;align-items:baseline;gap:8px;margin-bottom:8px}.career-editor__summary{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.career-editor__summary>div{flex:1 1 0;min-width:120px;display:flex;flex-direction:column;gap:2px;padding:8px;background:#F5F1E6;border:1px solid #E5DFCF;border-radius:6px}.career-editor__summary>div b{font-size:14px;color:#0F0C09}.career-editor__total{background:#DCFCE7!important;border-color:#15803D!important}.career-editor__add{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid #E5DFCF}.career-editor__add>input[name="workplace"]{flex:1 1 140px}.career-editor__add .btn{flex:0 0 auto}.career-editor__field{display:flex;flex-direction:column;gap:2px}.leave-cards--col{flex-direction:column}.donut-card{padding:12px;background:#FAF7F0;border:1px solid #E5DFCF;border-radius:10px}.donut{width:100%;max-width:180px;display:block;margin:0 auto}.donut-legend{display:flex;flex-direction:column;gap:4px;margin-top:8px;font-size:12px}.donut-dot{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px}.detail-panel{background:#FAF7F0;border-left:1px solid #E5DFCF;box-shadow:-4px 0 20px rgba(31,27,22,0.08);overflow-y:auto;height:100%;scrollbar-width:thin}.detail-panel::-webkit-scrollbar{width:6px;height:6px}.detail-panel::-webkit-scrollbar-thumb{background:#DCD5C4;border-radius:3px}@media (max-width:1023px){.detail-panel{position:fixed;top:0;right:0;bottom:0;width:92vw;max-width:420px;z-index:50;height:100vh;box-shadow:0 12px 32px rgba(31,27,22,0.1)}}.detail-panel--empty{display:none}.detail-panel--modal{border-left:0;box-shadow:none;height:auto;overflow:visible}@media (max-width:1023px){.detail-panel--modal{position:static;width:auto;max-width:none;height:auto;z-index:auto;box-shadow:none}}.detail-panel--modal .detail-panel__close{display:none}.detail-panel__close{position:absolute;top:12px;right:12px;background:transparent;border:1px solid #DCD5C4;border-radius:6px;width:28px;height:28px;display:grid;place-items:center;color:#8A8170;font-size:16px;line-height:1;z-index:2;cursor:pointer;transition:background .12s,color .12s,border-color .12s}.detail-panel__close:hover{background:#0F0C09;color:#fff;border-color:#0F0C09}.detail-panel__close:focus-visible{outline:2px solid #0F0C09;outline-offset:2px}.detail-panel__header{padding:20px 20px 16px;border-bottom:1px solid #EAE3D2;position:sticky;top:0;z-index:3;background:#FAF7F0}.detail-panel__title{font-size:16px;font-weight:700;color:#0F0C09;letter-spacing:-0.02em;line-height:1.3;margin-bottom:8px;padding-right:36px}.detail-panel__subtitle{font-size:12px;color:#8A8170;line-height:1.5;margin:-2px 0 8px}.detail-panel__meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.detail-panel__id{font-size:11px;font-weight:600;color:#8A8170;font-family:ui-monospace,"SF Mono","Menlo","Cascadia Code","Consolas",monospace;letter-spacing:0.04em}.detail-panel__section{padding:16px 20px;border-bottom:1px solid #EAE3D2}.detail-panel__section:last-child{border-bottom:0}.detail-panel__section h4{font-size:10px;font-weight:700;color:#8A8170;letter-spacing:0.08em;text-transform:uppercase;margin-bottom:8px}.detail-panel__row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;font-size:12px;gap:12px}.detail-panel__row+.detail-panel__row{border-top:1px solid #EAE3D2}.detail-panel__row__label{color:#8A8170;flex-shrink:0}.detail-panel__row__value{font-weight:600;color:#0F0C09;text-align:right}.detail-panel__desc{font-size:12px;color:#1F1B16;line-height:1.6;background:#F0EBE0;padding:12px;border-radius:6px}.detail-panel__inline-form{margin-top:12px}.detail-panel__inline-form textarea,.detail-panel__inline-form input[type="text"],.detail-panel__inline-form input[type="date"],.detail-panel__inline-form select{width:100%;padding:8px 12px;border:1px solid #DCD5C4;border-radius:6px;background:#FAF7F0;font-size:12px;color:#1F1B16;margin-bottom:6px;transition:border-color .12s,background .12s,box-shadow .12s}.detail-panel__inline-form textarea::placeholder,.detail-panel__inline-form input[type="text"]::placeholder,.detail-panel__inline-form input[type="date"]::placeholder,.detail-panel__inline-form select::placeholder{color:#8A8170}.detail-panel__inline-form textarea:hover:not(:focus),.detail-panel__inline-form input[type="text"]:hover:not(:focus),.detail-panel__inline-form input[type="date"]:hover:not(:focus),.detail-panel__inline-form select:hover:not(:focus){border-color:#8A8170;background:#fff}.detail-panel__inline-form textarea:focus,.detail-panel__inline-form input[type="text"]:focus,.detail-panel__inline-form input[type="date"]:focus,.detail-panel__inline-form select:focus{outline:none;border-color:#0F0C09;background:#fff;box-shadow:0 0 0 3px rgba(15,12,9,0.1)}.detail-panel__inline-form__row{display:flex;gap:6px}.detail-panel__inline-form__row>*{flex:1}.detail-panel__inline-form button{width:100%;padding:8px 12px;background:#0F0C09;color:#fff;border:1px solid #0F0C09;border-radius:6px;font-size:12px;font-weight:700;margin-top:6px;cursor:pointer;transition:background .12s,border-color .12s}.detail-panel__inline-form button:hover{background:#000;border-color:#000;color:#fff}.detail-panel__inline-form button:focus-visible{outline:2px solid #0F0C09;outline-offset:2px}.detail-panel__memo-list{margin-top:12px;display:flex;flex-direction:column;gap:12px}.detail-panel__memo{background:#F0EBE0;border-radius:6px;padding:12px}.detail-panel__memo__head{display:flex;align-items:center;gap:6px;font-size:11px;margin-bottom:4px}.detail-panel__memo__author{font-weight:700;color:#0F0C09}.detail-panel__memo__time{color:#8A8170;margin-left:auto}.detail-panel__memo__body{font-size:12px;line-height:1.55}.dp-status-select{appearance:none;border:1px solid var(--state-color,#DCD5C4);color:var(--state-color,#1F1B16);background:#FAF7F0;border-radius:999px;padding:2px 22px 2px 10px;font-size:11px;font-weight:700;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 12px) 50%,calc(100% - 8px) 50%;background-size:4px 4px,4px 4px;background-repeat:no-repeat}.dp-inline-edit{border:none;background:none;color:#C2410C;font-size:11px;cursor:pointer;margin-left:8px;padding:0}.dp-summary-form .memo-input{width:100%}.dp-memo{background:#F0EBE0;border-radius:6px;padding:12px}.dp-memo--pinned{background:#FCEAD4;border-left:3px solid #C2410C}.dp-memo--editing{background:#F5F1E6}.dp-memo__head{display:flex;align-items:center;gap:6px;font-size:11px;margin-bottom:4px}.dp-memo__author{font-weight:700;color:#0F0C09}.dp-memo__pin{font-size:11px}.dp-memo__time{color:#8A8170;margin-left:auto}.dp-memo__body{font-size:12px;line-height:1.55;white-space:pre-wrap}.dp-memo__actions{display:inline-flex;gap:6px}.dp-memo__actions button{border:none;background:none;color:#8A8170;font-size:11px;cursor:pointer;padding:0}.dp-memo__actions button:hover{color:#C2410C;text-decoration:underline}.dp-memo__edit-actions{display:flex;gap:8px;margin-top:8px}.dp-ms-actions{display:inline-flex;gap:6px;margin-left:auto}.dp-ms-actions button{border:none;background:none;color:#8A8170;font-size:11px;cursor:pointer;padding:0}.dp-ms-actions button:hover{color:#C2410C;text-decoration:underline}.dp-ms-edit{display:flex;flex-wrap:wrap;gap:6px;align-items:center;width:100%}.dp-ms-edit input[type="text"]{flex:1;min-width:120px}.detail-panel__milestone{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:12px}.detail-panel__milestone+.detail-panel__milestone{border-top:1px solid #EAE3D2}.detail-panel__milestone__name{flex:1}.detail-panel__milestone--done{opacity:0.55}.detail-panel__milestone--done .detail-panel__milestone__name{text-decoration:line-through}.detail-panel__milestone--done .detail-panel__milestone__date{background:#8A8170}.detail-panel__milestone__date{background:#0F0C09;color:#F0EBE0;padding:2px 8px;border-radius:6px;font-size:10px;font-weight:700;font-family:ui-monospace,"SF Mono","Menlo","Cascadia Code","Consolas",monospace;flex-shrink:0}.ms-check{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:4px;border:1.5px solid #DCD5C4;background:#FAF7F0;color:transparent;font-size:12px;line-height:1;cursor:pointer;flex-shrink:0;transition:background .12s,border-color .12s,color .12s;padding:0}.ms-check:hover{border-color:#0F0C09;background:#F5F1E6}.ms-check:focus-visible{outline:2px solid #0F0C09;outline-offset:2px}.ms-check--on{background:#0F0C09;border-color:#0F0C09;color:#fff}.ms-check--on:hover{background:#000;border-color:#000}.ms-check input{display:none}.detail-panel__overlay{display:none}@media (max-width:1023px){.detail-panel__overlay{display:block;position:fixed;inset:0;background:rgba(31,27,22,0.45);z-index:49}}.detail-panel__actions{display:flex;gap:8px;padding:12px 20px;border-top:1px solid #EAE3D2;background:#F0EBE0;position:sticky;bottom:0}.detail-panel__actions a,.detail-panel__actions button{flex:1;text-align:center;padding:8px 12px;border:1px solid #DCD5C4;background:#FAF7F0;color:#1F1B16;border-radius:6px;font-size:12px;font-weight:600;text-decoration:none;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.detail-panel__actions a:hover,.detail-panel__actions button:hover{background:#0F0C09;color:#fff;border-color:#0F0C09;text-decoration:none}.detail-panel__actions a:focus-visible,.detail-panel__actions button:focus-visible{outline:2px solid #0F0C09;outline-offset:2px}@media (max-width:767px){.detail-panel{width:100vw;max-width:100vw}.detail-panel__header{padding:16px 16px 12px}.detail-panel__title{font-size:14px;padding-right:48px}.detail-panel__subtitle{font-size:12px}.detail-panel__close{width:38px;height:38px;font-size:20px}.detail-panel__section{padding:12px 16px}.detail-panel__section h4{margin-bottom:6px}.detail-panel__row{font-size:13px;padding:8px 0}.detail-panel__desc{padding:12px}.detail-panel__inline-form textarea,.detail-panel__inline-form input[type="text"],.detail-panel__inline-form input[type="date"],.detail-panel__inline-form select{font-size:16px;padding:10px 12px}.detail-panel__inline-form button{padding:11px 12px;font-size:13px}.detail-panel__memo{padding:8px 12px}.detail-panel__memo__head{font-size:11px;margin-bottom:3px}.detail-panel__memo__body{font-size:13px}.detail-panel__milestone{font-size:13px;padding:8px 0}.ms-check{width:22px;height:22px;font-size:14px}.detail-panel__actions{padding:12px 16px;gap:12px}.detail-panel__actions a,.detail-panel__actions button{padding:11px 12px;font-size:13px}}.gantt{--label-w:220px;--row-h:56px;--head-h:56px;--head-month-h:22px;--group-h:30px;--bar-h:22px;--bar-y:8px;--ms-y:42px;--px-per-day:18px;--arrow-w:10px;flex:1;min-height:0;overflow:auto;background:#FAF7F0;border:1px solid #E5DFCF;border-radius:10px;position:relative;scrollbar-width:thin;display:grid;grid-template-columns:minmax(100%,max-content);grid-auto-rows:max-content}.gantt::-webkit-scrollbar{width:6px;height:6px}.gantt::-webkit-scrollbar-thumb{background:#DCD5C4;border-radius:3px}.gantt--grabbing{cursor:grabbing;user-select:none}.gantt--grabbing a,.gantt--grabbing .gantt__bar{cursor:grabbing}.gantt__head{display:flex;position:sticky;top:0;z-index:20;height:var(--head-h);width:max-content;min-width:100%;background:#F5F1E6;box-shadow:inset 0 -1px 0 #DCD5C4}.gantt__head__label{width:var(--label-w);flex-shrink:0;position:sticky;left:0;z-index:21;background:#F5F1E6;padding:0 16px;display:flex;align-items:center;font-size:11px;font-weight:700;color:#8A8170;text-transform:uppercase;letter-spacing:0.05em;box-shadow:inset -1px 0 0 #DCD5C4}.gantt__head__timeline{position:relative;flex:1;height:100%}.gantt__head__months{position:absolute;top:0;left:0;right:0;height:var(--head-month-h);box-shadow:inset 0 -1px 0 #E5DFCF;pointer-events:none}.gantt__month-cell{position:absolute;top:0;bottom:0;display:flex;align-items:center;padding-left:6px;box-shadow:inset 1px 0 0 #DCD5C4;overflow:hidden}.gantt__month-label{font-size:11px;font-weight:700;color:#0F0C09;line-height:1;letter-spacing:-0.01em;white-space:nowrap}.gantt__head__days{position:absolute;left:0;right:0;top:var(--head-month-h);bottom:0;background-image:repeating-linear-gradient(to right,transparent 0,transparent calc(var(--px-per-day) * 5),rgba(31,27,22,0.05) calc(var(--px-per-day) * 5),rgba(31,27,22,0.05) calc(var(--px-per-day) * 7))}.gantt__day-tick{position:absolute;top:0;bottom:0;box-shadow:inset 1px 0 0 #EAE3D2;padding:4px 0 0 4px;pointer-events:none}.gantt__day-tick--month{box-shadow:inset 1px 0 0 #DCD5C4}.gantt__day-label{display:block;font-size:10px;color:#8A8170;font-feature-settings:"tnum";line-height:1}.gantt__group{display:contents;--cat-color:#6B7280}.gantt__group-head{display:flex;position:sticky;top:calc(var(--head-h) - 1px);z-index:15;height:var(--group-h);align-items:stretch;width:max-content;min-width:100%}.gantt__group-head__label{width:var(--label-w);flex-shrink:0;position:sticky;left:0;z-index:16;padding:0 16px;display:flex;align-items:center;gap:8px;background:color-mix(in srgb,var(--cat-color) 8%,white);box-shadow:inset 0 4px 0 var(--cat-color),inset -1px 0 0 color-mix(in srgb,var(--cat-color) 25%,transparent);font-weight:800;font-size:12px;color:color-mix(in srgb,var(--cat-color) 70%,#111)}.gantt__group__name{letter-spacing:-0.01em}.gantt__group__count{display:inline-grid;place-items:center;min-width:18px;height:16px;padding:0 6px;background:var(--cat-color);color:#fff;border-radius:999px;font-size:10px;font-weight:700;font-feature-settings:"tnum";line-height:1}.gantt__group-head__bg{flex:1;position:relative;background-color:color-mix(in srgb,var(--cat-color) 8%,white);background-image:repeating-linear-gradient(to right,rgba(31,27,22,0.06) 0,rgba(31,27,22,0.06) 1px,transparent 1px,transparent var(--px-per-day)),repeating-linear-gradient(to right,transparent 0,transparent calc(var(--px-per-day) * 5),rgba(31,27,22,0.045) calc(var(--px-per-day) * 5),rgba(31,27,22,0.045) calc(var(--px-per-day) * 7));box-shadow:inset 0 4px 0 var(--cat-color)}.gantt__row{display:flex;height:var(--row-h);width:max-content;min-width:100%;text-decoration:none;color:inherit;box-shadow:inset 0 -1px 0 #EAE3D2;cursor:pointer;transition:background .12s}.gantt__row:hover{text-decoration:none}.gantt__row:hover .gantt__row__label,.gantt__row:hover .gantt__row__timeline{background-color:#F5F1E6}.gantt__row:hover .gantt__bar{filter:brightness(1.06);box-shadow:0 2px 6px rgba(0,0,0,0.18)}.gantt__row:focus-visible{outline:2px solid #0F0C09;outline-offset:-2px}.gantt__row__label{width:var(--label-w);flex-shrink:0;position:sticky;left:0;z-index:10;padding:0 16px;background:#FAF7F0;box-shadow:inset -1px 0 0 #EAE3D2;display:flex;flex-direction:column;justify-content:center;transition:background .12s;overflow:hidden}.gantt__row__label strong{font-size:12px;font-weight:600;color:#0F0C09;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.gantt__row__label small{font-size:10px;color:#8A8170;line-height:1.2;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt__row__timeline{flex:1;position:relative;background-color:#FAF7F0;background-image:repeating-linear-gradient(to right,rgba(31,27,22,0.06) 0,rgba(31,27,22,0.06) 1px,transparent 1px,transparent var(--px-per-day)),repeating-linear-gradient(to right,transparent 0,transparent calc(var(--px-per-day) * 5),rgba(31,27,22,0.045) calc(var(--px-per-day) * 5),rgba(31,27,22,0.045) calc(var(--px-per-day) * 7));transition:background-color .12s}.gantt__bar{position:absolute;top:var(--bar-y);height:var(--bar-h);background:var(--cat-color);box-shadow:0 1px 3px rgba(0,0,0,0.15);overflow:hidden;display:flex;align-items:center;padding:0 8px;min-width:4px;transition:filter .12s,box-shadow .12s;z-index:1}.gantt__bar__name{font-size:11px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 0 rgba(0,0,0,0.2);line-height:1}.gantt__bar--full{border-radius:6px}.gantt__bar--overdue{background:#991B1B}.gantt__bar--active{box-shadow:0 0 0 2px rgba(220,38,38,0.3),0 1px 3px rgba(0,0,0,0.2)}.gantt__bar--start-only{clip-path:polygon(0 0,calc(100% - var(--arrow-w)) 0,100% 50%,calc(100% - var(--arrow-w)) 100%,0 100%);border-radius:6px 0 0 6px;padding-right:calc(var(--arrow-w) + 4px)}.gantt__bar--end-only{clip-path:polygon(var(--arrow-w) 0,100% 0,100% 100%,var(--arrow-w) 100%,0 50%);border-radius:0 6px 6px 0;padding-left:calc(var(--arrow-w) + 4px)}.gantt__deadline-marker{position:absolute;top:calc(var(--bar-y) - 7px);transform:translateX(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:7px solid #991B1B;z-index:3;pointer-events:none;filter:drop-shadow(0 1px 1px rgba(0,0,0,0.15))}.gantt__deadline-marker--overdue{border-top-color:#DC2626}.gantt__no-schedule{position:absolute;left:8px;top:var(--bar-y);height:var(--bar-h);padding:0 12px;background:transparent;border:1.5px dashed color-mix(in srgb,var(--cat-color) 35%,#DCD5C4);color:color-mix(in srgb,var(--cat-color) 50%,#8A8170);border-radius:6px;display:inline-flex;align-items:center;gap:5px;line-height:1;font-size:11px;font-weight:600;letter-spacing:-0.005em;z-index:1}.gantt__no-schedule__icon{font-size:13px;opacity:0.85}.gantt__milestone{position:absolute;top:var(--ms-y);width:12px;height:12px;background:var(--cat-color);transform:translate(-50%,-50%) rotate(45deg);border:2px solid #FAF7F0;box-shadow:0 1px 3px rgba(0,0,0,0.2);z-index:2;cursor:help;transition:transform .12s,box-shadow .12s}.gantt__milestone:hover{transform:translate(-50%,-50%) rotate(45deg) scale(1.25);box-shadow:0 2px 5px rgba(0,0,0,0.3)}.gantt__milestone--done{background:#8A8170;opacity:0.55}.gantt__milestone--overdue{border-color:#DC2626;box-shadow:0 0 0 1px #DC2626,0 1px 4px rgba(220,38,38,0.45)}.gantt__milestone__name{position:absolute;top:var(--ms-y);transform:translateY(-50%);padding:1px 5px;background:rgba(250,247,240,0.95);color:#0F0C09;border-radius:3px;font-size:10px;font-weight:500;line-height:1.2;white-space:nowrap;box-shadow:0 1px 2px rgba(0,0,0,0.06);pointer-events:none;z-index:2;letter-spacing:-0.005em}.gantt__milestone__name--done{opacity:0.55;text-decoration:line-through}.gantt__milestone__name--overdue{color:#DC2626;font-weight:600}.gantt__today-line{position:absolute;top:0;bottom:0;width:0;border-left:2px solid #DC2626;z-index:3;pointer-events:none}.gantt__today-line--head::after{content:"오늘";position:absolute;top:4px;left:4px;font-size:10px;font-weight:700;color:#fff;background:#DC2626;padding:1px 6px;border-radius:6px;white-space:nowrap;letter-spacing:-0.01em}.toolbar--gantt .toolbar__range{margin-left:auto;font-size:11px;color:#8A8170;font-feature-settings:"tnum"}.toolbar--gantt .seg{text-decoration:none}.toolbar--gantt .seg:hover{text-decoration:none}.leave-bar{display:flex;flex-wrap:wrap;gap:3px;max-width:460px}.leave-bar__cell{width:14px;height:14px;border-radius:3px;border:1px solid #DCD5C4;background:#FAF7F0}.leave-bar__cell--used{background:#DC2626;border-color:#DC2626}.leave-bar__cell--used_half{background:linear-gradient(135deg,#DC2626 50%,#FAF7F0 50%);border-color:#DC2626}.leave-bar__cell--remaining{background:#15803D;border-color:#15803D}.leave-bar__cell--remaining_half{background:linear-gradient(135deg,#15803D 50%,#FAF7F0 50%);border-color:#15803D}.leave-bar__cell--reserved{background:#1D4ED8;border-color:#1D4ED8}.leave-bar__cell--empty{background:#FAF7F0;border-color:#E5DFCF}.leave-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:#8A8170;margin-bottom:12px}.leave-legend__item{display:inline-flex;align-items:center;gap:4px}.leave-legend__swatch{width:12px;height:12px;border-radius:3px;border:1px solid #DCD5C4}.leave-legend__swatch--used{background:#DC2626;border-color:#DC2626}.leave-legend__swatch--reserved{background:#1D4ED8;border-color:#1D4ED8}.leave-legend__swatch--remaining{background:#15803D;border-color:#15803D}.leave-legend__swatch--empty{background:#FAF7F0}.leave-cards{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px}.leave-card{flex:1 1 140px;background:#FAF7F0;border:1px solid #DCD5C4;border-radius:10px;padding:12px 16px}.leave-card__label{font-size:12px;color:#8A8170}.leave-card__value{font-size:20px;font-weight:700;color:#0F0C09}.leave-card__unit{font-size:12px;color:#8A8170;margin-left:2px}.leave-card--highlight{background:#FCEAD4;border-color:#C2410C}.leave-card--highlight .leave-card__value{color:#C2410C}.dash-split{display:flex;gap:16px}.dash-split__part{display:flex;align-items:baseline;gap:4px}.lv-pill{display:inline-block;padding:2px 10px;border-radius:999px;font-size:11px;font-weight:600;border:1px solid transparent}.lv-pill--warning{background:#FEF3C7;color:#D97706}.lv-pill--success{background:#DCFCE7;color:#15803D}.lv-pill--danger{background:#FEE2E2;color:#DC2626}.lv-pill--secondary{background:#F5F1E6;color:#8A8170}.leave-member{display:grid;grid-template-columns:160px 1fr auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #EAE3D2}.leave-member__name{font-weight:600}.leave-member__sub{font-size:12px;color:#8A8170}.leave-member__nums{font-size:12px;color:#8A8170;white-space:nowrap}@media (max-width:768px){.leave-member{grid-template-columns:1fr;gap:4px}}.content--fill{overflow:hidden;display:flex;flex-direction:column}.page--schedule{flex:1;min-height:0;width:100%;max-width:none;display:flex;flex-direction:column}.page--schedule .page-header,.page--schedule .cal-toolbar{flex:0 0 auto}.cal-toolbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:12px}.cal-toolbar__month{font-size:16px}.cal-legend{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:#8A8170}.cal-legend__item{display:inline-flex;align-items:center;gap:4px}.cal-dot{width:9px;height:9px;border-radius:50%;display:inline-block}.cal-dot--project-start{background:#1D4ED8}.cal-dot--project-end{background:#DC2626}.cal-dot--milestone{background:#C2410C}.cal-dot--leave{background:#15803D}.cal-dot--birthday{background:#DB2777}.cal-dot--grant-apply-end{background:#C2630A}.cal-dot--grant-end{background:#7C3AED}.cal{flex:1;min-height:0;display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:auto;grid-auto-rows:1fr;border-top:1px solid #DCD5C4;border-left:1px solid #DCD5C4}.cal__head{text-align:center;background:#F5F1E6;border-right:1px solid #DCD5C4;border-bottom:1px solid #DCD5C4;padding:8px 0;font-weight:600;font-size:12px}.cal__cell{border-right:1px solid #DCD5C4;border-bottom:1px solid #DCD5C4;padding:3px;min-height:0;display:flex;flex-direction:column;overflow:hidden}.cal__cell--empty{background:#F5F1E6}.cal__cell--today{background:#FCEAD4}.cal__day{flex:0 0 auto;font-size:11px;color:#8A8170;margin-bottom:2px}.cal__events{flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin}.cal__events::-webkit-scrollbar{width:6px;height:6px}.cal__events::-webkit-scrollbar-thumb{background:#DCD5C4;border-radius:3px}.cal__event{display:block;border-radius:6px;padding:1px 5px;margin-top:2px;font-size:11px;line-height:1.5;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal__event--project-start{background:#1D4ED8}.cal__event--project-end{background:#DC2626}.cal__event--milestone{background:#C2410C}.cal__event--leave{background:#15803D}.cal__event--birthday{background:#DB2777}.cal__event--grant-apply-end{background:#C2630A}.cal__event--grant-end{background:#7C3AED}@media (min-width:1024px){.cal__cell{padding:5px}.cal__event{font-size:12px;white-space:normal;overflow:visible;text-overflow:clip;word-break:break-word}}@media (min-width:1280px){.cal__cell{padding:7px}.cal__day{font-size:12px}.cal__event{padding:2px 7px;margin-top:3px}}@media (max-width:768px){.content--fill{overflow-y:auto}.cal{grid-auto-rows:minmax(56px,1fr)}.cal__event{font-size:10px;padding:1px 4px}}.grant-status{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;color:#fff;background:var(--status-color,#6B7280);vertical-align:middle}.grant-status--sm{padding:1px 6px;font-size:11px}.grant-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin-top:8px}.grant-card{display:block;padding:12px 16px;border:1px solid #DCD5C4;border-radius:10px;background:#FAF7F0;text-decoration:none;color:inherit;transition:border-color .12s,box-shadow .12s}.grant-card:hover{border-color:#C2410C;box-shadow:0 2px 8px rgba(0,0,0,0.06)}.grant-card__top{display:flex;align-items:center;justify-content:space-between;gap:8px}.grant-card__title{font-weight:600;line-height:1.3}.grant-card__meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;font-size:12px;color:#8A8170}.grant-card__client{font-weight:500;color:#1F1B16}.grant-card__sep{color:#DCD5C4}.grant-card__scope{margin:8px 0 0;font-size:12px;color:#8A8170;line-height:1.4}.grant-card__foot{margin-top:8px}.doc-check-group{margin-bottom:12px}.doc-check-group>strong{display:block;margin-bottom:4px}.doc-check{display:inline-flex;align-items:center;gap:6px;margin:0 12px 6px 0;font-size:12px;cursor:pointer}.ann-row{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 6px 6px 0}.ann-row .field__input{font-size:12px}.ann-row__year{width:80px}.ann-card{position:relative;border:1px solid #E5DFCF;border-radius:10px;padding:12px 12px 8px;margin-bottom:12px;background:#FAF7F0}.ann-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px 12px}.ann-f{display:flex;flex-direction:column;gap:3px;min-width:0}.ann-f span{font-size:11px;color:#8A8170}.ann-f span i{color:#DC2626;font-style:normal}.ann-f .field__input{width:100%;font-size:12px}.ann-f--wide{grid-column:span 2}.ann-f--full{grid-column:1 / -1}.avail-budget{display:block;padding:9px 12px;border:1px solid #DCD5C4;border-radius:6px;background:#F5F1E6;font-size:14px;font-weight:700;color:#0F0C09}.ann-card__foot{margin-top:8px}.ann-card__del{position:absolute;top:8px;right:8px}@media (max-width:767px){.ann-grid{grid-template-columns:1fr 1fr}.ann-f--wide{grid-column:1 / -1}}.grant-filters{display:flex;flex-direction:column;gap:8px}.grant-typechips{display:flex;flex-wrap:wrap;gap:6px}.grant-typechip{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border:1px solid #DCD5C4;border-radius:999px;background:#FAF7F0;font-size:11px;color:#1F1B16;text-decoration:none;transition:background-color .12s,border-color .12s,color .12s}.grant-typechip:hover{border-color:#8A8170;text-decoration:none;color:#1F1B16}.grant-typechip--active{background:#0F0C09;border-color:#0F0C09;color:#fff}.grant-typechip--active:hover{color:#fff}.grant-status-form{display:flex;gap:6px;flex-wrap:wrap}.grant-link-form{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px}.grant-link-form__select{min-width:240px;flex:1 1 240px}.grant-conflict__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.grant-conflict__opt{display:block;margin-top:6px;font-size:12px}.client-group__title{margin:12px 0 4px;font-size:12px;color:#8A8170}.split-view{display:flex;gap:16px;align-items:stretch;height:100%;padding:20px;box-sizing:border-box}.client-year-filter{margin:8px 0 12px}.split-aside{flex:0 0 260px;width:260px;display:flex;flex-direction:column;min-height:0}.split-aside .split-search{margin-bottom:8px}.split-aside .split-search .search-input{width:100%}.split-aside__head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.split-aside__head h2{margin:0;font-size:16px}.split-aside__search{margin-bottom:8px}.split-search{width:100%;box-sizing:border-box;padding:7px 11px;font-size:12px;border:1px solid #DCD5C4;border-radius:10px;background:#FAF7F0;color:inherit}.split-search::placeholder{color:#8A8170}.split-search:focus{outline:none;border-color:#C2410C}.split-list{display:flex;flex-direction:column;gap:2px;flex:1;min-height:0;overflow-y:auto;border:1px solid #DCD5C4;border-radius:10px;background:#FAF7F0;padding:4px}.split-list__group{font-size:11px;font-weight:600;color:white;display:flex;align-items:center;gap:5px;padding:4px 8px;border-radius:6px}.split-list__group:first-child{margin-top:4px}.split-item{display:block;padding:8px 12px;border-radius:6px;text-decoration:none;color:inherit;transition:background-color .1s}.split-item:hover{background:color-mix(in srgb,#C2410C 12%,#FAF7F0);text-decoration:none}.split-item--active{background:#FCEAD4}.split-item--active:hover{background:#FCEAD4;text-decoration:none}.split-item__name{display:flex;align-items:center;gap:5px;font-weight:600}.split-item__meta{display:block;font-size:11px;color:#8A8170;margin-top:1px}.split-item__sub{display:block;font-size:11px;color:#B8B0A0;margin-top:1px;font-variant-numeric:tabular-nums}.split-main{flex:1 1 auto;min-width:0;overflow-y:auto;scrollbar-width:thin}.split-main::-webkit-scrollbar{width:6px;height:6px}.split-main::-webkit-scrollbar-thumb{background:#DCD5C4;border-radius:3px}.status-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto;background:var(--status-color,#6B7280)}.client-overview{display:flex;flex-wrap:wrap;gap:16px;padding:12px 16px;border:1px solid #DCD5C4;border-radius:10px;background:#FAF7F0;margin-bottom:12px}.client-overview__stat{display:flex;flex-direction:column}.client-overview__num{font-size:20px;font-weight:700}.client-overview__num small{font-size:12px;font-weight:500;margin-left:1px}.client-overview__label{font-size:11px;color:#8A8170}.client-info{display:grid;grid-template-columns:max-content 1fr;gap:6px 12px;margin:0 0 12px;font-size:12px}.client-info dt{color:#8A8170}.client-info dd{margin:0;word-break:break-all}.contact-cards{display:flex;flex-wrap:wrap;gap:12px}.contact-cards .contact-card{flex:1 1 200px;min-width:180px;padding:12px;border:1px solid #DCD5C4;border-radius:10px;background:#FAF7F0}.contact-cards .contact-card__name{font-weight:600;margin-bottom:4px}.contact-cards .contact-card__line{font-size:12px;color:#8A8170}.contact-list{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}.contact-row{display:flex;align-items:flex-end;gap:12px;padding:12px;border:1px solid #E5DFCF;border-radius:10px;background:rgba(0,0,0,0.015)}.contact-row__fields{flex:1;display:grid;grid-template-columns:1.4fr 1fr 1fr 1.4fr;gap:8px 12px}.contact-row__act{flex:0 0 auto;padding-bottom:4px}.contact-row__del{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:#b02a2a;white-space:nowrap;cursor:pointer}@media (max-width:720px){.contact-row__fields{grid-template-columns:1fr 1fr}}@media (max-width:860px){.page-shell__body--split{overflow-y:auto}.split-view{flex-direction:column;height:auto}.split-aside{flex-basis:auto;width:100%}.split-list{flex:none;max-height:320px}.split-main{overflow:visible}}.stage-track{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-wrap:wrap;gap:8px}.stage-step{position:relative;display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 5px;border:1px solid #E5DFCF;border-radius:999px;background:#FAF7F0;font-size:12px}.stage-step.is-current{border-color:#0F0C09;background:color-mix(in srgb,#0F0C09 6%,transparent)}.stage-step.is-current .stage-step__name{font-weight:700}.stage-step.is-done .stage-step__name{color:#8A8170}.stage-step__toggleform{display:inline-flex}.stage-step__dot{width:18px;height:18px;border-radius:50%;border:2px solid #DCD5C4;background:#FAF7F0;font-size:10px;font-weight:700;color:#fff;display:inline-grid;place-items:center;cursor:pointer;padding:0;line-height:1}.stage-step.is-done .stage-step__dot{background:#15803D;border-color:#15803D}.stage-step.is-current .stage-step__dot{border-color:#0F0C09}.stage-step__name{white-space:nowrap}.stage-step__date{font-size:11px;color:#8A8170;white-space:nowrap}.stage-step__date--plan{font-style:italic}.stage-step__note{font-size:11px;color:#C2410C;cursor:help}.stage-step__menu{display:inline-flex}.stage-step__menu summary{cursor:pointer;color:#B8B0A0;list-style:none;padding:0 2px;line-height:1}.stage-step__menu summary::-webkit-details-marker{display:none}.stage-step__pop{position:absolute;top:100%;right:0;z-index:20;margin-top:4px;padding:8px;background:#FAF7F0;border:1px solid #DCD5C4;border-radius:10px;box-shadow:0 2px 8px rgba(31,27,22,0.06);min-width:220px}.stage-step__editform{display:flex;flex-direction:column;gap:6px}.stage-step__field{display:flex;flex-direction:column;gap:2px;font-size:11px;color:#8A8170}.stage-step__field input{padding:4px 8px;border:1px solid #DCD5C4;border-radius:6px;font-size:12px;background:#F0EBE0}.stage-step__popfoot{display:flex;gap:4px;justify-content:flex-end}.stage-add-form,.grant-inline-add{display:flex;gap:8px;align-items:center;margin-top:8px}.stage-add-form input[type="text"],.stage-add-form input[type="date"],.stage-add-form select,.grant-inline-add input[type="text"],.grant-inline-add input[type="date"],.grant-inline-add select{padding:5px 8px;border:1px solid #DCD5C4;border-radius:6px;font-size:12px;background:#F0EBE0}.stage-add-form input[type="text"]:focus,.stage-add-form input[type="date"]:focus,.stage-add-form select:focus,.grant-inline-add input[type="text"]:focus,.grant-inline-add input[type="date"]:focus,.grant-inline-add select:focus{outline:none;border-color:#0F0C09}.stage-add-form input[type="text"],.grant-inline-add input[type="text"]{flex:1;min-width:0}.check-progress{height:6px;border-radius:999px;background:#F5F1E6;border:1px solid #E5DFCF;overflow:hidden;margin-bottom:8px}.check-progress__bar{height:100%;background:#16A34A;border-radius:inherit;transition:width .2s ease}.check-toggle{width:20px;height:20px;border-radius:6px;border:1.5px solid #DCD5C4;background:#FAF7F0;color:#fff;font-size:12px;font-weight:700;display:inline-grid;place-items:center;cursor:pointer;padding:0;line-height:1}.check-toggle--on{background:#16A34A;border-color:#16A34A}.check-done td{color:#8A8170}.form__section-title{margin:16px 0 8px;font-size:14px;color:#0F0C09;border-bottom:1px solid #EAE3D2;padding-bottom:6px}.form__section-title .muted.small{font-weight:400}.vendor-area{display:inline-block;padding:1px 8px;font-size:11px;font-weight:600;line-height:1.6;color:#C2410C;background:#FCEAD4;border-radius:999px;vertical-align:middle}.po-list{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:6px}.po-item{padding:7px 9px;border:1px solid #E5DFCF;border-radius:6px;background:#FAF7F0;font-size:12px}.po-item__main{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline}.po-item__vendor{font-weight:600}.po-item__content{color:#1F1B16}.po-item__meta{display:flex;align-items:center;gap:8px;margin-top:3px;color:#8A8170}.po-item__amt{font-weight:600;color:#1F1B16}.po-item__meta .btn{margin-left:auto}.po-add{border-top:1px dashed #DCD5C4;padding-top:10px;margin-top:4px}.po-add__grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.po-add__f{display:flex;flex-direction:column;gap:3px;font-size:11px;color:#8A8170}.po-add__f--wide{grid-column:1 / -1}.po-add__f input,.po-add__f select{width:100%;padding:4px 6px;font-size:12px;border:1px solid #DCD5C4;border-radius:6px;background:#F0EBE0}.po-add__act{margin-top:8px;text-align:right}.breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:5px;font-size:11px;line-height:1.4;color:#8A8170}.breadcrumb__crumb{color:#8A8170;text-decoration:none}.breadcrumb__crumb:hover{color:#1F1B16;text-decoration:underline}.breadcrumb__crumb--section{cursor:default}.breadcrumb__crumb--section:hover{text-decoration:none;color:#8A8170}.breadcrumb__crumb--current{color:#1F1B16;font-weight:600;cursor:default}.breadcrumb__crumb--current:hover{text-decoration:none;color:#1F1B16}.breadcrumb__sep{color:#B8B0A0}[x-cloak]{display:none!important}.modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:16px}.modal__overlay{position:absolute;inset:0;background:rgba(15,12,9,0.45)}.modal__dialog{position:relative;width:100%;max-width:420px;background:#FAF7F0;border:1px solid #DCD5C4;border-radius:10px;box-shadow:0 12px 32px rgba(31,27,22,0.1);padding:16px 16px 12px}.modal__dialog--wide{max-width:640px;padding:16px}.modal__dialog--form{width:94vw;max-width:900px;max-height:calc(100vh - 16px * 2);overflow-y:auto;padding:16px}.form-drawer{position:fixed;top:0;right:0;bottom:0;width:clamp(440px,48vw,880px);background:#FAF7F0;border-left:1px solid #DCD5C4;box-shadow:-6px 0 28px rgba(31,27,22,0.16);z-index:101;overflow-y:auto;scrollbar-width:thin;padding:16px 16px 20px;transform:translateX(100%);transition:transform .22s ease}.form-drawer::-webkit-scrollbar{width:6px;height:6px}.form-drawer::-webkit-scrollbar-thumb{background:#DCD5C4;border-radius:3px}.form-drawer--open{transform:translateX(0)}@media (max-width:640px){.form-drawer{width:100vw}}.form-drawer__overlay{position:fixed;inset:0;background:rgba(15,12,9,0.35);z-index:100}.form-modal__head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.modal__title{margin:0 0 8px;font-size:16px;font-weight:700;color:#0F0C09}.modal__message{margin:0 0 16px;font-size:12px;line-height:1.55;color:#1F1B16;white-space:pre-line}.modal__actions{display:flex;justify-content:flex-end;gap:8px}.btn--danger{background:#DC2626;border-color:#DC2626;color:#fff}.btn--danger:hover{background:color-mix(in srgb,#DC2626 88%,#000);border-color:color-mix(in srgb,#DC2626 88%,#000);color:#fff}.quote-editor__cols{display:flex;gap:20px;align-items:flex-start}.quote-editor__form{flex:1 1 0;min-width:0}.quote-editor__resizer{flex:0 0 10px;align-self:stretch;cursor:col-resize;position:relative;border-radius:3px}.quote-editor__resizer::before{content:"";position:absolute;top:0;bottom:0;left:4px;width:2px;background:#E5DFCF;border-radius:2px}.quote-editor__resizer:hover::before{background:#8A8170}.quote-editor__preview{flex:0 0 480px;position:sticky;top:0;align-self:flex-start;min-width:0}.quote-editor__preview-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.quote-editor__preview-label{font-size:12px;font-weight:600;color:#8A8170;letter-spacing:.04em}.quote-preview{background:#ececec;border:1px solid #E5DFCF;border-radius:10px;padding:14px;max-height:calc(100vh - 150px);overflow:auto}.qpaper--preview{zoom:0.6;margin:0;min-height:0;box-shadow:0 1px 8px rgba(0,0,0,0.14)}.qsource{position:absolute;left:-100000px;top:0;width:210mm}.qpages{display:flex;flex-direction:column;align-items:center;gap:12px}.qpaper--page{min-height:297mm;margin:0}.qcont{font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);font-weight:600;padding-bottom:8px;margin-bottom:12px;border-bottom:1px solid var(--line)}@media (max-width:1180px){.quote-editor__cols{flex-direction:column}.quote-editor__preview{position:static;flex-basis:auto;width:100%;max-width:480px}}.company-asset{display:inline-flex;flex-direction:column;gap:4px;margin-bottom:8px;padding:10px 14px;background-color:#f4f4f2;background-image:linear-gradient(45deg,#e9e9e6 25%,transparent 25%),linear-gradient(-45deg,#e9e9e6 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#e9e9e6 75%),linear-gradient(-45deg,transparent 75%,#e9e9e6 75%);background-size:14px 14px;background-position:0 0,0 7px,7px -7px,-7px 0;border:1px solid #E5DFCF;border-radius:10px}.company-asset__tag{font-size:11px;color:#8A8170;font-weight:600}.company-asset img{max-height:64px;max-width:220px;object-fit:contain}.quote-ai{border:1px solid #C2410C;border-radius:10px;background:#FCEAD4;padding:12px 14px}.quote-ai__head{margin:0}.quote-ai__toggle{background:none;border:0;padding:0;font:inherit;font-weight:700;color:#0F0C09;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.quote-ai__caret{font-size:10px;color:#8A8170}.quote-ai__body{margin-top:8px}.quote-ai__brief{width:100%;resize:vertical}.quote-ai__actions{display:flex;align-items:center;gap:12px;margin-top:8px}.quote-ai__error{font-size:12px;color:#b02a2a}.quote-ai__sow{display:inline-flex;align-items:center;gap:5px;font-size:12px;cursor:pointer}.quote-ai__tiers{margin-top:12px}.quote-ai__tier-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}@media (max-width:720px){.quote-ai__tier-cards{grid-template-columns:1fr}}.quote-ai__tier-card{background:#FAF7F0;border:1px solid #DCD5C4;border-radius:6px;padding:10px 12px;display:flex;flex-direction:column;gap:6px}.quote-ai__tier-label{font-weight:700;color:#0F0C09}.quote-ai__tier-total{font-size:14px}.quote-ai__tier-summary{margin:0;font-size:12px;color:#8A8170;line-height:1.5;flex:1}.quote-ai__tier-foot{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px}.quote-sow__head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.quote-sow__ai{display:inline-flex;align-items:center;gap:8px}.radio-inline ul{list-style:none;margin:0;padding:0;display:flex;gap:14px}.radio-inline li{display:flex;align-items:center;gap:4px}.radio-inline label{display:inline-flex;align-items:center;gap:4px;font-size:12px;cursor:pointer}.quote-editor__bar{display:flex;justify-content:flex-end;margin-bottom:8px}.group-block{border:1px solid #E5DFCF;border-radius:10px;padding:10px 12px;margin-bottom:12px;background:rgba(0,0,0,0.015);transition:background .12s,box-shadow .12s}.group-block--drop{background:#FCEAD4;box-shadow:inset 0 0 0 2px #C2410C}.group-block .qgrip-cell{text-align:center;padding:0}.group-block .qgrip{display:inline-block;cursor:grab;color:#8A8170;font-size:13px;line-height:1;user-select:none}.group-block .qgrip:active{cursor:grabbing}.group-block tr[draggable="true"]{cursor:default}.group-block tr.qrow--dragging{opacity:.4}.group-block__head{display:flex;align-items:center;gap:12px;margin-bottom:8px}.group-block__name{flex:0 0 200px;font-weight:600}.group-block__head .spacer{flex:1}.group-block__ord{display:inline-flex;gap:2px}.group-block__ord .btn{padding:2px 7px;line-height:1}.quote-items-wrap{overflow-x:auto}.quote-items{min-width:700px}.quote-items .field__input{width:100%;padding:4px 6px;font-size:12px}.quote-items input[type="number"]{text-align:right;padding-right:7px}.quote-items td{vertical-align:middle}.quote-totals{max-width:420px;margin-left:auto}.quote-totals__row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid #E5DFCF}.quote-totals__row--total{border-bottom:0;border-top:2px solid #0F0C09;font-size:16px}.quote-totals__row--total strong{color:#0F0C09}.quote-log{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.quote-log li{display:flex;align-items:center;gap:8px;font-size:12px}.quote-log__action{flex:0 0 auto;padding:1px 8px;border-radius:999px;font-size:11px;font-weight:600}.quote-log__action--created{color:#1d7a4d;background:#e3f5ea}.quote-log__action--updated{color:#b06a00;background:#fbeed6}.quote-log__user{font-weight:500}.quote-print-body{margin:0;background:#e7e6e3;-webkit-print-color-adjust:exact;print-color-adjust:exact}.quote-toolbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:8px;justify-content:center;padding:12px 20px;background:rgba(20,20,20,0.92)}.quote-toolbar__info{color:rgba(255,255,255,0.85);font-size:12px;font-variant-numeric:tabular-nums}.qprint{display:flex;gap:16px;height:calc(100vh - 50px);padding:16px;box-sizing:border-box}.qprint-thumbs{flex:0 0 168px;overflow-y:auto;display:flex;flex-direction:column;align-items:center;gap:10px;padding:4px}.qthumb{flex:0 0 auto;width:144px;height:202px;padding:0;border:2px solid transparent;border-radius:5px;background:#fff;cursor:pointer;position:relative;overflow:hidden;box-shadow:0 1px 6px rgba(0,0,0,0.18);transition:border-color .12s}.qthumb:hover{border-color:rgba(0,0,0,0.25)}.qthumb--active{border-color:#C2410C}.qthumb__inner{width:142px;height:200px;overflow:hidden;pointer-events:none}.qthumb__inner .qpaper--page{transform:scale(0.179);transform-origin:top left;margin:0;box-shadow:none}.qthumb__num{position:absolute;bottom:5px;right:6px;font-size:11px;font-weight:700;color:#fff;background:rgba(0,0,0,0.55);border-radius:3px;padding:0 5px}.qprint-main{flex:1 1 auto;overflow-y:auto}.qpaper{--ink:#0a0a0a;--muted:#9a9a9a;--faint:#bdbdbd;--line:#ececec;--line-strong:#0a0a0a;--seal:#c8202a;position:relative;width:210mm;min-height:297mm;margin:24px auto;padding:16mm 15mm;background:#fff;box-shadow:0 1px 0 rgba(0,0,0,0.04),0 22px 60px -28px rgba(0,0,0,0.35);box-sizing:border-box;display:flex;flex-direction:column;color:var(--ink);font-family:'Pretendard',sans-serif;font-size:12px;font-feature-settings:"tnum";line-height:1.5}.qpaper .num{font-variant-numeric:tabular-nums}.qpaper .l{text-align:left}.qpaper .top{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:8px;border-bottom:2px solid var(--line-strong)}.qpaper .mark{display:flex;flex-direction:column;gap:12px}.qpaper .mark .logo{height:20px}.qpaper .mark .logo svg{height:20px;width:auto;display:block;fill:var(--ink)}.qpaper .mark .logo img{height:20px;width:auto;display:block}.qpaper .mark .tag{font-size:8px;letter-spacing:.18em;color:var(--muted);font-weight:600;text-transform:uppercase}.qpaper .title{text-align:right}.qpaper .title .ko{font-size:20px;font-weight:800;letter-spacing:.24em;padding-left:.24em;white-space:nowrap}.qpaper .title .en{font-size:9.5px;letter-spacing:.42em;color:var(--muted);font-weight:600;margin-top:5px;padding-left:.42em}.qpaper .title .docmeta{display:flex;gap:22px;justify-content:flex-end;margin-top:12px}.qpaper .title .docmeta .m{text-align:right}.qpaper .title .docmeta .m .k{font-size:7.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);font-weight:600}.qpaper .title .docmeta .m .v{font-size:10px;font-weight:700;margin-top:3px;white-space:nowrap}.qpaper .info{display:grid;grid-template-columns:1.35fr 1.1fr auto;gap:0 40px;padding:12px 0;border-bottom:1px solid #e6e6e6;align-items:start}.qpaper .party .role{font-size:8px;letter-spacing:.18em;text-transform:uppercase;color:var(--faint);font-weight:600;margin-bottom:9px}.qpaper .party .nm{font-size:12px;font-weight:800}.qpaper .party .nm small{font-size:9px;font-weight:600;letter-spacing:.14em;color:var(--muted);margin-left:6px}.qpaper .kv{display:grid;grid-template-columns:48px 1fr;row-gap:3px;column-gap:10px;font-size:9px;line-height:1.25;margin-top:9px}.qpaper .kv dt{color:var(--faint);font-weight:500}.qpaper .kv dd{margin:0;color:#3a3a3a}.qpaper .client-attn{font-size:13px;font-weight:700;margin-top:5px}.qpaper .client-attn b{font-weight:800}.qpaper .client-sub{font-size:9px;color:var(--muted);margin-top:8px;line-height:1.5}.qpaper .sealcol{display:flex;flex-direction:column;align-items:center;gap:9px;align-self:center}.qpaper .sealcol .seal{width:62px;height:62px;display:flex;align-items:center;justify-content:center}.qpaper .sealcol .seal svg{width:100%;height:100%;display:block}.qpaper .sealcol .seal svg path{fill:var(--seal)}.qpaper .sealcol .seal img{max-width:100%;max-height:100%}.qpaper .sealcol .seal-cap{font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);font-weight:600;white-space:nowrap}.qpaper .tablewrap{margin-top:12px}.qpaper .flex-spacer{flex:1 1 auto;min-height:14px}.qpaper table{width:100%;border-collapse:collapse}.qpaper thead th{font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600;text-align:right;padding:0 0 10px;border-bottom:1.5px solid var(--line-strong)}.qpaper thead th.l{text-align:left}.qpaper tbody td{padding:6px 0;border-bottom:1px solid var(--line);vertical-align:top;text-align:right}.qpaper tbody td.l{text-align:left}.qpaper tbody tr{break-inside:avoid}.qpaper .idx{font-size:10px;color:var(--faint);width:24px}.qpaper .cat{font-size:10px;font-weight:600;line-height:1.35}.qpaper .det{font-size:8px;color:#8a8a8a;line-height:1.45;margin-top:3px}.qpaper .mono{font-size:10px;white-space:nowrap}.qpaper .mono.supply{font-weight:700}.qpaper td.qty{width:46px}.qpaper td.unit{width:84px}.qpaper td.sup{width:96px}.qpaper td.tax{width:84px}.qpaper thead th.gcol-h{width:128px}.qpaper td.gcol{width:128px;vertical-align:top;padding:10px 16px 10px 0;border-right:1px solid var(--line);border-bottom:1.5px solid var(--ink)}.qpaper td.gcol .gc-t{font-size:13px;font-weight:800;line-height:1.3}.qpaper td.gcol .gc-sum{font-size:9.5px;color:var(--muted);margin-top:8px;font-variant-numeric:tabular-nums;font-weight:600}.qpaper td.gcol .gc-sum span{display:block;font-size:7.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);font-weight:600;margin-bottom:2px}.qpaper tbody tr.gr td{border-bottom:1px solid var(--line);padding:7px 10px}.qpaper tbody tr.gr.glast td{border-bottom:1.5px solid var(--ink)}.qpaper .scope{margin-top:22px;break-inside:avoid}.qpaper .scope .scope-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 36px}.qpaper .scope .sc-h{font-size:9px;font-weight:800;color:var(--ink);margin-bottom:10px;display:flex;align-items:baseline;gap:7px}.qpaper .scope .sc-h span{font-size:7.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);font-weight:600;white-space:nowrap}.qpaper .scope ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:5px}.qpaper .scope ul li{font-size:8px;line-height:1.25;color:#3a3a3a;padding-left:15px;position:relative}.qpaper .scope ul li::before{content:"+";position:absolute;left:0;top:-.5px;color:var(--ink);font-weight:700}.qpaper .scope .excl li{color:#8a8a8a}.qpaper .scope .excl li::before{content:"\2013";color:var(--faint)}.qpaper .scope .sc-assume{margin-top:14px}.qpaper .scope .sc-assume ol{margin:0;padding-left:0px;display:flex;flex-direction:column;gap:5px}.qpaper .scope .sc-assume li{font-size:8px;color:#6a6a6a;line-height:1.25;padding-left:2px}.qpaper .foot{margin-top:auto;padding-top:12px;border-top:1px solid #e6e6e6;display:flex;justify-content:space-between;align-items:flex-end;gap:20px;break-inside:avoid}.qpaper .terms{font-size:8px;color:var(--muted);line-height:1.25;max-width:330px}.qpaper .terms .th{font-size:8px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);font-weight:600;margin-bottom:6px}.qpaper .terms ol{margin:0}.qpaper .terms .note{margin-top:10px;color:var(--faint)}.qpaper .totals{min-width:280px}.qpaper .totrow{display:flex;justify-content:space-between;align-items:baseline;padding:4px 0;font-size:10px}.qpaper .totrow .tk{color:var(--muted);letter-spacing:.02em;white-space:nowrap}.qpaper .totrow .tv{font-weight:600;white-space:nowrap}.qpaper .totrow.disc .tk,.qpaper .totrow.disc .tv{color:#b02a2a}.qpaper .grand{margin-top:4px;background:var(--ink);color:#fff;padding:16px 18px;display:flex;justify-content:space-between;align-items:center;gap:14px}.qpaper .grand>div:first-child{flex:1 1 auto;min-width:0}.qpaper .grand .gk{font-size:9px;text-transform:uppercase;color:rgba(255,255,255,0.6);font-weight:600}.qpaper .grand .gko{font-size:10px;font-weight:700;margin-top:4px;white-space:nowrap;overflow:hidden}.qpaper .grand .gv{flex:0 0 auto;font-size:18px;font-weight:800;letter-spacing:-.01em;white-space:nowrap}.qpaper .grand .gv small{font-size:12px;font-weight:600;margin-right:3px;color:rgba(255,255,255,0.7)}.qpaper .sow-h{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--faint);font-weight:700;margin-bottom:4px}.qpaper .sow-title{font-size:19px;font-weight:800;letter-spacing:.02em;padding-bottom:16px;border-bottom:2px solid var(--line-strong)}.qpaper .sow-sec{margin-top:20px;break-inside:avoid}.qpaper .sow-sec>.s-h{font-size:11px;font-weight:800;margin-bottom:9px;display:flex;align-items:baseline;gap:8px}.qpaper .sow-sec>.s-h span{font-size:7.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);font-weight:600}.qpaper .sow-sec .s-body{font-size:10.5px;line-height:1.65;color:#3a3a3a}.qpaper .sow-area{display:grid;grid-template-columns:120px 1fr;gap:6px 16px;padding:9px 0;border-bottom:1px solid var(--line)}.qpaper .sow-area .a-name{font-size:11px;font-weight:700}.qpaper .sow-area ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:3px}.qpaper .sow-area li{font-size:10px;color:#3a3a3a;padding-left:13px;position:relative}.qpaper .sow-area li::before{content:"·";position:absolute;left:3px;color:var(--muted)}.qpaper .sow-list{margin:0;padding-left:16px;display:flex;flex-direction:column;gap:4px;font-size:10px;color:#3a3a3a}.qpaper .sow-table{width:100%;border-collapse:collapse;margin-top:4px}.qpaper .sow-table th{font-size:8px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:600;text-align:left;padding:6px 0;border-bottom:1.5px solid var(--line-strong)}.qpaper .sow-table td{font-size:10.5px;padding:9px 0;border-bottom:1px solid var(--line)}.qpaper .sow-table td.r,.qpaper .sow-table th.r{text-align:right}.qpaper+.qpaper{margin-top:0}.page-guide{position:absolute;left:0;right:0;border-top:1px dashed #d23;pointer-events:none;z-index:5}.page-guide__lbl{position:absolute;right:0;top:-9px;background:#d23;color:#fff;font-size:9px;font-weight:700;letter-spacing:.04em;padding:1px 6px;border-radius:3px 3px 0 0}.qpaper .qpagefoot{position:absolute;left:15mm;right:15mm;bottom:8mm;display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:8px;letter-spacing:.04em;color:var(--faint);border-top:1px solid var(--line);padding-top:3px}.qpaper .qpagefoot__id{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qpaper .qpagefoot__num{flex:0 0 auto;font-variant-numeric:tabular-nums}@media print{.no-print{display:none!important}.quote-print-body{background:#fff}.qsource{display:none!important}.qprint{display:block;height:auto;padding:0}.qprint-main{overflow:visible}.qpages{display:block}.qpaper{margin:0;box-shadow:none}.qpaper+.qpaper{page-break-before:always}.qpaper thead{display:table-header-group}.qpaper tbody tr,.qpaper .scope,.qpaper .foot,.qpaper .sow-sec{break-inside:avoid}.qpaper .grand{-webkit-print-color-adjust:exact;print-color-adjust:exact}@page{size:A4;margin:0}}.quote-workflow{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.asset-thumb{width:40px;height:40px;border-radius:6px;object-fit:cover;background:#F5F1E6;border:1px solid #E5DFCF;display:inline-grid;place-items:center;color:#8A8170;font-size:11px}.asset-thumb--empty{width:40px;height:40px}.asset-thumb--lg{width:120px;height:120px;margin-bottom:8px}.asset-tools{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:4px 0 14px}.asset-row .nowrap{white-space:nowrap}.asset-row td{vertical-align:middle}.table--assets td,.table--assets th{white-space:nowrap}.table--assets td:nth-child(5),.table--assets td:nth-child(10){white-space:normal}.badge--consumable{background:#FEF3C7;color:#D97706;border:1px solid rgba(217,119,6,0.3);font-size:10px;font-weight:700}.asset-name-link{color:#0F0C09;cursor:pointer}.asset-name-link:hover{text-decoration:underline}.asset-drawer{position:fixed;top:0;right:0;bottom:0;width:440px;max-width:92vw;background:#FAF7F0;border-left:1px solid #DCD5C4;box-shadow:-6px 0 24px rgba(31,27,22,0.12);z-index:90;overflow-y:auto;scrollbar-width:thin;padding:16px 16px 20px;transform:translateX(100%);transition:transform .22s ease}.asset-drawer::-webkit-scrollbar{width:6px;height:6px}.asset-drawer::-webkit-scrollbar-thumb{background:#DCD5C4;border-radius:3px}.asset-drawer--open{transform:translateX(0)}.asset-drawer__overlay{position:fixed;inset:0;background:rgba(15,12,9,0.3);z-index:89}.asset-panel__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.asset-panel__head h3{margin:0;font-size:16px;color:#0F0C09}.asset-panel__photo{margin-bottom:12px}.asset-panel__photo img{width:100%;max-height:240px;object-fit:contain;background:#F5F1E6;border:1px solid #E5DFCF;border-radius:10px}.asset-panel__dl{display:grid;grid-template-columns:92px 1fr;gap:7px 12px;margin:0 0 12px}.asset-panel__dl dt{font-size:12px;font-weight:600;color:#8A8170}.asset-panel__dl dd{margin:0;font-size:12px;color:#1F1B16;word-break:break-word}.asset-panel__actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px;border-top:1px solid #EAE3D2;padding-top:12px}.asset-panel__form{display:flex;flex-direction:column;gap:12px}.asset-panel__form .field{display:flex;flex-direction:column;gap:3px;font-size:11px;font-weight:600;color:#8A8170}.asset-panel__form .field input[type="text"],.asset-panel__form .field input[type="number"],.asset-panel__form .field input[type="date"],.asset-panel__form .field select{font-weight:400;color:#0F0C09;padding:6px 12px;border:1px solid #DCD5C4;border-radius:6px;background:#F0EBE0;font-size:12px;width:100%}.asset-panel__form .field input[type="text"]:focus,.asset-panel__form .field input[type="number"]:focus,.asset-panel__form .field input[type="date"]:focus,.asset-panel__form .field select:focus{outline:none;border-color:#0F0C09;background:#fff}.asset-panel__form .field--check{flex-direction:row;align-items:center;gap:6px;font-weight:600;color:#1F1B16}.asset-panel__form .field--check input[type="checkbox"]{accent-color:#0F0C09;width:15px;height:15px}.asset-panel__form .field__err{color:#DC2626;font-weight:600;font-size:11px}.asset-panel__form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.asset-components{display:flex;flex-direction:column;gap:6px;padding:12px;border:1px solid #E5DFCF;border-radius:10px;background:#F5F1E6}.asset-components__head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.asset-components__title{font-size:12px;font-weight:700;color:#1F1B16}.asset-components__sum{font-size:12px;color:#8A8170}.asset-components__sum strong{color:#0F0C09}.asset-components__hint{margin:2px 0 0}.asset-comp-table{display:flex;flex-direction:column;gap:4px}.asset-comp-table__head,.asset-comp-table__row{display:grid;grid-template-columns:1fr 56px 104px 22px;gap:5px;align-items:center}.asset-comp-table__head{font-size:10px;font-weight:700;color:#8A8170;padding:0 2px}.asset-comp-table__head span:nth-child(2),.asset-comp-table__head span:nth-child(3){text-align:right}.asset-comp-table .cc-in{width:100%;padding:5px 7px;border:1px solid #DCD5C4;border-radius:6px;background:#F0EBE0;font-size:12px;color:#0F0C09}.asset-comp-table .cc-in:focus{outline:none;border-color:#0F0C09;background:#fff}.asset-comp-table .cc-in--num{text-align:right}.asset-comp-table .cc-del{border:none;background:none;color:#8A8170;cursor:pointer;font-size:13px;padding:2px;line-height:1}.asset-comp-table .cc-del:hover{color:#DC2626}.asset-comp-view{margin-top:12px;border-top:1px solid #EAE3D2;padding-top:12px}.asset-comp-view__title{font-size:12px;font-weight:700;color:#1F1B16;margin-bottom:6px}.asset-comp-view__table{width:100%;border-collapse:collapse;font-size:12px}.asset-comp-view__table th,.asset-comp-view__table td{padding:5px 6px;border-bottom:1px solid #E5DFCF;text-align:left;vertical-align:top}.asset-comp-view__table th{font-size:10px;font-weight:700;color:#8A8170}.asset-comp-view__table .r{text-align:right;white-space:nowrap}.asset-comp-view__table tfoot td{border-bottom:none;border-top:1px solid #DCD5C4;color:#0F0C09}.th-sort{padding:0!important}.th-sort a{display:flex;align-items:center;gap:4px;padding:12px 12px;color:inherit;cursor:pointer;user-select:none;white-space:nowrap}.th-sort a:hover{color:#0F0C09;text-decoration:none;background:#FAF7F0}.th-sort--active a{color:#0F0C09}.th-sort__arrow{font-size:9px;line-height:1}.th-sort__arrow--dim{opacity:0.25}.th-sort:hover .th-sort__arrow--dim{opacity:0.55}.dash__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px;margin-top:12px}.dash__panel{border:1px solid #E5DFCF;border-radius:10px;background:#FAF7F0;padding:12px 16px}.dash__panel h3{margin:0 0 8px;font-size:14px;color:#0F0C09}.dash__panel--wide{margin-top:12px}.dash-todo{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.dash-todo li{display:flex;align-items:center;gap:8px;font-size:12px}.dash-todo li a{color:#0F0C09}.dash-todo li a:hover{text-decoration:underline}.dash-biz{width:100%;border-collapse:collapse;font-size:13px}.dash-biz th,.dash-biz td{padding:6px 8px;text-align:right;border-bottom:1px solid #DCD5C4}.dash-biz th{color:#8A8170;font-weight:500;font-size:12px}.dash-biz thead th{border-bottom:1px solid #DCD5C4}.dash-biz th:first-child,.dash-biz td:first-child{text-align:left}.dash-biz td:first-child{white-space:nowrap}.dash-biz tbody tr:last-child td{border-bottom:0}.dash-biz .cat-dot{margin-right:6px}.dash-biz td strong{font-variant-numeric:tabular-nums}.dash-top{list-style:none;counter-reset:rank;margin:0;padding:0}.dash-top li{counter-increment:rank;display:flex;align-items:baseline;gap:8px;padding:4px 0;border-bottom:1px solid #EAE3D2;font-size:12px}.dash-top li::before{content:counter(rank);flex:0 0 18px;font-weight:700;color:#8A8170;font-size:11px}.dash-top li:last-child{border-bottom:none}.dash-top__name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-top__val{white-space:nowrap;color:#1F1B16}.dash-chart{display:flex;align-items:flex-end;gap:6px;height:150px;padding-top:8px}.dash-chart__col{flex:1;display:flex;flex-direction:column;height:100%;min-width:0}.dash-chart__bars{flex:1;display:flex;align-items:flex-end;justify-content:center;gap:2px}.dash-chart__bar{width:38%;max-width:18px;border-radius:3px 3px 0 0;min-height:1px}.dash-chart__bar--income{background:#16A34A}.dash-chart__bar--spend{background:#DC2626;opacity:.85}.dash-chart__label{text-align:center;font-size:10px;color:#8A8170;margin-top:3px}.dash-chart__legend{display:flex;gap:12px;margin-top:6px;font-size:11px;color:#8A8170}.dash-chart__legend span{display:inline-flex;align-items:center;gap:4px}.dash-dot{width:9px;height:9px;border-radius:2px;display:inline-block}.dash-dot--income{background:#16A34A}.dash-dot--spend{background:#DC2626}.lv-pill--info{background:#DBEAFE;color:#1D4ED8}.issue-create-form{display:none;margin-bottom:8px;padding:12px;background:#F5F1E6;border:1px solid #E5DFCF;border-radius:10px}.issue-create-form.is-open{display:block}.issue-create-form__grid{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.issue-create-form__grid .field__input{flex:1 1 140px;min-width:0}.issue-create-form textarea.field__input{width:100%}.issue-create-form__actions{display:flex;gap:8px;margin-top:8px}.row-issue{display:inline-block;margin-left:4px;font-size:11px;font-weight:600;color:#DC2626}.notice-list{display:flex;flex-direction:column;gap:8px}.notice-card{padding:12px 16px;background:#FAF7F0;border:1px solid #E5DFCF;border-radius:10px}.notice-card--pinned{border-color:#C2410C;background:#FCEAD4}.notice-card__head{display:flex;align-items:center;gap:8px}.notice-card__title{font-size:14px}.notice-card__body{margin-top:8px;font-size:12px;color:#1F1B16;white-space:pre-line}.notice-card__foot{display:flex;align-items:center;gap:8px;margin-top:8px}.notice-card__actions{margin-left:auto;display:flex;gap:12px;align-items:center}.notice-pin{font-size:12px}.dash-notices{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.dash-notice{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#FCEAD4;border:1px solid #C2410C;border-radius:10px;color:#0F0C09;text-decoration:none}.dash-notice:hover{filter:brightness(0.98)}.dash-notice strong{white-space:nowrap}.linklike{background:none;border:0;padding:0;color:#DC2626;cursor:pointer;font:inherit}.expiry-banner{margin:8px 0;padding:8px 12px;background:#FEF3C7;border:1px solid #D97706;border-radius:10px;font-size:12px;color:#0F0C09}.expiry-chip{display:inline-block;margin:2px 4px 2px 0;padding:1px 8px;background:#FAF7F0;border-radius:999px;font-weight:600}.noti-toggles{display:flex;flex-direction:column;border:1px solid #E5DFCF;border-radius:10px;overflow:hidden}.noti-toggle{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid #EAE3D2;margin:0}.noti-toggle:last-child{border-bottom:0}.noti-toggle__label{font-size:12px}.switch{position:relative;width:40px;height:22px;border:0;border-radius:999px;background:#E5DFCF;cursor:pointer;transition:background 0.15s}.switch--on{background:#15803D}.switch__knob{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform 0.15s}.switch--on .switch__knob{transform:translateX(18px)}.month-nav{display:flex;align-items:center;gap:12px;margin:8px 0 12px}.month-nav strong{font-size:14px;min-width:80px;text-align:center}.doc-rate{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;font-size:11px;font-weight:600}.doc-rate--ok{background:#DCFCE7;color:#15803D}.doc-rate--miss{background:#FEF3C7;color:#D97706}.payroll-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px;flex-wrap:wrap}.payroll-toolbar__title{font-size:14px}.payroll-toolbar__actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.payroll-form{margin-top:8px;padding:16px;background:#FAF7F0;border:2px solid #1F1B16;border-radius:10px}.payroll-form__head{margin:0 0 12px;font-size:14px}.payroll-form .pf-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px}.payroll-form .pf-field{display:flex;flex-direction:column;gap:4px;min-width:0}.payroll-form .pf-field label{font-size:11px;color:#B8B0A0;font-weight:600}.payroll-form .pf-field label .req{color:#DC2626}.payroll-form .pf-field .field__input{width:100%}.payroll-form .pf-field--wide{grid-column:1 / 2}.payroll-form .pf-field--full{grid-column:1 / -1}.payroll-form .pf-summary{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;padding:8px 12px;background:#F5F1E6;border-radius:6px;font-size:12px}.payroll-form .pf-summary strong{color:#1F1B16}.payroll-form .pf-summary__deduct{color:#DC2626!important}.payroll-form .pf-summary__net{color:#1F1B16;font-size:14px}.payroll-form .pf-actions{margin-top:12px;display:flex;gap:8px;justify-content:flex-end}@media (max-width:767px){.payroll-form .pf-grid{grid-template-columns:1fr}.payroll-form .pf-field--wide{grid-column:1 / -1}}.payslip-body{background:#F0EBE0;margin:0}.payslip-toolbar{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#FAF7F0;border-bottom:1px solid #DCD5C4}.payslip{max-width:760px;margin:20px auto;padding:40px 28px;background:#fff;border:1px solid #DCD5C4;border-radius:10px;color:#1F1B16}.payslip__head{display:flex;align-items:flex-start;justify-content:space-between;border-bottom:2px solid #1F1B16;padding-bottom:12px;margin-bottom:16px}.payslip__title{margin:0;font-size:26px;letter-spacing:4px}.payslip__period{margin:4px 0 0;color:#8A8170}.payslip__company{text-align:right;font-size:12px}.payslip__meta{width:100%;border-collapse:collapse;margin-bottom:16px}.payslip__meta th,.payslip__meta td{border:1px solid #DCD5C4;padding:8px 12px;font-size:12px;text-align:left}.payslip__meta th{background:#F5F1E6;width:14%;white-space:nowrap}.payslip__cols{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.payslip__tbl{width:100%;border-collapse:collapse}.payslip__tbl th,.payslip__tbl td{border:1px solid #DCD5C4;padding:8px 12px;font-size:12px}.payslip__tbl thead th{background:#F5F1E6;text-align:center}.payslip__tbl tfoot th{background:#E8E2D3;font-weight:700}.payslip__tbl .num{text-align:right;font-variant-numeric:tabular-nums}.payslip__net{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#1F1B16;color:#fff;border-radius:6px;font-size:16px}.payslip__net strong{font-size:20px}.payslip__note{margin:12px 0 28px}.payslip__sign{text-align:right;font-weight:600}.payslip__seal{height:56px;vertical-align:middle;margin-left:8px}@media print{.no-print{display:none!important}.payslip-body{background:#fff}.payslip{margin:0;border:none;border-radius:0;max-width:none}}.pay-report__head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:8px}.pay-report__toolbar{display:flex;align-items:center;gap:12px;margin:8px 0}.pay-report__sign{display:flex;gap:16px;margin-top:20px}.pay-report__sign-box{flex:1;text-align:center;font-size:12px;color:#8A8170}.pay-report__sign-box span{display:block;height:48px;margin-top:6px;border:1px solid #E5DFCF;border-radius:6px}@media print{.no-print{display:none!important}.sidebar,.topbar{display:none!important}}.journal-feed{display:flex;flex-direction:column;gap:12px}.journal-day__date{margin:0 0 8px;padding-bottom:6px;font-size:14px;font-variant-numeric:tabular-nums;color:#0F0C09;border-bottom:2px solid #DCD5C4}.journal-day+.journal-day{margin-top:12px}.journal-day .journal-entry--grouped{border:0;border-left:3px solid #DCD5C4;border-radius:0;background:transparent;padding:8px 0 8px 12px;margin-bottom:8px}.journal-day .journal-entry--grouped:last-child{margin-bottom:0}.journal-entry{border:1px solid #DCD5C4;border-radius:10px;background:#FAF7F0;padding:12px 16px}.journal-entry__head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.journal-entry__date{font-weight:700;font-variant-numeric:tabular-nums;color:#0F0C09}.journal-entry__author{font-size:12px;color:#8A8170}.journal-entry__actions{margin-left:auto;display:flex;gap:4px;align-items:center}.journal-items{list-style:none;margin:0;padding:0}.journal-items li{position:relative;padding-left:14px;line-height:1.6}.journal-items li::before{content:"•";position:absolute;left:2px;color:#8A8170}.journal-items strong{font-weight:600}.journal-items em{font-style:italic}.journal-items del{color:#8A8170}.journal-items code{background:#F5F1E6;padding:2px 5px;border-radius:3px;font-size:.9em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.journal-items a{color:#C2410C;text-decoration:underline}.journal-items a:hover{text-decoration:none}.journal-items .journal-md__h{padding-left:0;font-weight:700;color:#0F0C09;margin-top:8px}.journal-items .journal-md__h::before{content:none}.journal-items .journal-md__h:first-child{margin-top:0}.journal-items .journal-md__h--1{font-size:1.15em}.journal-items .journal-md__h--2{font-size:1.05em}.journal-items .journal-md__h--3{font-size:1em;color:#1F1B16}.journal-items .journal-md__task{padding-left:0}.journal-items .journal-md__task::before{content:none}.journal-items .journal-md__task.is-done .journal-md__txt{color:#8A8170;text-decoration:line-through}.journal-items .journal-md__check{margin-right:6px;color:#C2410C}.journal-items .journal-md__task.is-done .journal-md__check{color:#8A8170}.journal-md-hint{margin-top:6px;display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;line-height:1.9}.journal-md-hint__group{display:inline}.journal-md-hint__sep{color:#DCD5C4}.journal-md-hint code{background:#F5F1E6;padding:1px 4px;border-radius:3px;font-size:.92em;white-space:nowrap}.journal-aside__top{display:flex;align-items:center;gap:6px;padding:8px;border-bottom:1px solid #DCD5C4}.journal-aside__top .split-search{flex:1;margin-bottom:0px!important}.journal-add{flex:0 0 auto;width:34px;height:34px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:18px;line-height:1}.journal-panel{padding:12px 16px}.journal-panel__head{display:flex;align-items:center;gap:8px;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid #DCD5C4}.journal-panel__date{margin:0;font-size:16px;font-variant-numeric:tabular-nums}.journal-panel__author{margin-left:2px}.journal-panel__actions{margin-left:auto;display:flex;gap:4px;align-items:center}.journal-panel__items li{line-height:1.7}.journal-form__tools{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.journal-textarea{width:100%;line-height:1.6;resize:vertical}.journal-tpls{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px}.journal-tpl-chip{display:inline-flex;align-items:center;padding:3px 10px;border:1px solid #DCD5C4;border-radius:999px;background:#FAF7F0;font-size:11px;color:#1F1B16;cursor:pointer;text-decoration:none;transition:background-color .1s}.journal-tpl-chip:hover{background:color-mix(in srgb,#C2410C 12%,#FAF7F0)}.journal-tpl-chip--manage{border-style:dashed;color:#8A8170}