.gs-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:2000;display:flex;align-items:flex-start;justify-content:center;padding-top:min(20vh,160px);animation:gsOverlayIn .2s ease both}@keyframes gsOverlayIn{0%{opacity:0;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}to{opacity:1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}}.gs-modal{width:100%;max-width:560px;background:var(--glass);backdrop-filter:blur(24px) saturate(1.5);-webkit-backdrop-filter:blur(24px) saturate(1.5);border:1px solid var(--glass-border);border-radius:16px;overflow:hidden;box-shadow:0 24px 80px #0009,0 0 0 1px #ffffff0d,0 0 60px #4f8ef714;animation:gsModalIn .25s var(--transition-smooth) both}@keyframes gsModalIn{0%{opacity:0;transform:scale(.94) translateY(-8px)}to{opacity:1;transform:scale(1) translateY(0)}}.gs-input-wrap{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border)}.gs-search-icon{color:var(--muted);flex-shrink:0}.gs-input{flex:1;background:none;border:none;outline:none;color:var(--text);font-size:15px;font-family:var(--font);caret-color:var(--accent)}.gs-input::placeholder{color:var(--muted)}.gs-kbd-hint{display:flex;gap:4px;flex-shrink:0}.gs-kbd{font-size:11px;font-family:var(--mono);color:var(--muted);background:#ffffff0f;border:1px solid var(--border2);border-radius:4px;padding:2px 6px;line-height:1.3}.gs-results{max-height:360px;overflow-y:auto;padding:8px}.gs-results::-webkit-scrollbar{width:4px}.gs-results::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:2px}.gs-group-label{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.8px;padding:8px 8px 4px}.gs-item{display:flex;align-items:center;gap:10px;padding:10px;border-radius:var(--r);cursor:pointer;transition:background .15s,color .15s;color:var(--muted2)}.gs-item:hover,.gs-item.gs-active{background:#4f8ef71a;color:var(--text)}.gs-item.gs-active{box-shadow:inset 0 0 0 1px #4f8ef733}.gs-item-icon{width:32px;height:32px;border-radius:var(--r);display:flex;align-items:center;justify-content:center;background:#ffffff0a;border:1px solid var(--border);flex-shrink:0;transition:background .15s,border-color .15s}.gs-item.gs-active .gs-item-icon,.gs-item:hover .gs-item-icon{background:#4f8ef71f;border-color:#4f8ef740}.gs-item-text{flex:1;min-width:0}.gs-item-title{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gs-item-sub{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gs-item-enter{font-size:11px;color:var(--muted);opacity:0;transition:opacity .15s}.gs-item.gs-active .gs-item-enter{opacity:1}.gs-empty{text-align:center;padding:32px 16px;color:var(--muted);font-size:13px}.gs-empty-icon{font-size:28px;margin-bottom:8px;opacity:.5}.gs-footer{display:flex;align-items:center;gap:16px;padding:10px 16px;border-top:1px solid var(--border);font-size:11px;color:var(--muted)}.gs-footer-hint{display:flex;align-items:center;gap:4px}.gs-loading{display:flex;align-items:center;justify-content:center;padding:20px}.sb-search-btn{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border-radius:var(--r);border:1px solid var(--border);background:#ffffff05;color:var(--muted);font-size:12px;font-family:var(--font);cursor:pointer;transition:background .2s,border-color .2s,color .2s;margin-bottom:4px}.sb-search-btn:hover{background:#ffffff0d;border-color:var(--border2);color:var(--muted2)}.sb-search-btn .gs-kbd{margin-left:auto}@media (max-width: 768px){.gs-overlay{padding-top:16px;padding-left:12px;padding-right:12px}.gs-modal{max-width:100%}}@media (prefers-reduced-motion: reduce){.gs-overlay,.gs-modal{animation:none}}:root{--bg: #03050e;--bg2: #070b18;--bg3: #0c1220;--bg4: #111826;--border: rgba(255,255,255,.07);--border2: rgba(255,255,255,.13);--text: #e8eaf0;--muted: #6a748e;--muted2: #9aa0b8;--accent: #4f8ef7;--accent2: #7c5af7;--accent3: #22d3c8;--green: #22c98a;--red: #f75a5a;--yellow: #f7c94f;--orange: #f7975a;--sidebar: 220px;--sidebar-closed: 56px;--header: 56px;--font: "Inter", sans-serif;--mono: "JetBrains Mono", monospace;--r: 8px;--r2: 12px;--r3: 16px;--glass: rgba(7,11,24,.65);--glass-border: rgba(255,255,255,.08);--glass-blur: 16px;--glow: 0 0 40px rgba(79,142,247,.15);--transition-smooth: cubic-bezier(.4,0,.2,1)}[data-theme=light]{--bg: #f5f7fa;--bg2: #edf0f5;--bg3: #e2e6ed;--bg4: #d8dce5;--border: rgba(0,0,0,.08);--border2: rgba(0,0,0,.15);--text: #1a1f2e;--muted: #6b7280;--muted2: #4b5563;--accent: #4f8ef7;--accent2: #7c5af7;--accent3: #0ea5a5;--green: #16a34a;--red: #dc2626;--yellow: #d97706;--orange: #ea580c;--glass: rgba(255,255,255,.7);--glass-border: rgba(0,0,0,.08);--glass-blur: 16px;--glow: 0 0 40px rgba(79,142,247,.1)}[data-theme=light] ::-webkit-scrollbar-thumb{background:#0000}[data-theme=light] *:hover::-webkit-scrollbar-thumb{background:#0000001f}[data-theme=light] *:active::-webkit-scrollbar-thumb{background:#0003}[data-theme=light] ::selection{background:#4f8ef740;color:#1a1f2e}[data-theme=light] select option{background-color:#f5f7fa;color:#1a1f2e}.skip-to-content{position:absolute;top:-100%;left:16px;z-index:10000;padding:12px 24px;background:var(--accent);color:#fff;border-radius:var(--r);font-weight:700;font-size:14px;transition:top .2s;text-decoration:none}.skip-to-content:focus{top:16px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}html,body,#root{height:100%;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (max-width: 768px){input,select,textarea{font-size:16px!important}}.main-area,.sb-nav{-webkit-overflow-scrolling:touch}a{color:inherit;text-decoration:none}button{font-family:var(--font);cursor:pointer}::selection{background:#4f8ef759;color:#fff}::-moz-selection{background:#4f8ef759;color:#fff}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}select{font-family:var(--font);background-color:var(--bg3);color:#f1f5f9;border:1px solid var(--border2);border-radius:var(--r);padding:8px 10px;transition:border-color .2s var(--transition-smooth),box-shadow .2s var(--transition-smooth)}select option{background-color:#1e293b;color:#f1f5f9;padding:8px}select optgroup{background-color:#0f172a;color:#94a3b8;font-weight:700}select:focus{outline:1px solid var(--accent);border-color:var(--accent);box-shadow:0 0 0 3px #4f8ef71f}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-thumb{background:#1a223600;border-radius:3px;transition:background .3s}::-webkit-scrollbar-track{background:transparent}*:hover::-webkit-scrollbar-thumb{background:#1a2236}*:active::-webkit-scrollbar-thumb{background:#263050}@keyframes spin{to{transform:rotate(360deg)}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes shimmerSweep{0%{transform:translate(-100%) skew(-15deg)}to{transform:translate(200%) skew(-15deg)}}@keyframes borderRotate{0%{--border-angle: 0deg}to{--border-angle: 360deg}}@keyframes pulseGlow{0%,to{filter:drop-shadow(0 0 6px rgba(79,142,247,.3))}50%{filter:drop-shadow(0 0 14px rgba(79,142,247,.55))}}@keyframes dashPulse{0%,to{border-color:var(--border2)}50%{border-color:var(--accent)}}@keyframes progressStripe{0%{background-position:0 0}to{background-position:40px 0}}@keyframes shimmerLoading{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes navIndicatorSlide{0%{transform:scaleY(0);opacity:0}to{transform:scaleY(1);opacity:1}}@keyframes modalEntrance{0%{opacity:0;transform:scale(.92) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes modalOverlayIn{0%{opacity:0;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}to{opacity:1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}}.app-layout{display:flex;height:100vh;overflow:hidden}.sidebar{width:var(--sidebar);background:var(--glass);backdrop-filter:blur(var(--glass-blur)) saturate(1.4);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.4);border-right:1px solid var(--glass-border);display:flex;flex-direction:column;flex-shrink:0;transition:width .3s var(--transition-smooth);overflow:hidden;position:relative;z-index:10}.sidebar:after{content:"";position:absolute;top:0;right:0;bottom:0;width:1px;background:linear-gradient(180deg,rgba(79,142,247,.2),transparent 40%,transparent 60%,rgba(124,90,247,.2));pointer-events:none}.app-layout.sidebar-closed .sidebar{width:var(--sidebar-closed)}.main-area{flex:1;overflow-y:auto;display:flex;flex-direction:column}.sb-header{display:flex;align-items:center;justify-content:space-between;padding:16px 14px;border-bottom:1px solid var(--border)}.sb-logo{font-size:20px;font-weight:900;letter-spacing:-1px;background:linear-gradient(135deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:pulseGlow 3s ease-in-out infinite}.sb-toggle{background:none;border:none;color:var(--muted);display:flex;transition:color .2s,transform .2s}.sb-toggle:hover{color:var(--text);transform:scale(1.1)}.sb-company{padding:12px 14px;border-bottom:1px solid var(--border)}.sb-company-name{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px}.plan-pill{font-size:10px;font-weight:700;padding:2px 8px;border-radius:100px;font-family:var(--mono)}.sb-nav{flex:1;padding:8px;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:10px;padding:10px;border-radius:var(--r);color:var(--muted2);font-size:13px;font-weight:500;transition:all .25s var(--transition-smooth);margin-bottom:2px;white-space:nowrap;position:relative;overflow:hidden}.nav-item:hover{background:#ffffff0d;color:var(--text)}.nav-item.active{background:#4f8ef71a;color:var(--accent)}.nav-item.active:before{content:"";position:absolute;left:0;top:15%;bottom:15%;width:3px;border-radius:0 3px 3px 0;background:linear-gradient(180deg,var(--accent),var(--accent2));animation:navIndicatorSlide .3s var(--transition-smooth) forwards}.nav-icon{flex-shrink:0}.sb-footer{padding:8px;border-top:1px solid var(--border)}.lang-selector{position:relative;margin-bottom:4px}.lang-btn{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border-radius:var(--r);border:none;background:none;color:var(--muted2);font-size:13px;transition:background .2s,color .2s}.lang-btn:hover{background:#ffffff0d;color:var(--text)}.lang-dropdown{position:absolute;bottom:100%;left:0;right:0;background:var(--glass);backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);border:1px solid var(--glass-border);border-radius:var(--r2);overflow:hidden;z-index:100;margin-bottom:4px;box-shadow:0 8px 32px #00000080,0 0 0 1px #ffffff0d}.lang-option{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;border:none;background:none;color:var(--muted2);font-size:13px;font-family:var(--font);text-align:left;transition:background .15s,color .15s}.lang-option:hover{background:#ffffff0d;color:var(--text)}.lang-option.active{color:var(--accent)}.user-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border-radius:var(--r);border:none;background:none;color:var(--text);transition:background .2s}.user-item:hover{background:#ffffff0d}.user-avatar{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent2));display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0;box-shadow:0 0 12px #4f8ef740}.user-info{flex:1;text-align:left;overflow:hidden}.user-name{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:11px;color:var(--muted)}.logout-icon{color:var(--muted);flex-shrink:0;transition:color .2s}.logout-icon:hover{color:var(--red)}.page-wrap{padding:28px;flex:1;animation:fadeSlideUp .5s var(--transition-smooth) both}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.page-title{font-size:26px;font-weight:800;letter-spacing:-.6px;text-shadow:0 1px 2px rgba(0,0,0,.3)}.page-subtitle{font-size:13px;color:var(--muted);margin-top:2px;letter-spacing:.1px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:24px}.stat-card{background:var(--glass);backdrop-filter:blur(var(--glass-blur)) saturate(1.3);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.3);border:1px solid var(--glass-border);border-radius:var(--r2);padding:20px;position:relative;overflow:hidden;transition:transform .3s var(--transition-smooth),box-shadow .3s var(--transition-smooth),border-color .3s}.stat-card:before{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border-radius:var(--r2);padding:1px;background:conic-gradient(from var(--border-angle, 0deg),transparent 30%,var(--accent) 50%,var(--accent2) 60%,var(--accent3) 70%,transparent 80%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .4s var(--transition-smooth);animation:borderRotate 4s linear infinite;pointer-events:none}.stat-card:hover{transform:translateY(-3px);box-shadow:var(--glow)}.stat-card:hover:before{opacity:1}.stat-label{font-size:11px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.8px;margin-bottom:8px}.stat-value{font-size:28px;font-weight:800;letter-spacing:-1px;line-height:1;font-variant-numeric:tabular-nums}.stat-sub{font-size:12px;color:var(--muted);margin-top:4px}.stat-up{color:var(--green)}.stat-down{color:var(--red)}.card{background:var(--glass);backdrop-filter:blur(var(--glass-blur)) saturate(1.3);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.3);border:1px solid var(--glass-border);border-radius:var(--r2);padding:20px;margin-bottom:16px;position:relative;overflow:hidden;transition:transform .3s var(--transition-smooth),box-shadow .3s var(--transition-smooth),border-color .3s}.card:before{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border-radius:var(--r2);padding:1px;background:conic-gradient(from var(--border-angle, 0deg),transparent 30%,var(--accent) 50%,var(--accent2) 60%,var(--accent3) 70%,transparent 80%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .4s var(--transition-smooth);animation:borderRotate 4s linear infinite;pointer-events:none}.card:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000040,0 0 30px #4f8ef714}.card:hover:before{opacity:1}.card-title{font-size:15px;font-weight:700;margin-bottom:16px;display:flex;align-items:center;justify-content:space-between;letter-spacing:-.2px}.btn{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:var(--r);border:none;font-size:13px;font-weight:600;font-family:var(--font);cursor:pointer;transition:all .25s var(--transition-smooth);white-space:nowrap;position:relative;overflow:hidden}.btn-primary{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;box-shadow:0 4px 16px #4f8ef740}.btn-primary:after{content:"";position:absolute;top:0;left:0;width:60%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transform:translate(-100%) skew(-15deg);transition:none;pointer-events:none}.btn-primary:hover{box-shadow:0 6px 24px #4f8ef759;transform:translateY(-1px)}.btn-primary:hover:after{animation:shimmerSweep .7s ease forwards}.btn-primary:disabled{opacity:.5;transform:none;cursor:not-allowed;box-shadow:none}.btn-primary:disabled:after{display:none}.btn-secondary{background:var(--glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border2);color:var(--text)}.btn-secondary:hover{background:#ffffff14;border-color:#ffffff2e}.btn-danger{background:#f75a5a1f;border:1px solid rgba(247,90,90,.25);color:var(--red)}.btn-danger:hover{background:#f75a5a33;box-shadow:0 0 20px #f75a5a26;border-color:#f75a5a66}.btn-sm{padding:6px 12px;font-size:12px}.btn-ghost{background:none;border:none;color:var(--muted2);padding:6px 8px}.btn-ghost:hover{color:var(--text)}.badge{display:inline-block;font-size:11px;font-weight:600;padding:3px 9px;border-radius:100px;letter-spacing:.2px}.badge-active{background:#22c98a1f;color:var(--green)}.badge-paused{background:#f7c94f1f;color:var(--yellow)}.badge-finished{background:#6a748e1f;color:var(--muted2)}.badge-owner{background:#4f8ef71f;color:var(--accent)}.badge-jefe{background:#7c5af71f;color:var(--accent2)}.badge-tecnico{background:#22c98a1a;color:var(--green)}.badge-cliente{background:#f7c94f1a;color:var(--yellow)}.badge-auditor{background:#6a748e1f;color:var(--muted2)}.table-wrap{overflow-x:auto;border-radius:var(--r2);border:1px solid var(--border);background:var(--glass);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}table.tbl{width:100%;border-collapse:collapse}.tbl th{padding:12px 16px;text-align:left;font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:1px;background:#ffffff05;border-bottom:1px solid var(--border2)}.tbl td{padding:13px 16px;border-bottom:1px solid var(--border);font-size:13px;vertical-align:middle;transition:background .15s}.tbl tr:last-child td{border-bottom:none}.tbl tr:hover td{background:#ffffff06}.tbl-mono{font-family:var(--mono);font-size:12px}.form-group{margin-bottom:16px}.form-label{display:block;font-size:11px;font-weight:700;color:var(--muted2);text-transform:uppercase;letter-spacing:.8px;margin-bottom:6px}.form-input,.form-select{width:100%;background:var(--bg3);border:1px solid var(--border2);color:var(--text);padding:10px 12px;border-radius:var(--r);font-size:14px;font-family:var(--font);outline:none;transition:border-color .2s var(--transition-smooth),box-shadow .2s var(--transition-smooth)}.form-input:focus,.form-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #4f8ef71a}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-error{font-size:12px;color:var(--red);margin-top:4px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;animation:modalOverlayIn .3s ease both}.modal{background:var(--glass);backdrop-filter:blur(24px) saturate(1.5);-webkit-backdrop-filter:blur(24px) saturate(1.5);border:1px solid var(--glass-border);border-radius:20px;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;padding:28px;box-shadow:0 24px 80px #0009,0 0 0 1px #ffffff0d,0 0 60px #4f8ef70f;animation:modalEntrance .35s var(--transition-smooth) both}.modal-title{font-size:18px;font-weight:700;margin-bottom:4px;letter-spacing:-.3px;text-shadow:0 1px 2px rgba(0,0,0,.2)}.modal-sub{font-size:13px;color:var(--muted);margin-bottom:24px}.modal-footer{display:flex;gap:10px;justify-content:flex-end;margin-top:24px;padding-top:20px;border-top:1px solid var(--border)}.modal-close{float:right;background:none;border:none;color:var(--muted);font-size:20px;cursor:pointer;transition:color .2s,transform .2s}.modal-close:hover{color:var(--text);transform:rotate(90deg)}.upload-area{border:2px dashed var(--border2);border-radius:var(--r2);padding:32px;text-align:center;cursor:pointer;transition:all .3s var(--transition-smooth);position:relative}.upload-area:hover{border-color:var(--accent);background:#4f8ef70d;animation:dashPulse 1.5s ease-in-out infinite;box-shadow:0 0 30px #4f8ef714}.upload-area.drag{border-color:var(--accent);background:#4f8ef714;transform:scale(1.01);box-shadow:0 0 40px #4f8ef71f}.upload-icon{font-size:36px;margin-bottom:10px}.upload-hint{font-size:12px;color:var(--muted);margin-top:6px}.bc3-chapter{border:1px solid var(--border);border-radius:var(--r2);margin-bottom:8px;overflow:hidden;border-left:3px solid transparent;transition:border-color .25s var(--transition-smooth),box-shadow .25s var(--transition-smooth)}.bc3-chapter:hover{border-left-color:var(--accent);box-shadow:0 2px 12px #00000026}.ch-head{display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:pointer;background:#ffffff05;transition:background .2s var(--transition-smooth);-webkit-user-select:none;user-select:none}.ch-head:hover{background:#ffffff0a}.ch-arrow{font-size:10px;color:var(--muted);transition:transform .3s var(--transition-smooth);width:12px}.ch-arrow.open{transform:rotate(90deg)}.ch-code{font-family:var(--mono);font-size:11px;color:var(--accent);background:#4f8ef71a;padding:2px 7px;border-radius:4px}.ch-name{flex:1;font-weight:600;font-size:13px}.ch-total{font-family:var(--mono);font-size:12px;color:var(--green)}.ch-body{display:none;border-top:1px solid var(--border)}.ch-body.open{display:block;animation:slideUp .25s var(--transition-smooth)}.pt-row{display:flex;align-items:center;gap:8px;padding:9px 14px 9px 28px;font-size:12px;border-bottom:1px solid rgba(255,255,255,.03);cursor:pointer;transition:background .2s var(--transition-smooth),padding-left .2s}.pt-row:hover{background:#ffffff06;padding-left:32px}.pt-row:last-child{border-bottom:none}.pt-code{font-family:var(--mono);color:var(--muted);min-width:44px;font-size:11px}.pt-name{flex:1}.pt-meta{font-family:var(--mono);font-size:11px;color:var(--muted)}.pt-total{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--green);min-width:80px;text-align:right}.pt-detail{display:none;background:#0003;border-top:1px solid var(--border);padding:8px 14px 8px 28px}.pt-detail.open{display:block;animation:slideUp .2s var(--transition-smooth)}.decomp-row{display:flex;gap:8px;padding:4px 0;font-size:11px;font-family:var(--mono);border-bottom:1px solid rgba(255,255,255,.03)}.decomp-row:last-child{border-bottom:none}.d-code{min-width:60px}.d-mo{color:#ff9e64}.d-mq{color:#7dcfff}.d-mt{color:#9ece6a}.d-desc{flex:1;color:var(--muted2);font-size:11px}.d-rend{min-width:40px;color:var(--muted)}.d-price{min-width:60px;color:var(--yellow)}.d-total{min-width:60px;color:var(--green);text-align:right}.spinner{display:inline-block;width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}.loading-screen{display:flex;align-items:center;justify-content:center;height:100vh}.empty-state{text-align:center;padding:60px 20px}.empty-icon{font-size:48px;margin-bottom:12px}.empty-title{font-size:16px;font-weight:600;margin-bottom:6px;letter-spacing:-.2px}.empty-desc{font-size:13px;color:var(--muted)}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:20px}.tab{padding:10px 16px;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;transition:all .25s var(--transition-smooth);background:none;border-left:none;border-right:none;border-top:none;font-family:var(--font);position:relative}.tab:hover{color:var(--text)}.tab.active{color:var(--accent);border-bottom-color:transparent}.tab.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--accent),var(--accent2));border-radius:2px 2px 0 0}.tab.locked{opacity:.35;cursor:not-allowed}.progress-bar{height:4px;background:#ffffff12;border-radius:2px;overflow:hidden}.progress-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,var(--accent),var(--accent2));background-size:40px 100%;transition:width .4s var(--transition-smooth);position:relative;box-shadow:0 0 8px #4f8ef74d;background-image:linear-gradient(90deg,var(--accent),var(--accent2),var(--accent)),repeating-linear-gradient(45deg,transparent,transparent 8px,rgba(255,255,255,.08) 8px,rgba(255,255,255,.08) 16px);background-size:100% 100%,40px 100%;animation:progressStripe 1s linear infinite}.glass{background:var(--glass);backdrop-filter:blur(var(--glass-blur)) saturate(1.3);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.3);border:1px solid var(--glass-border)}.glow-accent{box-shadow:0 0 20px #4f8ef733,0 0 40px #4f8ef714}.animate-in{animation:slideUp .4s var(--transition-smooth) both}.shimmer{background:linear-gradient(90deg,var(--bg3) 25%,rgba(255,255,255,.06) 50%,var(--bg3) 75%);background-size:200% 100%;animation:shimmerLoading 1.5s ease-in-out infinite;border-radius:var(--r)}.mobile-topbar{display:none;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--glass);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-bottom:1px solid var(--glass-border);position:sticky;top:0;z-index:50}.mobile-topbar .sb-logo{font-size:18px}.mobile-hamburger{background:none;border:none;color:var(--text);display:flex;align-items:center;justify-content:center;padding:6px;border-radius:var(--r);transition:background .2s}.mobile-hamburger:hover{background:#ffffff0d}.mobile-actions{display:flex;align-items:center;gap:8px}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:99;animation:modalOverlayIn .2s ease both}.sidebar-overlay.active{display:block}@media (max-width: 1024px){.page-wrap{padding:20px}.stats-grid{grid-template-columns:repeat(2,1fr);gap:12px}.stat-value{font-size:22px}}@media (max-width: 768px){.mobile-topbar{display:flex}.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:100;width:var(--sidebar);transform:translate(-100%);transition:transform .3s var(--transition-smooth);display:flex}.sidebar.mobile-open{transform:translate(0)}.app-layout.sidebar-closed .sidebar{width:var(--sidebar);transform:translate(-100%)}.app-layout.sidebar-closed .sidebar.mobile-open{transform:translate(0)}.sb-toggle{display:none}.main-area{width:100%}.form-row{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,1fr);gap:10px}.page-wrap{padding:16px}.page-title{font-size:20px}.page-header{flex-wrap:wrap;gap:8px;margin-bottom:16px}.card{padding:14px;margin-bottom:12px;border-radius:var(--r)}.card-title{font-size:14px;margin-bottom:12px}.stat-card{padding:14px}.stat-value{font-size:20px}.stat-label{font-size:10px}.table-wrap{border-radius:var(--r)}.tbl th{padding:8px 10px;font-size:10px}.tbl td{padding:10px;font-size:12px}.ch-head{padding:10px 12px;gap:6px}.ch-name{font-size:12px}.ch-total{font-size:11px}.pt-row{padding:8px 10px 8px 20px;font-size:11px;gap:4px}.pt-code{min-width:32px;font-size:10px}.pt-total{min-width:60px;font-size:11px}.pt-meta,.decomp-row{font-size:10px}.btn{padding:8px 14px;font-size:12px}.btn-sm{padding:5px 10px;font-size:11px}.modal{padding:20px;border-radius:14px;max-width:calc(100vw - 32px)}.modal-overlay{padding:16px}.modal-title{font-size:16px}.modal-footer{flex-direction:column;gap:8px}.modal-footer .btn{width:100%;justify-content:center}.form-input,.form-select{padding:10px;font-size:14px}.tabs{gap:0;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{padding:8px 12px;font-size:12px;flex-shrink:0}.upload-area{padding:20px}.upload-icon{font-size:28px}}@media (max-width: 480px){.page-wrap{padding:12px}.page-title{font-size:18px}.stats-grid{grid-template-columns:1fr 1fr;gap:8px}.stat-card{padding:10px}.stat-value{font-size:18px}.card{padding:12px}.ch-head{padding:8px 10px}.ch-code{font-size:10px;padding:1px 5px}.pt-row{padding:6px 8px 6px 14px}.modal{max-width:100vw;border-radius:12px 12px 0 0;max-height:85vh}.modal-overlay{padding:0;align-items:flex-end}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html{scroll-behavior:auto}.page-wrap,.modal,.modal-overlay,.sb-logo,.progress-fill{animation:none}}
