:root{--bg: #f6f7f9;--panel: #ffffff;--sidebar: #0f172a;--sidebar-fg: #cbd5e1;--sidebar-active: #1e293b;--border: #e5e7eb;--text: #0f172a;--muted: #64748b;--primary: #4f46e5;--primary-fg: #ffffff;--danger: #ef4444;--radius: 10px;--shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .1)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}button{font:inherit;cursor:pointer}.auth{min-height:100%;display:grid;place-items:center;padding:24px;background:radial-gradient(1200px 600px at 50% -10%,#eef2ff 0%,var(--bg) 55%)}.auth-card{width:100%;max-width:380px;background:var(--panel);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);padding:32px 28px}.auth-sub{color:var(--muted);font-size:14px;margin:8px 0 24px}.auth-note{color:var(--muted);font-size:12px;margin-top:16px;line-height:1.5}.auth-error{color:var(--danger);font-size:13px;margin:4px 0 12px}.role-tag{display:inline-block;margin-top:6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--primary);background:#4f46e51a;padding:2px 7px;border-radius:999px}.field{display:block;margin-bottom:14px}.field span{display:block;font-size:13px;font-weight:600;margin-bottom:6px}.field input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;font-size:14px;outline:none}.field input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #4f46e526}.btn{border:1px solid var(--border);background:var(--panel);padding:10px 14px;border-radius:8px;font-weight:600}.btn--primary{width:100%;background:var(--primary);color:var(--primary-fg);border-color:var(--primary);margin-top:6px}.btn--primary:hover{filter:brightness(1.05)}.brand{display:flex;align-items:center;gap:8px;font-weight:700;font-size:18px;letter-spacing:-.01em}.brand--lg{font-size:24px;justify-content:center}.brand-mark{color:var(--primary)}.app{display:grid;grid-template-columns:240px 1fr;height:100%}.sidebar{background:var(--sidebar);color:var(--sidebar-fg);display:flex;flex-direction:column;padding:18px 14px;gap:8px}.sidebar .brand{color:#fff;padding:6px 8px 14px}.sidebar nav{display:flex;flex-direction:column;gap:2px;flex:1}.nav-item{display:flex;align-items:center;gap:10px;background:transparent;border:0;color:var(--sidebar-fg);padding:9px 10px;border-radius:8px;text-align:left;font-size:14px}.nav-item:hover{background:#ffffff0f;color:#fff}.nav-item.is-active{background:var(--sidebar-active);color:#fff}.nav-icon{width:18px;display:inline-block;text-align:center;opacity:.9}.sidebar-foot{font-size:11px;color:#64748b;padding:8px}.main{display:flex;flex-direction:column;min-width:0}.topbar{height:60px;flex:none;display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:var(--panel);border-bottom:1px solid var(--border)}.crumb{font-weight:600}.topbar-right{display:flex;align-items:center;gap:14px}.icon-btn{position:relative;border:0;background:transparent;font-size:18px;padding:4px}.badge{position:absolute;top:-2px;right:-4px;background:var(--danger);color:#fff;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:grid;place-items:center;padding:0 4px}.profile{position:relative}.avatar{width:34px;height:34px;border-radius:50%;background:var(--primary);color:#fff;border:0;font-weight:700;font-size:13px}.menu{position:absolute;right:0;top:44px;width:220px;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);padding:6px;z-index:10}.menu-head{font-size:12px;color:var(--muted);padding:10px;line-height:1.5}.menu-head strong{color:var(--text)}.menu-item{display:block;width:100%;text-align:left;border:0;background:transparent;padding:9px 10px;border-radius:7px;font-size:14px}.menu-item:hover{background:var(--bg)}.content{padding:24px;overflow:auto}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow)}.panel h1{margin:0 0 4px;font-size:22px}.muted{color:var(--muted);margin:0}.empty{margin-top:28px;border:1px dashed var(--border);border-radius:var(--radius);padding:48px;text-align:center;color:var(--muted)}.empty-mark{font-size:28px;color:var(--primary);opacity:.4;display:block;margin-bottom:12px}.empty p{margin:0;line-height:1.6;font-size:14px}.btn--auto{width:auto}.form{margin:20px 0 8px}.form-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.form-row--sub{margin-top:10px}.inp{padding:9px 11px;border:1px solid var(--border);border-radius:8px;font-size:14px;background:var(--panel);color:var(--text);outline:none}.inp:focus{border-color:var(--primary);box-shadow:0 0 0 3px #4f46e526}.form-row .inp{flex:1;min-width:140px}.tbl{width:100%;border-collapse:collapse;margin-top:20px;font-size:14px}.tbl th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:8px 12px;border-bottom:1px solid var(--border)}.tbl td{padding:12px;border-bottom:1px solid var(--border);vertical-align:top}.tbl .sub{color:var(--muted);font-size:12px;margin-top:2px}.pill{display:inline-block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#16a34a;background:#16a34a1f;padding:2px 8px;border-radius:999px}.btn--sm{padding:6px 10px;font-size:13px}.pill--muted{color:var(--muted);background:#64748b24}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-top:20px}.card{border:1px solid var(--border);border-radius:var(--radius);padding:16px;background:var(--panel)}.card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.card-versions{margin:12px 0;display:flex;flex-direction:column;gap:6px}.ver{display:flex;align-items:center;justify-content:space-between;gap:8px}.card-actions{border-top:1px solid var(--border);padding-top:12px}.card-feedback{display:flex;gap:8px;margin-top:10px}.card-feedback .inp{flex:1;font-size:13px;padding:7px 10px}.section{font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:22px 0 10px}.inbox{border:1px solid var(--border);border-radius:var(--radius);padding:4px 14px 14px;background:var(--bg)}.fb{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.fb:last-child{border-bottom:0}.fb-body{font-size:14px}.fb-actions{display:flex;gap:8px;flex:none}.inp--xs{padding:5px 8px;font-size:12px}.link-btn{background:none;border:0;color:var(--primary);font-size:12px;font-weight:600;padding:2px 0;margin-top:6px}.board{display:flex;gap:12px;margin-top:20px;overflow-x:auto;padding-bottom:8px}.col{flex:0 0 200px;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:10px}.col-head{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);margin-bottom:10px;display:flex;justify-content:space-between}.col-count{background:var(--border);color:var(--text);border-radius:999px;padding:0 7px;font-size:11px}.ticket{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:10px;margin-bottom:8px;box-shadow:var(--shadow)}.ticket-top{display:flex;justify-content:space-between;align-items:center}.ticket-seq{font-size:11px;font-weight:700;color:var(--muted)}.ticket-title{font-size:13px;margin:6px 0 8px;line-height:1.4}.ticket-controls{display:flex;flex-direction:column;gap:6px}.ticket-controls .inp{width:100%}.pri{text-transform:uppercase}.pri--low{color:var(--muted);background:#64748b24}.pri--medium{color:#2563eb;background:#2563eb1f}.pri--high{color:#d97706;background:#d9770624}.pri--urgent{color:var(--danger);background:#ef444424}.comments{margin-top:8px;border-top:1px solid var(--border);padding-top:8px}.cmt{font-size:12px;line-height:1.5;margin-bottom:6px}.cmt-who{font-weight:600;color:var(--muted)}.menu--notif{width:300px;max-height:380px;overflow-y:auto}.notif-empty{padding:12px;color:var(--muted);font-size:13px}.notif{padding:10px;border-radius:7px}.notif--unread{background:#4f46e512}.notif-title{font-size:13px;font-weight:600}.notif-body{font-size:12px;color:var(--muted);margin-top:2px;line-height:1.4}.ticket-links{display:flex;gap:12px}.changes{display:flex;flex-direction:column;gap:10px}.change{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;border:1px solid var(--border);border-radius:var(--radius);padding:14px;background:var(--panel)}.change-title{font-size:14px;font-weight:600}.change-side{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex:none}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:20px 0}.tile{border:1px solid var(--border);border-radius:var(--radius);padding:16px;background:var(--panel)}.tile--accent{border-color:var(--primary);background:#4f46e50d}.tile-value{font-size:28px;font-weight:700;letter-spacing:-.02em}.tile-label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin-top:2px}.breakdown{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.timeline{margin-top:6px}.tl-item{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.tl-item:last-child{border-bottom:0}.tl-icon{flex:none;width:26px;height:26px;display:grid;place-items:center;background:var(--bg);border:1px solid var(--border);border-radius:50%;font-size:13px}.tl-text{font-size:14px;font-weight:500}.tl-detail{font-size:13px;color:var(--muted);margin-top:2px;line-height:1.4}.tl-meta{font-size:12px;color:var(--muted);margin-top:3px}.tl-proj{color:var(--primary);font-weight:600}.deliver-form{margin-top:8px;display:flex;flex-direction:column;gap:6px}.deliver-form textarea{width:100%;resize:vertical;font-family:inherit}@media (prefers-color-scheme: dark){:root{--bg: #0b1120;--panel: #111827;--border: #1f2937;--text: #e5e7eb;--muted: #94a3b8;--sidebar: #0a0f1c}.auth{background:radial-gradient(1200px 600px at 50% -10%,#1e1b4b 0%,var(--bg) 55%)}}@media (max-width: 720px){.app{grid-template-columns:64px 1fr}.sidebar .brand span:last-child,.nav-item span:last-child,.sidebar-foot{display:none}.nav-item{justify-content:center}}
