@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap";:root{--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "Cascadia Code", "Fira Code", monospace;--radius-xs:4px;--radius-sm:6px;--radius:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:9999px;--ease:cubic-bezier(.4, 0, .2, 1);--transition-fast:.15s var(--ease);--transition:.2s var(--ease);--transition-slow:.3s var(--ease);--shadow-xs:0 1px 2px var(--shadow-color);--shadow-sm:0 1px 3px var(--shadow-color), 0 1px 2px var(--shadow-color);--shadow-md:0 4px 6px var(--shadow-color);--shadow-lg:0 10px 15px var(--shadow-color);--shadow-xl:0 20px 25px var(--shadow-color)}:root,[data-theme=light]{--bg-base:#f7f8fa;--bg-surface:#fff;--bg-surface-raised:#fff;--bg-surface-overlay:#fff;--bg-inset:#f0f1f3;--bg-subtle:#f4f5f7;--border-default:#d8dbe0;--border-muted:#e8eaed;--border-strong:#c1c4ca;--border-accent:#4c8bf5;--text-primary:#1a1d23;--text-secondary:#5f6672;--text-muted:#8b919d;--text-on-accent:#fff;--text-link:#4c8bf5;--accent:#4c8bf5;--accent-hover:#3a7ae0;--accent-subtle:#4c8bf514;--accent-muted:#4c8bf526;--success:#2da44e;--success-subtle:#2da44e1a;--warning:#bf8700;--warning-subtle:#bf87001a;--danger:#cf222e;--danger-subtle:#cf222e1a;--info:#0969da;--info-subtle:#0969da1a;--shadow-color:#00000014;--overlay-bg:#0006;--scrollbar-track:#f0f1f3;--scrollbar-thumb:#c1c4ca;--header-bg:#ffffffd9;--input-bg:#fff;--table-stripe:#00000005;--skeleton-from:#e8eaed;--skeleton-to:#f4f5f7;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=dark]{--bg-base:#111318;--bg-surface:#1a1d24;--bg-surface-raised:#21242c;--bg-surface-overlay:#272b34;--bg-inset:#0d0f13;--bg-subtle:#161920;--border-default:#2d3139;--border-muted:#23272e;--border-strong:#3d424d;--border-accent:#5a9cf6;--text-primary:#e2e5ea;--text-secondary:#8b919d;--text-muted:#5f6672;--text-on-accent:#fff;--text-link:#79b3f9;--accent:#5a9cf6;--accent-hover:#79b3f9;--accent-subtle:#5a9cf614;--accent-muted:#5a9cf626;--success:#3fb950;--success-subtle:#3fb9501f;--warning:#d29922;--warning-subtle:#d299221f;--danger:#f85149;--danger-subtle:#f851491f;--info:#58a6ff;--info-subtle:#58a6ff1f;--shadow-color:#00000059;--overlay-bg:#000000a6;--scrollbar-track:#161920;--scrollbar-thumb:#3d424d;--header-bg:#1a1d24e0;--input-bg:#161920;--table-stripe:#ffffff05;--skeleton-from:#23272e;--skeleton-to:#2d3139;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background:var(--bg-base);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;transition:background var(--transition-slow), color var(--transition-slow);font-size:14px;line-height:1.55}a{color:var(--text-link);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--accent-hover)}::selection{background:var(--accent-muted);color:var(--text-primary)}img{max-width:100%;display:block}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.app-container{flex-direction:column;min-height:100vh;display:flex}.page-container{flex:1;width:100%;max-width:1280px;margin:0 auto;padding:1.75rem 2rem}.page-title{color:var(--text-primary);letter-spacing:-.02em;margin-bottom:1.5rem;font-size:1.5rem;font-weight:700}.page-subtitle{color:var(--text-secondary);margin-top:-.75rem;margin-bottom:1.25rem;font-size:.9rem}.header{z-index:100;background:var(--header-bg);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-muted);height:48px;transition:background var(--transition-slow), border-color var(--transition-slow);justify-content:space-between;align-items:center;padding:0 1.25rem;display:flex;position:sticky;top:0}.header-left{align-items:center;gap:1rem;min-width:0;display:flex}.header-logo{color:var(--text-primary);letter-spacing:-.03em;flex-shrink:0;align-items:center;gap:.4rem;font-size:.95rem;font-weight:700;text-decoration:none;display:flex}.header-logo-icon{color:var(--accent);font-size:1.1rem}.header-breadcrumbs{color:var(--text-muted);align-items:center;gap:.35rem;min-width:0;font-size:.8rem;display:flex}.breadcrumb-link{color:var(--text-secondary);text-decoration:none}.breadcrumb-link:hover{color:var(--accent)}.breadcrumb-segment{align-items:center;gap:.35rem;display:flex}.breadcrumb-segment svg{color:var(--text-muted);flex-shrink:0}.breadcrumb-current{color:var(--text-primary);font-weight:500}.header-right{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.header-theme-toggle{border-radius:var(--radius-sm);border:1px solid var(--border-muted);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0;justify-content:center;align-items:center;display:flex}.header-theme-toggle:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-subtle)}.header-user{align-items:center;gap:.5rem;padding:0 .35rem;display:flex}.header-avatar{border-radius:var(--radius-full);background:var(--accent);width:28px;height:28px;color:var(--text-on-accent);flex-shrink:0;justify-content:center;align-items:center;font-size:.65rem;font-weight:700;display:flex}.header-user-info{flex-direction:column;line-height:1.2;display:flex}.header-user-name{color:var(--text-primary);font-size:.8rem;font-weight:500}.header-user-role{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.65rem;font-weight:500}.header-divider{background:var(--border-default);width:1px;height:20px;margin:0 .15rem}.header-btn-logout{border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.8rem;font-family:var(--font-sans);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:1px solid #0000;align-items:center;gap:.35rem;padding:.3rem .6rem;font-weight:500;display:flex}.header-btn-logout:hover{color:var(--danger);border-color:var(--danger-subtle);background:var(--danger-subtle)}.card{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);transition:border-color var(--transition), box-shadow var(--transition);padding:1.25rem}.card:hover{border-color:var(--border-strong)}.card-header{border-bottom:1px solid var(--border-muted);justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;display:flex}.card-title{font-size:.95rem;font-weight:600}.card-footer{border-top:1px solid var(--border-muted);justify-content:flex-end;gap:.5rem;margin-top:1rem;padding-top:.75rem;display:flex}.dashboard-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;display:grid}.dashboard-welcome{color:var(--text-secondary);margin-bottom:.25rem;font-size:1rem}.dashboard-welcome strong{color:var(--text-primary);font-weight:600}.action-card-link{color:inherit;opacity:0;animation:fadeInUp .35s var(--ease) forwards;text-decoration:none}.action-card{text-align:center;cursor:pointer;transition:border-color var(--transition), box-shadow var(--transition), transform var(--transition);padding:1.75rem 1.25rem}.action-card:hover{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle), var(--shadow-md);transform:translateY(-2px)}.action-card-icon{border-radius:var(--radius-lg);background:var(--accent-subtle);width:56px;height:56px;color:var(--accent);transition:background var(--transition), color var(--transition);justify-content:center;align-items:center;margin:0 auto 1rem;display:flex}.action-card:hover .action-card-icon{background:var(--accent-muted)}.action-card-title{margin-bottom:.35rem;font-size:.95rem;font-weight:600}.action-card-desc{color:var(--text-secondary);font-size:.8rem;line-height:1.4}.btn{border-radius:var(--radius-sm);font-family:var(--font-sans);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:.4rem;padding:.45rem .85rem;font-size:.8rem;font-weight:500;line-height:1.4;display:inline-flex}.btn svg{flex-shrink:0;width:14px;height:14px}.btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--accent);color:var(--text-on-accent);border-color:var(--accent)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-secondary{color:var(--text-primary);border-color:var(--border-default);background:0 0}.btn-secondary:hover{background:var(--accent-subtle);border-color:var(--accent);color:var(--accent)}.btn-danger{background:var(--danger-subtle);color:var(--danger);border-color:#0000}.btn-danger:hover{background:var(--danger);color:var(--text-on-accent)}.btn-success{background:var(--success-subtle);color:var(--success);border-color:#0000}.btn-success:hover{background:var(--success);color:var(--text-on-accent)}.btn-ghost{color:var(--text-secondary);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--bg-subtle);color:var(--text-primary)}.btn-sm{padding:.3rem .6rem;font-size:.75rem}.btn-sm svg{width:12px;height:12px}.btn-lg{padding:.6rem 1.2rem;font-size:.9rem}.btn-icon{min-width:30px;min-height:30px;padding:.4rem}.btn-group{align-items:center;gap:.4rem;display:flex}.w-full{width:100%}.form-group{margin-bottom:1rem}.form-label{color:var(--text-secondary);margin-bottom:.3rem;font-size:.8rem;font-weight:500;display:block}.form-input,.form-select,.form-textarea{background:var(--input-bg);border:1px solid var(--border-default);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);font-family:var(--font-sans);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none;padding:.5rem .75rem;font-size:.85rem}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle)}.form-input::placeholder{color:var(--text-muted)}.form-textarea{resize:vertical;min-height:80px}.form-select{cursor:pointer}.form-row{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem;display:grid}.form-error{color:var(--danger);margin-top:.25rem;font-size:.78rem}.form-checkbox{cursor:pointer;align-items:center;gap:.5rem;font-size:.85rem;display:flex}.form-checkbox input[type=checkbox]{appearance:none;border:1.5px solid var(--border-strong);background:var(--input-bg);cursor:pointer;width:16px;height:16px;transition:all var(--transition-fast);border-radius:3px;flex-shrink:0;position:relative}.form-checkbox input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}.form-checkbox input[type=checkbox]:checked:after{content:"";border:solid var(--text-on-accent);border-width:0 1.5px 1.5px 0;width:5px;height:8px;position:absolute;top:1.5px;left:4.5px;transform:rotate(45deg)}.form-checkbox input[type=checkbox]:focus-visible{box-shadow:0 0 0 3px var(--accent-subtle)}.table-container{border:1px solid var(--border-default);border-radius:var(--radius-lg);overflow-x:auto}.table{border-collapse:collapse;width:100%}.table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--bg-subtle);border-bottom:1px solid var(--border-default);padding:.6rem .85rem;font-size:.72rem;font-weight:600}.table td{border-bottom:1px solid var(--border-muted);transition:background var(--transition-fast);padding:.6rem .85rem;font-size:.85rem}.table tbody tr:hover{background:var(--table-stripe)}.table tbody tr:last-child td{border-bottom:none}.table-actions{gap:.3rem;display:flex}.badge{border-radius:var(--radius-full);text-transform:capitalize;border:1px solid #0000;align-items:center;gap:.3rem;padding:.15rem .55rem;font-size:.72rem;font-weight:600;display:inline-flex}.badge-success{background:var(--success-subtle);color:var(--success);border-color:#0000}.badge-warning{background:var(--warning-subtle);color:var(--warning);border-color:#0000}.badge-danger{background:var(--danger-subtle);color:var(--danger);border-color:#0000}.badge-info{background:var(--info-subtle);color:var(--info);border-color:#0000}.badge-primary{background:var(--accent-subtle);color:var(--accent);border-color:#0000}.modal-overlay{background:var(--overlay-bg);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:1000;animation:fadeIn .15s var(--ease);justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--bg-surface-overlay);border:1px solid var(--border-default);border-radius:var(--radius-xl);width:100%;box-shadow:var(--shadow-xl);animation:modalSlideIn .2s var(--ease);overflow:hidden}.modal-sm{max-width:380px}.modal-md{max-width:520px}.modal-lg{max-width:720px}.modal-xl{max-width:920px}.modal-header{border-bottom:1px solid var(--border-muted);background:var(--bg-subtle);justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.modal-title{font-size:.95rem;font-weight:600}.modal-close{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;font-size:1.1rem;display:flex}.modal-close:hover{background:var(--danger-subtle);color:var(--danger)}.modal-body{max-height:65vh;padding:1.25rem;overflow-y:auto}.modal-footer{border-top:1px solid var(--border-muted);background:var(--bg-subtle);justify-content:flex-end;gap:.5rem;padding:.85rem 1.25rem;display:flex}.toast-container{z-index:2000;flex-direction:column;gap:.5rem;display:flex;position:fixed;bottom:1rem;right:1rem}.toast{background:var(--bg-surface-raised);border:1px solid var(--border-default);border-radius:var(--radius);min-width:280px;max-width:380px;box-shadow:var(--shadow-lg);animation:toastSlideIn .25s var(--ease);border-left:3px solid var(--border-default);justify-content:space-between;align-items:center;gap:.6rem;padding:.7rem 1rem;display:flex}.toast-success{border-left-color:var(--success)}.toast-error{border-left-color:var(--danger)}.toast-info{border-left-color:var(--info)}.toast-warning{border-left-color:var(--warning)}.toast-message{flex:1;font-size:.82rem;line-height:1.4}.toast-close{color:var(--text-muted);cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;padding:0 .2rem;font-size:1rem}.toast-close:hover{color:var(--text-primary)}.toast-exit{animation:toastSlideOut .2s var(--ease) forwards}.search-bar{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.search-input{flex:1;min-width:220px}.loading-spinner{border:3px solid var(--border-muted);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.7s linear infinite spin}.loading-overlay{background:var(--overlay-bg);z-index:999;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.skeleton{background:linear-gradient(90deg, var(--skeleton-from) 25%, var(--skeleton-to) 50%, var(--skeleton-from) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.5s infinite shimmer}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.5rem;display:grid}.photo-item{aspect-ratio:1;border-radius:var(--radius);cursor:pointer;border:1px solid var(--border-muted);transition:border-color var(--transition), transform var(--transition);position:relative;overflow:hidden}.photo-item img{object-fit:cover;width:100%;height:100%}.photo-item:hover{border-color:var(--accent);transform:scale(1.03)}.photo-item-overlay{opacity:0;transition:opacity var(--transition);background:linear-gradient(#0000 50%,#0009);align-items:flex-end;padding:.4rem;display:flex;position:absolute;inset:0}.photo-item:hover .photo-item-overlay{opacity:1}.photo-upload{border:2px dashed var(--border-default);border-radius:var(--radius);text-align:center;cursor:pointer;transition:all var(--transition-fast);color:var(--text-muted);padding:1.5rem;font-size:.82rem}.photo-upload:hover{border-color:var(--accent);background:var(--accent-subtle);color:var(--accent)}.photo-lightbox{z-index:2000;animation:fadeIn .2s var(--ease);cursor:pointer;background:#000000eb;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.photo-lightbox img{object-fit:contain;border-radius:var(--radius);max-width:90vw;max-height:90vh}.timeline{padding-left:1.75rem;position:relative}.timeline:before{content:"";background:var(--border-default);border-radius:1px;width:2px;position:absolute;top:.5rem;bottom:.5rem;left:.45rem}.timeline-item{margin-bottom:1rem;position:relative}.timeline-item:before{content:"";background:var(--accent);border:2px solid var(--bg-base);width:10px;height:10px;box-shadow:0 0 0 2px var(--accent-muted);border-radius:50%;position:absolute;top:1rem;left:-1.6rem}.empty-state{text-align:center;color:var(--text-muted);padding:3rem 1rem}.empty-state-icon{opacity:.4;margin-bottom:.75rem;font-size:2.5rem;display:block}.empty-state-text{font-size:.9rem}.xml-preview{background:var(--bg-inset);border:1px solid var(--border-default);border-radius:var(--radius);font-family:var(--font-mono);max-height:350px;color:var(--text-secondary);white-space:pre;padding:1rem;font-size:.75rem;line-height:1.6;overflow:auto}.login-page{background:var(--bg-base);justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.login-card{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-xl);width:100%;max-width:380px;box-shadow:var(--shadow-lg);animation:modalSlideIn .35s var(--ease);padding:2.25rem}.login-logo{text-align:center;color:var(--accent);letter-spacing:-.04em;margin-bottom:.5rem;font-size:2rem;font-weight:800}.login-subtitle{text-align:center;color:var(--text-muted);margin-bottom:1.75rem;font-size:.85rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes toastSlideIn{0%{opacity:0;transform:translate(80px)}to{opacity:1;transform:translate(0)}}@keyframes toastSlideOut{to{opacity:0;transform:translate(80px)}}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:200px 0}}.text-center{text-align:center}.text-right{text-align:right}.text-muted{color:var(--text-muted)}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.text-danger{color:var(--danger)}.text-info{color:var(--info)}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}.flex{display:flex}.flex-center{justify-content:center;align-items:center;display:flex}.flex-between{justify-content:space-between;align-items:center;display:flex}.gap-1{gap:.5rem}.gap-2{gap:1rem}.grid-2{grid-template-columns:repeat(2,1fr);gap:1rem;display:grid}.grid-3{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.hidden{display:none}.config-tag{background:var(--bg-surface);color:var(--text-primary);box-shadow:var(--shadow-md);border:1px solid var(--border-default);z-index:100;border-radius:2rem;align-items:center;gap:.5rem;padding:.6rem 1.2rem;font-size:.95rem;font-weight:600;text-decoration:none;transition:all .2s;display:flex;position:fixed;top:5rem;right:1.5rem}.config-tag:hover{background:var(--bg-subtle);box-shadow:var(--shadow-lg);color:var(--primary);border-color:var(--primary);transform:translateY(-2px)}@media (width<=1024px){.grid-3{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){.page-container{padding:1rem}.form-row{grid-template-columns:1fr}.header{padding:0 .75rem}.header-breadcrumbs,.header-user-info{display:none}.dashboard-grid{grid-template-columns:1fr 1fr}.search-bar{flex-direction:column;align-items:stretch}.search-input{width:100%}.modal{flex-direction:column;width:calc(100% - 2rem);max-height:calc(100vh - 2rem);margin:1rem;display:flex}.modal-body{flex:1}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(80px,1fr))}.flex-between{flex-direction:column;align-items:stretch;gap:.75rem}.flex-between>*{width:100%}.btn-group{flex-wrap:wrap}.grid-2,.grid-3{grid-template-columns:1fr}.config-tag{top:auto;bottom:1.5rem;right:50%;transform:translate(50%)}.config-tag:hover{transform:translate(50%)translateY(-2px)}}@media (width<=480px){.dashboard-grid{grid-template-columns:1fr}body{font-size:13px}.btn{justify-content:center;width:100%;padding:.5rem .75rem}.header-btn-logout{width:auto}}
