:root{--font-sans:"Inter", system-ui, -apple-system, sans-serif;--font-display:"Outfit", system-ui, -apple-system, sans-serif;--bg-primary:#fff;--bg-secondary:#fafafa;--bg-surface:#f4f4f5;--bg-card:#fff;--border-black:#000;--border-dark:#18181b;--border-subtle:#e4e4e7;--border-light:#f4f4f5;--text-primary:#09090b;--text-secondary:#52525b;--text-muted:#71717a;--status-live:#16a34a;--status-live-bg:#f0fdf4;--shadow-sm:0 1px 2px #0000000d;--shadow-card:0 1px 3px #00000014}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh}button,input,select,textarea{font-family:inherit}a{color:inherit;text-decoration:none}.landing-page{color:#09090b;background-color:#fff;flex-direction:column;min-height:100vh;display:flex}.landing-nav{z-index:50;background:#fff;border-bottom:1px solid #000;padding:1rem 2rem;position:sticky;top:0}.nav-container{justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;display:flex}.brand{align-items:center;gap:.65rem;display:flex}.brand-icon{color:#fff;background:#000;border-radius:6px;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.brand-name{font-family:var(--font-display);letter-spacing:-.02em;color:#000;font-size:1.35rem;font-weight:700}.nav-actions{align-items:center;gap:1rem;display:flex}.system-pill{color:#09090b;background:#f4f4f5;border:1px solid #000;border-radius:9999px;align-items:center;gap:.45rem;padding:.35rem .75rem;font-size:.78rem;font-weight:600;display:inline-flex}.status-dot{background-color:#16a34a;border-radius:50%;width:7px;height:7px}.btn-nav{color:#fff;cursor:pointer;background:#000;border:1px solid #000;border-radius:6px;padding:.5rem 1.15rem;font-size:.875rem;font-weight:600;transition:all .2s}.btn-nav:hover{background:#27272a;border-color:#27272a}.landing-main{flex-direction:column;flex:1;align-items:center;max-width:1100px;margin:0 auto;padding:4.5rem 1.5rem 5rem;display:flex}.hero-content{text-align:center;max-width:780px}.badge-wrapper{margin-bottom:1.5rem}.hero-badge{color:#09090b;background:#fff;border:1px solid #000;border-radius:9999px;align-items:center;gap:.5rem;padding:.4rem 1.1rem;font-size:.88rem;font-weight:600;display:inline-flex}.hero-title{font-family:var(--font-display);letter-spacing:-.03em;color:#000;margin-bottom:1.25rem;font-size:clamp(2.4rem,5vw,4rem);font-weight:800;line-height:1.15}.hero-subtitle{color:#52525b;max-width:620px;margin:0 auto 2.5rem;font-size:clamp(1rem,2vw,1.2rem);line-height:1.6}.hero-cta-group{flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;margin-bottom:4rem;display:flex}.btn-primary-black{color:#fff;cursor:pointer;background:#000;border:1px solid #000;border-radius:6px;align-items:center;gap:.6rem;padding:.8rem 1.8rem;font-size:1rem;font-weight:600;transition:all .2s;display:inline-flex}.btn-primary-black:hover{background:#27272a;border-color:#27272a}.btn-outline-black{color:#000;cursor:pointer;background:#fff;border:1px solid #000;border-radius:6px;align-items:center;padding:.8rem 1.6rem;font-size:1rem;font-weight:600;transition:all .2s;display:inline-flex}.btn-outline-black:hover{background:#f4f4f5}.landing-stats-grid{grid-template-columns:repeat(3,1fr);gap:1.25rem;width:100%;max-width:700px;margin:0 auto 4.5rem;display:grid}.landing-stat-card{text-align:center;background:#fff;border:1px solid #000;border-radius:8px;padding:1.5rem 1rem}.stat-number{font-family:var(--font-display);color:#000;margin-bottom:.25rem;font-size:1.8rem;font-weight:800}.stat-label{color:#71717a;text-transform:uppercase;letter-spacing:.05em;font-size:.8rem;font-weight:600}.features-container{width:100%}.section-title{font-family:var(--font-display);text-align:center;color:#000;margin-bottom:2rem;font-size:1.75rem;font-weight:800}.features-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;display:grid}.feature-card{text-align:left;background:#fff;border:1px solid #000;border-radius:8px;padding:1.75rem;transition:transform .2s}.feature-card:hover{transform:translateY(-2px)}.feature-icon{color:#000;background:#f4f4f5;border:1px solid #000;border-radius:6px;justify-content:center;align-items:center;width:44px;height:44px;margin-bottom:1.25rem;display:flex}.feature-card h3{font-family:var(--font-display);color:#000;margin-bottom:.5rem;font-size:1.15rem;font-weight:700}.feature-card p{color:#52525b;font-size:.92rem;line-height:1.55}.landing-footer{text-align:center;color:#71717a;background:#fff;border-top:1px solid #000;padding:1.75rem;font-size:.875rem}.landing-footer a{color:#000;font-weight:600;text-decoration:underline}@media (width<=640px){.landing-stats-grid{grid-template-columns:1fr}.landing-nav{padding:1rem}}.service-page{color:#09090b;background-color:#fff;flex-direction:column;min-height:100vh;display:flex}.service-nav{z-index:40;background:#fff;border-bottom:1px solid #000;position:sticky;top:0}.nav-wrapper{justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;padding:1rem 1.5rem;display:flex}.nav-left{align-items:center;gap:.75rem;display:flex}.nav-brand{color:#000;align-items:center;gap:.5rem;text-decoration:none;display:flex}.brand-badge{color:#fff;background:#000;border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.brand-name{letter-spacing:-.02em;font-size:1.1rem;font-weight:800}.nav-badge{letter-spacing:.05em;border:1px solid #000;border-radius:4px;padding:.2rem .55rem;font-size:.68rem;font-weight:700}.nav-right{align-items:center;gap:.75rem;display:flex}.db-status{border-radius:6px;align-items:center;gap:.35rem;padding:.3rem .65rem;font-size:.78rem;font-weight:600;display:flex}.db-status.connected{color:#16a34a;background:#f0fdf4;border:1px solid #bbf7d0}.db-status.checking,.db-status.disconnected{color:#a16207;background:#fef9c3;border:1px solid #fde68a}.status-dot{background:currentColor;border-radius:50%;width:7px;height:7px}.btn-nav-outline{color:#000;cursor:pointer;background:#fff;border:1px solid #000;border-radius:6px;padding:.4rem .8rem;font-size:.8rem;font-weight:600;text-decoration:none;transition:all .15s}.btn-nav-outline:hover{color:#fff;background:#000}.service-main{flex:1;padding:2.5rem 1.5rem}.service-container{max-width:900px;margin:0 auto}.page-header{text-align:center;margin-bottom:2rem}.page-title{color:#000;letter-spacing:-.03em;font-size:2rem;font-weight:900}.page-desc{color:#71717a;max-width:600px;margin-top:.5rem;margin-left:auto;margin-right:auto;font-size:.92rem;line-height:1.6}.upload-card{border:1px solid #000;border-radius:10px;margin-bottom:1.5rem;padding:2rem}.drop-zone{cursor:pointer;border:2px dashed #d4d4d8;border-radius:8px;justify-content:center;align-items:center;min-height:150px;margin-bottom:1.25rem;transition:border-color .2s;display:flex}.drop-zone:hover{border-color:#000}.file-input-hidden{display:none}.drop-placeholder{text-align:center;color:#a1a1aa}.drop-placeholder p{color:#52525b;margin-top:.5rem;font-weight:600}.drop-placeholder span{font-size:.78rem}.file-preview{text-align:center}.file-type-badge{color:#fff;background:#000;border-radius:4px;margin-bottom:.5rem;padding:.2rem .6rem;font-size:.7rem;font-weight:800;display:inline-block}.file-name{font-size:.95rem;font-weight:700}.file-size{color:#71717a;margin-top:.15rem;font-size:.8rem}.change-link{color:#3b82f6;cursor:pointer;font-size:.78rem;text-decoration:underline}.btn-scan{color:#fff;cursor:pointer;background:#000;border:none;border-radius:8px;justify-content:center;align-items:center;gap:.5rem;width:100%;padding:.85rem 1.5rem;font-size:.92rem;font-weight:700;transition:opacity .2s;display:flex}.btn-scan:disabled{opacity:.5;cursor:not-allowed}.btn-scan:not(:disabled):hover{opacity:.85}.spinner{border:2px solid #ffffff40;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.error-banner{color:#991b1b;background:#fef2f2;border:1px solid #fca5a5;border-radius:8px;margin-bottom:1.5rem;padding:.85rem 1rem;font-size:.85rem}.result-section{border:1px solid #e4e4e7;border-radius:10px;margin-bottom:2rem;padding:2rem}.result-header{margin-bottom:1.5rem}.result-title{color:#000;font-size:1.15rem;font-weight:800}.storage-badge{color:#71717a;margin-top:.25rem;font-size:.78rem;display:block}.score-section{text-align:center;margin-bottom:2rem}.score-ring-container{width:160px;height:160px;margin:0 auto 1rem;position:relative}.score-ring{width:100%;height:100%;transform:rotate(-90deg)}.score-ring-bg{fill:none;stroke:#f4f4f5;stroke-width:8px}.score-ring-fill{fill:none;stroke-width:8px;stroke-linecap:round;transition:stroke-dashoffset 1s ease-out}.score-text{text-align:center;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.score-number{letter-spacing:-.03em;font-size:2.2rem;font-weight:900;line-height:1;display:block}.score-label{color:#71717a;margin-top:.25rem;font-size:.75rem;font-weight:600;display:block}.score-verdict{letter-spacing:-.01em;font-size:1.1rem;font-weight:800}.metrics-bar{grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:2rem;display:grid}.metric-box{text-align:center;background:#fafafa;border:1px solid #e4e4e7;border-radius:8px;padding:1rem}.metric-label{color:#71717a;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.35rem;font-size:.72rem;font-weight:600;display:block}.metric-val{color:#18181b;font-size:1.3rem;font-weight:900;display:block}.metric-val.plagiarism{color:#dc2626}.sources-section{margin-top:1.5rem}.sources-title{color:#000;border-bottom:1px solid #e4e4e7;margin-bottom:1rem;padding-bottom:.75rem;font-size:1rem;font-weight:800}.sources-list{flex-direction:column;gap:.75rem;display:flex}.source-card{border:1px solid #e4e4e7;border-radius:8px;padding:1rem 1.25rem;transition:border-color .2s}.source-card:hover{border-color:#000}.source-header{align-items:flex-start;gap:.75rem;display:flex}.source-rank{color:#fff;background:#000;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:.72rem;font-weight:800;display:flex}.source-info{flex:1;min-width:0}.source-url{color:#000;word-break:break-word;font-size:.88rem;font-weight:700;text-decoration:none;display:block}.source-url:hover{text-decoration:underline}.source-domain{color:#71717a;margin-top:.1rem;font-size:.75rem;display:block}.source-score{flex-shrink:0;font-size:1.1rem;font-weight:900}.source-meta{flex-wrap:wrap;gap:.5rem;margin-top:.65rem;display:flex}.source-meta-item{color:#52525b;background:#f4f4f5;border-radius:4px;padding:.2rem .5rem;font-size:.75rem}.source-desc{color:#71717a;margin-top:.5rem;font-size:.82rem;line-height:1.5}.no-sources{text-align:center;color:#16a34a;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;padding:2rem;font-weight:600}.recent-section{border-top:1px solid #000;margin-top:2.5rem;padding-top:2rem}.section-title{color:#000;margin-bottom:1rem;font-size:1.05rem;font-weight:800}.docs-table-wrapper{overflow-x:auto}.docs-table{border-collapse:collapse;width:100%;font-size:.85rem}.docs-table th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:#71717a;border-bottom:1px solid #000;padding:.65rem .9rem;font-size:.7rem}.docs-table td{border-bottom:1px solid #e4e4e7;padding:.85rem .9rem}.docs-table tr:hover td{background:#fafafa}.col-name strong{color:#000}.type-pill{color:#fff;background:#000;border-radius:4px;padding:.15rem .45rem;font-size:.72rem;font-weight:700}.status-pill{border-radius:4px;padding:.2rem .5rem;font-size:.72rem;font-weight:700}.status-pill.completed{color:#16a34a;background:#f0fdf4}.status-pill.failed{color:#dc2626;background:#fef2f2}.status-pill.scanning{color:#2563eb;background:#eff6ff}.status-pill.pending{color:#71717a;background:#f4f4f5}.col-time{color:#71717a;font-size:.8rem}.btn-open-preview{color:#000;cursor:pointer;background:#fff;border:1px solid #000;border-radius:4px;padding:.35rem .75rem;font-size:.78rem;font-weight:600;transition:background .15s}.btn-open-preview:hover{color:#fff;background:#000}@media (width<=768px){.metrics-bar{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.nav-wrapper{flex-direction:column;align-items:flex-start;gap:.75rem}.result-header,.source-header{flex-direction:column}.metrics-bar{grid-template-columns:1fr 1fr}}.app-root{flex-direction:column;min-height:100vh;display:flex}
