:root{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,Noto Sans KR,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body{height:100%;margin:0}body,#root{min-height:100%}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}:root{--bg: #f6f8fb;--card: #ffffff;--text: #0f172a;--muted: #64748b;--line: #e5e7eb;--primary: #2563eb;--primary-weak: rgba(37,99,235,.1);--shadow: 0 8px 24px rgba(15, 23, 42, .08);--danger: #ef4444}body{background:var(--bg);color:var(--text)}.page{min-height:calc(100vh - 64px)}.pageShell{max-width:1100px;margin:0 auto;padding:18px}.pageHeader{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0 12px}.pageTitle{font-size:20px;font-weight:900;letter-spacing:-.2px}.centerBox{display:flex;flex-direction:column;gap:12px;align-items:center}.muted{color:var(--muted)}.small{font-size:12px}.panel{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:16px}.panelTitle{font-size:14px;font-weight:900;margin-bottom:12px}.panelTopRow{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.btn{background:#fff;border:1px solid var(--line);color:var(--text);border-radius:12px;padding:10px 12px;cursor:pointer;font-weight:800;transition:transform .12s ease,box-shadow .12s ease,background .12s ease,border-color .12s ease}.btn:hover{transform:translateY(-1px);box-shadow:0 10px 20px #0f172a14}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.btnSmall{padding:8px 10px;font-size:13px}.btnWide{min-width:140px;padding:12px 18px;border-radius:12px;font-weight:900}.btnPrimary{background:var(--primary);border-color:var(--primary);color:#fff}.btnPrimary:hover{filter:brightness(.97)}.btnOutline{background:#fff;border-color:#0f172a29}.btnOutline:hover{background:#0f172a08}.btnDanger{background:#ef44441a;border-color:#ef444459;color:#b91c1c}.btnDanger:hover{background:#ef444424}.btnGhost{background:#0f172a08;border-color:#0f172a14}.btnGhost:hover{background:#0f172a0f}.formActions{display:flex;gap:18px;margin-top:18px;align-items:center}@media (max-width: 520px){.formActions{flex-direction:column;align-items:stretch}.btnWide{width:100%}}.input,.textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px 12px;outline:none}.textarea{min-height:96px;resize:vertical}.input:focus,.textarea:focus{border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-weak)}.topNav{height:64px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}.topNavInner{max-width:1100px;height:64px;margin:0 auto;padding:0 18px;display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{font-weight:950;letter-spacing:-.4px;display:flex;align-items:center;gap:8px;cursor:pointer}.brandDot{width:8px;height:8px;border-radius:999px;background:var(--primary);display:inline-block}.navRight{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.navLink{color:var(--text);text-decoration:none;font-weight:800;padding:8px 10px;border-radius:10px}.navLink:hover{background:#0f172a0a}.navHello{display:flex;align-items:center;gap:8px;color:var(--muted);font-weight:800;padding:6px 10px;border:1px solid var(--line);border-radius:999px;background:#fff}.statusDot{width:8px;height:8px;border-radius:999px;background:#22c55e}.projList{display:flex;flex-direction:column;gap:14px;margin-top:12px}.projItem{display:grid;grid-template-columns:1fr 140px;gap:16px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff}.projInfo{min-width:0}.projName{font-size:16px;font-weight:900;letter-spacing:-.2px}.projActions{display:flex;flex-direction:column;gap:10px;align-items:stretch;justify-content:center}@media (max-width: 640px){.projItem{grid-template-columns:1fr}.projActions{flex-direction:row;justify-content:flex-end}}.tableWrap{overflow:auto}.dataTable{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}.dataTable thead th{text-align:left;font-size:12px;letter-spacing:.2px;color:var(--muted);font-weight:900;padding:12px 14px;background:#0f172a05;border-bottom:1px solid var(--line)}.dataTable tbody td{padding:12px 14px;border-bottom:1px solid rgba(229,231,235,.8);vertical-align:middle}.dataTable tbody tr:hover{background:#2563eb0a}.cellTitle{font-weight:950;letter-spacing:-.2px}.lineClamp1{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.badge{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;border:1px solid var(--line);background:#fff;font-weight:850;color:var(--text);max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dateRange{display:flex;align-items:center;gap:10px;font-weight:850}.dateRange .arrow{color:var(--muted)}.crumbs{display:flex;align-items:center;gap:10px;margin-bottom:6px}.linkLike{background:transparent;border:0;padding:0;cursor:pointer;color:var(--muted);font-weight:900}.linkLike:hover{text-decoration:underline}.crumbSep{color:var(--muted)}.crumbNow{font-weight:950;color:var(--text)}.headerActions{display:flex;align-items:center;gap:10px}.emptyBox{padding:26px 12px;text-align:center;border:1px dashed rgba(100,116,139,.35);border-radius:14px;background:#ffffffb3}.emptyTitle{font-weight:950;font-size:16px;margin-bottom:6px}.modalOverlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;padding:18px;z-index:999}.modalCard{width:100%;max-width:720px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 30px 80px #0f172a40;padding:16px}.modalWide{max-width:820px}.modalHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.modalTitle{font-weight:950;letter-spacing:-.3px;font-size:16px}.iconBtn{width:36px;height:36px;border-radius:12px;border:1px solid var(--line);background:#fff;cursor:pointer;font-weight:900}.iconBtn:hover{background:#0f172a08}.form{display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:8px}.label2{font-weight:900;font-size:12px;color:var(--muted)}.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (max-width: 640px){.row2{grid-template-columns:1fr}}.btnRow{display:flex;justify-content:flex-end;gap:12px;margin-top:4px}.fileItem{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px dashed var(--line)}.fileItem:last-child{border-bottom:none}.fileName{flex:1;font-size:14px;color:var(--text);line-height:1.4;word-break:break-all}.fileActions{flex-shrink:0;margin-left:16px}.tableBox{width:100%}.tableHead{display:grid;grid-template-columns:2.2fr .9fr 1.2fr auto;gap:16px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line);color:var(--muted);font-size:13px;font-weight:700}.tableHead .th{white-space:nowrap}.tableHead .thRight{text-align:right}.tableBody .tr{display:grid;grid-template-columns:2.2fr .9fr 1.2fr auto;gap:16px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line)}.tableBody .tr:last-child{border-bottom:none}.tableBody .td{min-width:0}.tdRight{display:flex;justify-content:flex-end}.rowActions{display:flex;gap:10px;align-items:center}.cellTitle{font-weight:800;letter-spacing:-.2px}.cellSub{margin-top:4px}.pill{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border:1px solid var(--line);border-radius:999px;background:#fff;font-weight:800;width:fit-content}.dateRange{font-weight:800}.tableFooter{padding:14px 16px;display:flex;justify-content:flex-end;border-top:1px solid var(--line)}.footerRight{display:flex;gap:10px;align-items:center}.emptyBox{padding:28px 16px;text-align:center}.emptyTitle{font-weight:900;margin-bottom:6px}@media (max-width: 860px){.tableHead{display:none}.tableBody .tr{grid-template-columns:1fr;gap:10px}.tdRight,.rowActions{justify-content:flex-start}}.btn,.btnSmall{display:inline-flex;align-items:center;justify-content:center;line-height:1}.doneCircle{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;padding:0!important;border-radius:999px;line-height:1;white-space:nowrap}.doneBadge{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:28px;padding:0 12px;border-radius:999px;background:#22c55e1f;border:1px solid rgba(34,197,94,.35);color:#15803d;font-size:13px;font-weight:900;line-height:1;white-space:nowrap}
