:root{--font: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, "Segoe UI", Arial, sans-serif;--bg: #f5f5f7;--bg-elevated: rgba(255, 255, 255, .72);--card: #ffffff;--text: #1d1d1f;--text-soft: #6e6e73;--text-muted: #86868b;--line: rgba(0, 0, 0, .08);--accent: #0071e3;--accent-soft: rgba(0, 113, 227, .1);--success: #1a9c4b;--warning: #c77700;--danger: #d92d20;--radius-lg: 22px;--radius: 16px;--radius-sm: 11px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04), 0 6px 18px rgba(0, 0, 0, .04);--shadow: 0 2px 6px rgba(0, 0, 0, .05), 0 18px 48px rgba(0, 0, 0, .08)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.45}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.02em}h1{font-size:34px}h2{font-size:24px}h3{font-size:18px}p{margin:0}small{color:var(--text-muted)}.shell{display:flex;min-height:100vh}.sidebar{width:248px;flex-shrink:0;padding:26px 18px;background:var(--bg-elevated);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border-right:1px solid var(--line);position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:22px}.brand{display:flex;flex-direction:column;gap:2px}.brand strong{font-size:19px;letter-spacing:-.03em}.brand span{font-size:12px;color:var(--text-muted)}.nav{display:flex;flex-direction:column;gap:2px}.nav a{padding:9px 12px;border-radius:var(--radius-sm);color:var(--text);font-size:14.5px;font-weight:500;text-decoration:none;transition:background .16s ease}.nav a:hover{background:#0000000d;text-decoration:none}.nav a.active{background:var(--accent-soft);color:var(--accent)}.main{flex:1;min-width:0;padding:30px 34px 60px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px;flex-wrap:wrap}.page-head .sub{color:var(--text-soft);font-size:14px;margin-top:4px}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:20px}.card+.card{margin-top:16px}.card-title{font-size:15px;font-weight:600;margin-bottom:12px}.grid{display:grid;gap:16px}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.spacer{flex:1}.metric{display:flex;flex-direction:column;gap:2px}.metric .value{font-size:32px;font-weight:600;letter-spacing:-.03em}.metric .label{font-size:12.5px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}input,select,textarea,button{font-family:var(--font);font-size:14.5px}input[type=text],input[type=email],input[type=password],input[type=number],input[type=datetime-local],input[type=search],input[type=file],select,textarea{width:100%;padding:10px 13px;border:1px solid rgba(0,0,0,.12);border-radius:var(--radius-sm);background:#fff;color:var(--text);outline:none;transition:border-color .15s ease,box-shadow .15s ease}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}label{display:block;font-size:12.5px;color:var(--text-soft);margin-bottom:5px;font-weight:500}.btn{border:none;border-radius:999px;padding:9px 18px;background:var(--accent);color:#fff;font-weight:500;cursor:pointer;transition:transform .12s ease,opacity .12s ease}.btn:hover{opacity:.9}.btn:active{transform:scale(.98)}.btn[disabled]{opacity:.5;cursor:not-allowed}.btn.secondary{background:#0000000f;color:var(--text)}.btn.ghost{background:transparent;color:var(--accent)}.btn.danger{background:var(--danger)}.btn.small{padding:6px 12px;font-size:13px}.table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);padding:8px 10px;border-bottom:1px solid var(--line);font-weight:600;white-space:nowrap}.table td{padding:11px 10px;border-bottom:1px solid var(--line);vertical-align:middle}.table tbody tr{cursor:pointer;transition:background .14s ease}.table tbody tr:hover{background:#00000006}.table td.mono{font-variant-numeric:tabular-nums;color:var(--text-soft)}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:500;background:#0000000f;color:var(--text-soft);white-space:nowrap}.badge.blue{background:#0071e31f;color:#0a5bbd}.badge.green{background:#1a9c4b1f;color:#12703a}.badge.orange{background:#c7770024;color:#95590a}.badge.red{background:#d92d201f;color:#a32016}.badge.purple{background:#783cc81f;color:#5c2ba6}.kanban{display:flex;gap:14px;overflow-x:auto;padding-bottom:12px}.kanban-col{min-width:248px;width:248px;background:#00000008;border-radius:var(--radius);padding:12px;display:flex;flex-direction:column;gap:8px}.kanban-col h4{font-size:13px;display:flex;justify-content:space-between;color:var(--text-soft)}.kanban-card{background:#fff;border-radius:var(--radius-sm);padding:11px 12px;box-shadow:var(--shadow-sm);cursor:grab;font-size:13.5px}.kanban-card .code{font-size:11.5px;color:var(--text-muted)}.kanban-col.dragover{background:var(--accent-soft)}.timeline{display:flex;flex-direction:column;gap:12px}.timeline-item{display:flex;gap:12px}.timeline-dot{width:9px;height:9px;border-radius:50%;background:var(--accent);margin-top:7px;flex-shrink:0}.timeline-dot.note{background:var(--warning)}.timeline-dot.stage{background:#783cc8}.timeline-dot.task{background:var(--success)}.timeline-body{font-size:14px}.timeline-meta{font-size:12px;color:var(--text-muted)}.toast{position:fixed;bottom:26px;left:50%;transform:translate(-50%);background:#1d1d1ff0;color:#fff;padding:11px 20px;border-radius:999px;font-size:14px;z-index:60;box-shadow:var(--shadow)}.toast.error{background:#b41e14f2}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(1200px 600px at 50% -10%,#fff,#f5f5f7 55%,#ececf0)}.login-card{width:100%;max-width:380px}.dropzone{border:1.5px dashed rgba(0,0,0,.18);border-radius:var(--radius);padding:26px;text-align:center;color:var(--text-soft);background:#fbfbfd;cursor:pointer;transition:border-color .15s ease,background .15s ease}.dropzone.active{border-color:var(--accent);background:var(--accent-soft)}.muted{color:var(--text-muted);font-size:13px}.empty{text-align:center;padding:40px 20px;color:var(--text-muted)}.pre{white-space:pre-wrap;word-break:break-word;font-size:13.5px}@media (max-width: 900px){.shell{flex-direction:column}.sidebar{width:100%;height:auto;position:static;flex-direction:row;align-items:center;gap:14px;overflow-x:auto}.nav{flex-direction:row}.main{padding:20px 16px 50px}.grid.cols-2,.grid.cols-3,.grid.cols-4{grid-template-columns:1fr}h1{font-size:26px}}
