.val-body{background:#f4f7fa}.val-main{padding:40px 0 90px}.val-stage{font-size:.68rem;font-weight:900;letter-spacing:.08em;color:#8a6410;background:#fff4d9;padding:8px 10px;border-radius:999px}.val-hero{display:grid;grid-template-columns:1.25fr .55fr;gap:44px;align-items:center;padding:18px 0 34px}.val-hero h1{font-size:clamp(3rem,7vw,6rem);line-height:.92;letter-spacing:-.06em;color:#0D1B2A;margin:.15em 0}.val-hero h1 span{color:#1E3A8A}.val-hero p{max-width:780px;color:#667085;font-size:1.05rem}.local-card{display:flex;flex-direction:column;gap:8px;background:#eafaf4;border:1px solid #b8e8d6;border-radius:22px;padding:24px;color:#17624e}.val-card{background:#fff;border:1px solid #dce5ec;border-radius:24px;padding:26px;margin:18px 0}.section-title{display:flex;gap:14px;align-items:flex-start}.section-title h2{margin:2px 0;color:#0D1B2A}.section-title p{margin:4px 0;color:#667085}.step{display:grid;place-items:center;min-width:38px;height:38px;border-radius:10px;background:#0D1B2A;color:#fff;font-weight:900}.file-box{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:290px;border:1.5px dashed #b9c7d5;border-radius:20px;background:#fbfcfd;margin-top:24px;text-align:center;padding:24px}.file-box.loaded{border-color:#8ed8bd;background:#f7fffb}.side{font-size:.67rem;letter-spacing:.12em;font-weight:900;color:#7b8794}.file-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:16px;background:#edf2ff;color:#1E3A8A;font-size:1.3rem;font-weight:900;margin:14px}.file-name{font-weight:900;color:#0D1B2A;font-size:1.05rem}.file-meta{color:#667085;margin:6px 0 18px}.file-btn{display:inline-flex;padding:12px 18px;border:1px solid #cfd9e4;border-radius:12px;background:#fff;color:#0D1B2A;font-weight:800;cursor:pointer}.file-btn input{display:none}.sheet-wrap{width:min(500px,100%);margin-top:18px;text-align:left}.sheet-wrap span,.rule-row label span{display:block;font-size:.72rem;font-weight:800;color:#586575;margin-bottom:6px}.sheet-wrap select,.rule-row select,.rule-row input,.search-row input{width:100%;border:1px solid #cfd9e4;border-radius:11px;padding:11px;background:#fff}.sample-row{display:flex;justify-content:space-between;align-items:center;gap:20px;background:#f4f7fa;border-radius:16px;padding:16px 18px;margin-top:14px}.sample-row div{display:grid;gap:4px}.sample-row span{color:#667085;font-size:.9rem}.sample-row button,.rules-actions button,.action-row button,.result-actions button{border:1px solid #cfd9e4;border-radius:11px;background:#fff;padding:11px 15px;font-weight:850;color:#0D1B2A}.rules-head,.results-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.rules-actions,.result-actions{display:flex;gap:8px;flex-wrap:wrap}.rules-list{display:grid;gap:10px;margin:24px 0}.rule-row{display:grid;grid-template-columns:1fr 1fr 1.3fr auto;gap:10px;align-items:end;background:#f7f9fb;border:1px solid #e2e8ef;border-radius:15px;padding:14px}.remove-rule{height:43px;width:43px;border:1px solid #e1b8b8;border-radius:10px;background:#fff;color:#a33131;font-size:1.2rem}.empty{padding:20px;border:1px dashed #cdd7e1;border-radius:12px;color:#667085}.action-row{display:flex;gap:10px;margin-top:18px}.action-row .primary{background:#1E3A8A;color:#fff;border-color:#1E3A8A}.error{margin-top:14px;padding:13px 15px;border-radius:12px;background:#fff0f0;color:#a33131;font-weight:700}.metrics{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:22px 0}.metric{background:#f5f7f9;border-radius:15px;padding:18px}.metric strong{display:block;color:#1E3A8A;font-size:1.7rem}.metric span{font-size:.74rem;color:#667085}.filters{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.filter-btn{border:1px solid #cfd9e4;border-radius:999px;background:#fff;padding:8px 12px;font-weight:800}.filter-btn.active{background:#0D1B2A;color:#fff}.search-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;margin:12px 0}.search-row span{font-size:.78rem;color:#667085}.table-wrap{overflow:auto;border:1px solid #dce5ec;border-radius:16px}.issues-table{width:100%;border-collapse:collapse;min-width:760px}.issues-table th{background:#f1f4f7;color:#667085;font-size:.68rem;letter-spacing:.05em;text-align:left;padding:12px}.issues-table td{padding:12px;border-top:1px solid #e8edf2;font-size:.86rem;color:#334155}.issue-badge{display:inline-block;border-radius:999px;padding:5px 8px;font-size:.68rem;font-weight:900;background:#fff3d8;color:#8a6410}.issue-badge.unique{background:#e9f0ff;color:#244d9c}.issue-badge.required{background:#ffecec;color:#a33131}.table-note{font-size:.75rem;color:#778292}.empty-cell{text-align:center;color:#7b8794!important;padding:28px!important}@media(max-width:900px){.val-hero{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,1fr)}.rule-row{grid-template-columns:1fr 1fr}.remove-rule{width:100%}.rules-head,.results-head{flex-direction:column}}@media(max-width:560px){.metrics{grid-template-columns:1fr}.rule-row{grid-template-columns:1fr}.sample-row,.beta-strip{align-items:flex-start;flex-direction:column}.result-actions{width:100%}.result-actions button{width:100%}}

.license-panel{display:grid;grid-template-columns:1fr auto;gap:28px;align-items:center;background:#fff;border:1px solid #dce5ec;border-radius:23px;padding:24px;margin-bottom:18px}
.license-panel h2{margin:4px 0 7px;font-size:1.45rem}.license-panel p{color:#667085;margin:5px 0}
.license-side{display:grid;justify-items:end;gap:8px;min-width:230px}.license-side strong{color:#0D1B2A;font-size:.82rem}
.license-side button{border:1px solid #1E3A8A;border-radius:11px;background:#1E3A8A;color:#fff;padding:10px 14px;font-weight:850;cursor:pointer}
.license-side button:disabled{opacity:.5;cursor:not-allowed}.license-side .link-btn{border:0;background:transparent;color:#687486;padding:4px;font-size:.68rem}
.license-badge{border-radius:999px;padding:6px 9px;font-size:.64rem;font-weight:900;letter-spacing:.09em}
.license-badge.demo{background:#fff3d8;color:#8a6410}.license-badge.pro{background:#e8f8f1;color:#087a59}
.license-message{min-height:18px;font-size:.73rem}.license-message.good{color:#087a59}.license-message.warn{color:#87620b}.license-message.bad{color:#9a2d2d}
.demo-gate-note{margin:12px 0 0;padding:11px 13px;background:#fff5dc;color:#806014;border-radius:11px;font-size:.72rem;font-weight:750}
.demo-gate-note.pro{background:#e9f8f2;color:#087a59}
.file-box.demo-locked{opacity:.82}.file-box.demo-locked .file-btn{cursor:not-allowed;background:#f3f5f7;color:#7b8794}
.file-btn input:disabled{cursor:not-allowed}.result-actions button:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:720px){.license-panel{grid-template-columns:1fr}.license-side{justify-items:start;min-width:0}}


.structure-panel{margin:14px 0 0;padding:18px;border:1px solid #cfe0e8;border-radius:16px;background:#f8fbfd}
.structure-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.structure-head h3{margin:3px 0 6px;color:#0D1B2A}.structure-head p{margin:0;color:#667085}
.structure-head button,.structure-manual button{border:1px solid #cfd9e4;border-radius:11px;background:#fff;padding:10px 13px;font-weight:850;color:#0D1B2A;cursor:pointer}
.structure-select-wrap{display:block;margin-top:14px}.structure-select-wrap span,.structure-manual label span{display:block;font-size:.72rem;font-weight:800;color:#586575;margin-bottom:6px}
.structure-select-wrap select,.structure-manual input{width:100%;border:1px solid #cfd9e4;border-radius:11px;padding:11px;background:#fff}
.structure-manual{display:grid;grid-template-columns:minmax(160px,240px) auto;gap:10px;align-items:end;margin-top:10px}
.structure-notice{margin:12px 0 0;padding:10px 12px;border-radius:10px;background:#e9f8f2;color:#087a59;font-size:.75rem;font-weight:750}
@media(max-width:720px){.structure-head{flex-direction:column}.structure-manual{grid-template-columns:1fr}.structure-head button,.structure-manual button{width:100%}}
