:root{--bg: #07080c;--bg-soft: #0c0e14;--panel: #11141c;--panel-2: #161a24;--border: #1f2533;--border-strong: #2c3447;--text: #e8eaf2;--muted: #7c8497;--muted-2: #525a6e;--accent: #8a7bff;--accent-2: #5cc8ff;--accent-grad: linear-gradient(135deg, #8a7bff 0%, #5cc8ff 100%);--accent-grad-soft: linear-gradient(135deg, rgba(138,123,255,.18) 0%, rgba(92,200,255,.18) 100%);--danger: #ff6b7a;--warn: #ffb866;--ok: #5fd49a;--radius: 12px;--radius-sm: 8px;--shadow-sm: 0 1px 2px rgba(0,0,0,.4);--shadow-md: 0 8px 28px rgba(0,0,0,.45);--shadow-lg: 0 24px 60px rgba(0,0,0,.55);--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;font-family:var(--font);color-scheme:dark;font-feature-settings:"cv11","ss01"}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:radial-gradient(1200px 600px at 80% -10%,rgba(138,123,255,.1),transparent 60%),radial-gradient(900px 500px at -10% 100%,rgba(92,200,255,.08),transparent 60%),var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--accent-2);text-decoration:none;transition:color .12s ease}a:hover{color:#9fd8ff}h1,h2,h3{letter-spacing:-.01em}h2{font-size:1.5rem;margin:0 0 1.25rem;font-weight:600}h3{font-size:1.1rem;margin:0 0 .75rem;font-weight:600}button{font:inherit;cursor:pointer;padding:.55rem 1rem;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--panel-2);color:var(--text);font-weight:500;transition:all .14s ease;display:inline-flex;align-items:center;gap:.4rem}button:hover{border-color:var(--accent);background:var(--panel);transform:translateY(-1px)}button:active{transform:translateY(0)}button:disabled{opacity:.45;cursor:not-allowed;transform:none}button.primary{background:var(--accent-grad);border-color:transparent;color:#fff;box-shadow:0 4px 14px #8a7bff59}button.primary:hover{filter:brightness(1.08);box-shadow:0 6px 22px #8a7bff73}button.ghost{background:transparent;border-color:transparent;color:var(--muted)}button.ghost:hover{color:var(--text);background:var(--panel-2)}button.danger{color:var(--danger);border-color:#ff6b7a66}button.danger:hover{background:#ff6b7a1a}button.sm{padding:.35rem .7rem;font-size:.82rem}input,textarea,select{font:inherit;padding:.6rem .75rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-soft);color:var(--text);width:100%;transition:border-color .12s ease,box-shadow .12s ease}input::placeholder,textarea::placeholder{color:var(--muted-2)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #8a7bff2e}label{font-size:.85rem;color:var(--muted);display:block;margin-bottom:.35rem}.layout{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:linear-gradient(180deg,#11141cf2,#0c0e14f2);border-right:1px solid var(--border);padding:1.25rem 1rem;display:flex;flex-direction:column;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.brand{display:flex;align-items:center;gap:.6rem;margin-bottom:1.5rem;padding:0 .5rem}.brand-logo{width:32px;height:32px;border-radius:9px;background:var(--accent-grad);display:grid;place-items:center;color:#fff;font-weight:700;box-shadow:0 4px 14px #8a7bff73}.brand h1{margin:0;font-size:1.05rem;font-weight:600;letter-spacing:-.01em}.sidebar nav{display:flex;flex-direction:column;gap:.15rem;margin-top:.5rem}.sidebar nav a{display:flex;align-items:center;gap:.65rem;padding:.55rem .75rem;border-radius:var(--radius-sm);color:var(--muted);font-size:.9rem;font-weight:500;transition:all .12s ease}.sidebar nav a:hover{background:var(--panel-2);color:var(--text)}.sidebar nav a.active{background:var(--accent-grad-soft);color:var(--text);border:1px solid rgba(138,123,255,.25)}.sidebar nav a .ico{width:16px;height:16px;stroke:currentColor;flex-shrink:0}.sidebar .user{margin-top:auto;padding-top:1rem;border-top:1px solid var(--border);font-size:.82rem}.sidebar .user .email{color:var(--muted);margin-bottom:.5rem;overflow:hidden;text-overflow:ellipsis}.main{padding:2rem 2.5rem;overflow:auto;max-width:1400px}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;margin-bottom:1.25rem;box-shadow:var(--shadow-sm)}.card-elevated{background:linear-gradient(180deg,var(--panel) 0%,var(--panel-2) 100%);box-shadow:var(--shadow-md)}.row{display:flex;gap:.75rem;align-items:center}.row.wrap{flex-wrap:wrap}.col{display:flex;flex-direction:column;gap:.75rem}.muted{color:var(--muted);font-size:.9rem}.error{color:var(--danger);font-size:.9rem;margin-top:.5rem}.ok{color:var(--ok);font-size:.9rem;margin-top:.5rem}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.75rem .9rem;border-bottom:1px solid var(--border)}th{color:var(--muted);font-weight:500;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}tbody tr{transition:background .1s ease}tbody tr:hover{background:var(--panel-2)}pre{background:var(--bg-soft);padding:1rem;border-radius:var(--radius-sm);overflow:auto;border:1px solid var(--border);font-size:.82rem;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace}.tag{display:inline-flex;align-items:center;gap:.3rem;padding:.22rem .6rem;border-radius:999px;background:var(--panel-2);border:1px solid var(--border);font-size:.75rem;color:var(--muted);font-weight:500}.tag.ok{color:var(--ok);border-color:#5fd49a4d;background:#5fd49a14}.tag.warn{color:var(--warn);border-color:#ffb8664d;background:#ffb86614}.tag.err{color:var(--danger);border-color:#ff6b7a4d;background:#ff6b7a14}.tag.info{color:var(--accent-2);border-color:#5cc8ff4d;background:#5cc8ff14}.dept-switcher{margin:0 0 1.25rem;padding:0 .25rem}.dept-switcher select{background:var(--panel-2)}.dept-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.dept-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;cursor:pointer;transition:all .16s ease;position:relative;overflow:hidden}.dept-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--accent-grad);opacity:0;transition:opacity .2s ease;pointer-events:none}.dept-card:hover{border-color:var(--border-strong);transform:translateY(-2px);box-shadow:var(--shadow-md)}.dept-card.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),var(--shadow-md)}.dept-card .dept-name{font-weight:600;font-size:1.05rem;margin-bottom:.35rem}.dept-card .dept-slug{font-size:.78rem;color:var(--muted-2);font-family:JetBrains Mono,monospace}.dept-card .dept-stats{display:flex;gap:1rem;margin-top:1rem;font-size:.82rem;color:var(--muted)}.dept-card .dept-stats span strong{color:var(--text);font-weight:600}.dept-card .schema-badge{position:absolute;top:1rem;right:1rem;font-size:.7rem;padding:.15rem .5rem;border-radius:999px;background:var(--accent-grad-soft);color:var(--accent-2);border:1px solid rgba(92,200,255,.3)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#07080cb3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:grid;place-items:center;z-index:100;animation:fade-in .16s ease}.modal{background:var(--panel);border:1px solid var(--border-strong);border-radius:16px;width:min(720px,92vw);max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);animation:slide-up .22s cubic-bezier(.16,1,.3,1)}.modal-header{padding:1.25rem 1.5rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.modal-header h2{margin:0;font-size:1.15rem}.modal-body{padding:1.5rem;overflow:auto;flex:1}.modal-footer{padding:1rem 1.5rem;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;background:var(--bg-soft)}.wizard-steps{display:flex;gap:.5rem;margin-bottom:1.25rem;padding:.5rem 0}.wizard-step{display:flex;align-items:center;gap:.5rem;font-size:.82rem;color:var(--muted-2);flex:1}.wizard-step .num{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--panel-2);border:1px solid var(--border);font-weight:600;font-size:.8rem;flex-shrink:0}.wizard-step.active{color:var(--text)}.wizard-step.active .num{background:var(--accent-grad);border-color:transparent;color:#fff}.wizard-step.done{color:var(--ok)}.wizard-step.done .num{background:#5fd49a26;border-color:var(--ok);color:var(--ok)}.wizard-step .bar{flex:1;height:2px;background:var(--border);border-radius:1px}.wizard-step.done .bar{background:var(--ok)}.field-row{display:grid;grid-template-columns:1.4fr 1.4fr 1fr 2fr auto;gap:.5rem;align-items:center;padding:.5rem;border-radius:8px}.field-row:hover{background:var(--panel-2)}.field-row .grip{color:var(--muted-2);cursor:grab;padding:0 .25rem}.field-row input,.field-row select{padding:.4rem .6rem;font-size:.85rem}.field-row button.danger{padding:.35rem .6rem;font-size:.8rem}.field-row-head{display:grid;grid-template-columns:1.4fr 1.4fr 1fr 2fr auto;gap:.5rem;padding:0 .5rem;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem}.fields-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.75rem}.field-card{background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.85rem 1rem}.field-card .k{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.35rem}.field-card .v{font-size:.95rem;color:var(--text);font-weight:500;word-break:break-word}.field-card .v.empty{color:var(--muted-2);font-style:italic;font-weight:400}.field-card .conf{margin-top:.45rem;height:3px;border-radius:2px;background:var(--border);overflow:hidden}.field-card .conf>div{height:100%;background:var(--accent-grad)}.refine-box{display:flex;gap:.5rem;padding:.5rem;border:1px solid var(--border);background:var(--bg-soft);border-radius:var(--radius-sm)}.refine-box input{border:none;background:transparent;padding:.4rem .5rem}.refine-box input:focus{box-shadow:none}.login-shell{display:grid;place-items:center;min-height:100vh;padding:2rem}.login-shell .card{max-width:420px;text-align:center;padding:2.5rem 2rem;border-radius:16px;background:linear-gradient(180deg,var(--panel) 0%,var(--panel-2) 100%);box-shadow:var(--shadow-lg)}.login-shell .brand-logo{margin:0 auto 1rem;width:56px;height:56px;font-size:1.5rem;border-radius:14px}.login-shell h1{font-size:1.75rem;margin:0 0 .5rem}.login-shell button.primary{width:100%;margin-top:1.5rem;justify-content:center;padding:.75rem 1rem}.spinner{display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}.pulse{animation:pulse 1.5s ease-in-out infinite}.dropzone{border:2px dashed var(--border-strong);border-radius:var(--radius);padding:2.5rem 1.5rem;text-align:center;background:var(--bg-soft);transition:all .16s ease;cursor:pointer}.dropzone:hover,.dropzone.dragging{border-color:var(--accent);background:var(--accent-grad-soft)}.dropzone .icon{font-size:2rem;opacity:.6;margin-bottom:.5rem}.pipe-progress{display:flex;align-items:center;gap:.5rem;padding:.4rem .75rem;background:var(--bg-soft);border:1px solid var(--border);border-radius:999px;font-size:.8rem}.pipe-step{width:8px;height:8px;border-radius:50%;background:var(--border-strong)}.pipe-step.done{background:var(--ok)}.pipe-step.active{background:var(--accent);animation:pulse 1.2s infinite}.pipe-step.err{background:var(--danger)}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin:0 0 1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.page-header h2{margin:0;font-size:1.75rem;font-weight:700;letter-spacing:-.02em}.page-header .subtitle{color:var(--muted);font-size:.95rem;margin-top:.35rem}.page-header .actions{display:flex;gap:.5rem;flex-shrink:0}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem;margin-bottom:1.25rem}.stat-tile{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem;position:relative;overflow:hidden}.stat-tile:after{content:"";position:absolute;right:-20px;top:-20px;width:90px;height:90px;border-radius:50%;background:var(--accent-grad);opacity:.06}.stat-tile .label{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.stat-tile .value{font-size:1.6rem;font-weight:700;margin-top:.25rem;letter-spacing:-.02em}.stat-tile .delta{font-size:.75rem;color:var(--muted-2);margin-top:.2rem}.doc-list{display:flex;flex-direction:column;gap:.5rem}.doc-row{display:grid;grid-template-columns:42px 1fr auto auto auto;align-items:center;gap:1rem;padding:.85rem 1rem;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);transition:all .14s ease;text-decoration:none;color:inherit}.doc-row:hover{border-color:var(--border-strong);transform:translate(2px);box-shadow:var(--shadow-sm);background:var(--panel-2)}.doc-row .file-icon{width:42px;height:42px;border-radius:10px;display:grid;place-items:center;background:var(--accent-grad-soft);border:1px solid rgba(138,123,255,.2);color:var(--accent-2)}.doc-row .file-icon svg{width:22px;height:22px;stroke:currentColor}.doc-row .name{font-weight:600;font-size:.95rem;color:var(--text)}.doc-row .meta{font-size:.75rem;color:var(--muted);margin-top:.15rem;display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.doc-row .meta .dot{width:3px;height:3px;border-radius:50%;background:var(--muted-2)}.doc-row .time{font-size:.8rem;color:var(--muted);font-variant-numeric:tabular-nums}.status-pill{display:inline-flex;align-items:center;gap:.4rem;padding:.25rem .7rem;border-radius:999px;font-size:.75rem;font-weight:500;background:var(--panel-2);border:1px solid var(--border);color:var(--muted);font-variant-numeric:tabular-nums}.status-pill .dot{width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 0 0 currentColor}.status-pill.processing{color:var(--accent-2);border-color:#5cc8ff4d;background:#5cc8ff0f}.status-pill.processing .dot{animation:pingDot 1.4s ease-out infinite}.status-pill.ready{color:var(--ok);border-color:#5fd49a4d;background:#5fd49a0f}.status-pill.warn{color:var(--warn);border-color:#ffb8664d;background:#ffb8660f}.status-pill.err{color:var(--danger);border-color:#ff6b7a4d;background:#ff6b7a0f}@keyframes pingDot{0%{box-shadow:0 0 #5cc8ff80}70%{box-shadow:0 0 0 6px #5cc8ff00}to{box-shadow:0 0 #5cc8ff00}}.empty-state{text-align:center;padding:3rem 1.5rem;color:var(--muted)}.empty-state .icon{width:64px;height:64px;border-radius:16px;background:var(--accent-grad-soft);border:1px solid rgba(138,123,255,.2);display:grid;place-items:center;margin:0 auto 1rem;color:var(--accent-2)}.empty-state .icon svg{width:32px;height:32px;stroke:currentColor}.empty-state .title{font-size:1.05rem;font-weight:600;color:var(--text);margin-bottom:.35rem}.empty-state .sub{font-size:.88rem;max-width:360px;margin:0 auto}.dropzone-v2{border:1.5px dashed var(--border-strong);border-radius:var(--radius);padding:2rem 1.5rem;text-align:center;background:linear-gradient(180deg,var(--bg-soft) 0%,var(--panel) 100%);transition:all .18s ease;position:relative;cursor:pointer}.dropzone-v2:hover,.dropzone-v2.dragging{border-color:var(--accent);background:var(--accent-grad-soft);transform:translateY(-1px)}.dropzone-v2.dragging{border-style:solid;box-shadow:0 0 0 4px #8a7bff26}.dropzone-v2 input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.dropzone-v2 .icon{width:48px;height:48px;border-radius:12px;background:var(--accent-grad);display:grid;place-items:center;margin:0 auto .85rem;box-shadow:0 8px 22px #8a7bff66}.dropzone-v2 .icon svg{width:22px;height:22px;stroke:#fff}.dropzone-v2 .title{font-weight:600;font-size:1rem;color:var(--text);margin-bottom:.25rem}.dropzone-v2 .hint{font-size:.82rem;color:var(--muted)}.dropzone-v2 .accent{color:var(--accent-2);font-weight:500}.file-preview{display:flex;align-items:center;gap:.85rem;padding:.85rem 1rem;background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius);margin-top:.75rem}.file-preview .file-icon{width:38px;height:38px;border-radius:9px;background:var(--accent-grad-soft);border:1px solid rgba(138,123,255,.2);display:grid;place-items:center;color:var(--accent-2)}.file-preview .file-icon svg{width:18px;height:18px;stroke:currentColor}.file-preview .info{flex:1;min-width:0}.file-preview .info .n{font-weight:500;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-preview .info .s{font-size:.78rem;color:var(--muted);margin-top:.15rem}.toolbar{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin-bottom:1rem}.toolbar .search-input{position:relative;flex:1;min-width:220px}.toolbar .search-input svg{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);width:16px;height:16px;stroke:var(--muted);pointer-events:none}.toolbar .search-input input{padding-left:2.25rem}.skeleton{background:linear-gradient(90deg,var(--panel) 0%,var(--panel-2) 50%,var(--panel) 100%);background-size:200% 100%;animation:shimmer 1.6s ease-in-out infinite;border-radius:var(--radius-sm)}.skeleton-row{height:64px;margin-bottom:.5rem}.notice{display:flex;align-items:flex-start;gap:.75rem;padding:.85rem 1rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-soft);font-size:.88rem;margin-top:.75rem}.notice.ok{color:var(--ok);background:#5fd49a0f;border-color:#5fd49a40}.notice.err{color:var(--danger);background:#ff6b7a0f;border-color:#ff6b7a40}.notice .ico{flex-shrink:0;margin-top:1px}.notice .ico svg{width:16px;height:16px;stroke:currentColor}.thinking{text-align:center;padding:1.5rem .5rem 1rem;animation:fade-in .25s ease}.thinking-orb{width:72px;height:72px;margin:0 auto 1.25rem;border-radius:50%;background:radial-gradient(circle at 30% 30%,#b3a8ff,#8a7bff 35%,#5cc8ff 80%);position:relative;box-shadow:0 12px 36px #8a7bff80,0 0 0 1px #ffffff0d inset;animation:orbPulse 2.4s ease-in-out infinite}.thinking-orb:before,.thinking-orb:after{content:"";position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px;border-radius:50%;border:1px solid rgba(138,123,255,.4);animation:orbRipple 2.4s ease-out infinite}.thinking-orb:after{animation-delay:1.2s}.thinking-orb span{position:absolute;width:8px;height:8px;border-radius:50%;background:#fff;top:50%;left:50%;animation:orbit 3s linear infinite;box-shadow:0 0 12px #fffc}.thinking-orb span:nth-child(1){animation-delay:0s}.thinking-orb span:nth-child(2){animation-delay:-1s}.thinking-orb span:nth-child(3){animation-delay:-2s}.thinking-orb-create{background:radial-gradient(circle at 30% 30%,#a8ffd1,#5fd49a,#5cc8ff);box-shadow:0 12px 36px #5fd49a73}@keyframes orbPulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes orbRipple{0%{transform:scale(.85);opacity:.8}to{transform:scale(1.6);opacity:0}}@keyframes orbit{0%{transform:translate(-50%,-50%) rotate(0) translate(28px) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg) translate(28px) rotate(-360deg)}}.thinking-title{font-size:1.15rem;font-weight:600;letter-spacing:-.01em;background:var(--accent-grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;color:transparent;margin-bottom:.35rem}.thinking-sub{color:var(--muted);font-size:.88rem;max-width:480px;margin:0 auto 1.25rem;line-height:1.5}.thinking-steps{list-style:none;padding:0;margin:0 auto 1.25rem;max-width:340px;text-align:left;display:flex;flex-direction:column;gap:.4rem}.thinking-steps li{display:flex;align-items:center;gap:.6rem;font-size:.85rem;color:var(--muted);opacity:0;animation:stepIn .5s ease forwards,stepGlow 2s ease-in-out infinite}.thinking-steps li.delay-1{animation-delay:.4s,.4s}.thinking-steps li.delay-2{animation-delay:.9s,.9s}.thinking-steps li.delay-3{animation-delay:1.4s,1.4s}.thinking-steps li .check{width:16px;height:16px;border-radius:50%;background:var(--accent-grad);display:inline-grid;place-items:center;flex-shrink:0;position:relative}.thinking-steps li .check:after{content:"";width:5px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg) translate(-1px,-1px)}@keyframes stepIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0);color:var(--text)}}@keyframes stepGlow{0%,to{color:var(--text)}50%{color:var(--accent-2)}}.thinking-skeleton{max-width:540px;margin:0 auto;display:flex;flex-direction:column;gap:.5rem}.skel-row{display:grid;grid-template-columns:1.4fr 1.4fr 1fr 2fr;gap:.5rem;opacity:0;animation:skelIn .4s ease forwards}@keyframes skelIn{to{opacity:1}}.skel{height:28px;border-radius:6px;background:linear-gradient(90deg,var(--panel) 0%,var(--panel-2) 50%,var(--panel) 100%);background-size:200% 100%;animation:shimmer 1.6s linear infinite}.skel-k{width:70%}.skel-l{width:85%}.skel-t{width:60%}.skel-d{width:95%}.field-row-enter{opacity:0;transform:translateY(8px);animation:rowIn .4s cubic-bezier(.16,1,.3,1) forwards}@keyframes rowIn{to{opacity:1;transform:translateY(0)}}.modal-backdrop{z-index:9999}.card,.stat-tile,.doc-row,.dept-card{animation:cardIn .35s cubic-bezier(.16,1,.3,1) backwards}.stat-row>.stat-tile:nth-child(1){animation-delay:0s}.stat-row>.stat-tile:nth-child(2){animation-delay:.05s}.stat-row>.stat-tile:nth-child(3){animation-delay:.1s}.stat-row>.stat-tile:nth-child(4){animation-delay:.15s}@keyframes cardIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.main{padding-bottom:4rem}.reviewer{margin-top:1.25rem}.reviewer-tabs{display:flex;gap:.25rem;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:1rem}.rtab{background:transparent;border:none;padding:.65rem 1rem;cursor:pointer;color:#ffffff8c;font-size:.92rem;font-weight:500;border-bottom:2px solid transparent;display:inline-flex;align-items:center;gap:.4rem;transition:all .18s ease}.rtab:hover{color:#ffffffd9}.rtab.on{color:var(--accent, #6366f1);border-bottom-color:var(--accent, #6366f1)}.rtab .dot{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.7}.reviewer-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:1.25rem}@media (max-width: 1100px){.reviewer-grid{grid-template-columns:1fr}}.reviewer-canvas{background:#0f111c99;border:1px solid rgba(255,255,255,.06);border-radius:14px;padding:.75rem;overflow:hidden;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.canvas-toolbar{display:flex;align-items:center;gap:.5rem;padding:.4rem .5rem .75rem;border-bottom:1px solid rgba(255,255,255,.05);margin-bottom:.5rem}.canvas-toolbar .legend{display:inline-flex;align-items:center;gap:.3rem;font-size:.78rem;color:#fff9}.canvas-toolbar .legend i{width:10px;height:10px;border-radius:3px;display:inline-block}.pdf-stack{display:flex;flex-direction:column;gap:1rem;align-items:center;max-height:78vh;overflow:auto;padding:.5rem}.pdf-page-wrap{position:relative}.pdf-page-num{position:absolute;top:-22px;left:0;font-size:.72rem;color:#fff6}.pdf-page-rel{position:relative;box-shadow:0 10px 30px #00000059;border-radius:6px;overflow:hidden}.pdf-page-rel canvas{display:block}.pdf-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;width:100%;height:100%}.skel-page{height:600px;background:linear-gradient(90deg,#ffffff0a,#ffffff14,#ffffff0a);background-size:200% 100%;animation:shimmer 1.6s linear infinite;border-radius:8px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.img-wrap img{max-width:100%;border-radius:6px;display:block}.reviewer-side{background:#0f111c99;border:1px solid rgba(255,255,255,.06);border-radius:14px;padding:.85rem;display:flex;flex-direction:column;gap:.7rem;max-height:82vh;overflow-y:auto}.rs-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:.5rem;border-bottom:1px solid rgba(255,255,255,.06)}.rs-counters{display:flex;gap:.4rem;font-size:.78rem}.rsc{padding:2px 6px;border-radius:4px}.rsc.ok{background:#22c55e2e;color:#4ade80}.rsc.err{background:#ef44442e;color:#f87171}.rsc.muted{color:#ffffff80}.field-card{background:#ffffff06;border:1px solid rgba(255,255,255,.06);border-left-width:3px;border-radius:10px;padding:.7rem .85rem;transition:transform .15s ease,border-color .18s ease,background .18s ease;cursor:default}.field-card.tier-high{border-left-color:#22c55e}.field-card.tier-med{border-left-color:#eab308}.field-card.tier-low{border-left-color:#ef4444}.field-card.on{background:#6366f10f;border-color:#6366f166;transform:translate(-2px)}.field-card.status-approved{opacity:.85}.field-card.status-rejected{opacity:.7}.fc-head{display:flex;justify-content:space-between;align-items:center}.fc-type{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;background:#ffffff0f;padding:2px 7px;border-radius:4px;color:#ffffffb3}.fc-pill{font-size:.7rem;padding:2px 7px;border-radius:999px;text-transform:uppercase;letter-spacing:.05em}.fc-pill.pending{background:#eab3082e;color:#fde68a}.fc-pill.approved{background:#22c55e2e;color:#86efac}.fc-pill.rejected{background:#ef44442e;color:#fca5a5}.fc-pill.edited{background:#6366f12e;color:#c7d2fe}.fc-label{margin-top:.45rem;font-weight:600;color:#ffffffe6;font-size:.95rem}.fc-value{margin-top:.25rem;color:#ffffffc7;font-size:.95rem;word-break:break-word}.fc-desc{margin-top:.2rem}.fc-confbar{margin-top:.5rem;height:4px;background:#ffffff0f;border-radius:2px;position:relative;overflow:hidden}.fc-confbar-fill{height:100%;border-radius:2px;transition:width .3s ease}.fc-confbar-fill.tier-high{background:linear-gradient(90deg,#22c55e,#4ade80)}.fc-confbar-fill.tier-med{background:linear-gradient(90deg,#eab308,#fde047)}.fc-confbar-fill.tier-low{background:linear-gradient(90deg,#ef4444,#f87171)}.fc-conf{position:absolute;right:0;top:-16px;font-size:.7rem;color:#ffffff8c}.fc-actions{display:flex;gap:.35rem;margin-top:.6rem}.fc-actions .sm{padding:.32rem .7rem;font-size:.8rem}.fc-actions .sm.ok{background:#22c55e26;color:#86efac;border:1px solid rgba(34,197,94,.4)}.fc-actions .sm.ok:hover:not(:disabled){background:#22c55e40}.fc-actions .sm.danger{background:#ef44441f;color:#fca5a5;border:1px solid rgba(239,68,68,.35)}.fc-actions .sm.danger:hover:not(:disabled){background:#ef444433}.fc-actions .sm:disabled{opacity:.45;cursor:not-allowed}.fc-edit{display:flex;gap:.35rem;margin-top:.5rem}.fc-edit input{flex:1;padding:.4rem .6rem;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:6px;color:#fff;font-size:.9rem}.fc-edit input:focus{outline:none;border-color:#6366f199;background:#6366f10f}.sm.primary{background:var(--accent, #6366f1);color:#fff;border:none}.sm.primary:hover{filter:brightness(1.1)}
