:root{--ink:#17261f;--muted:#718078;--green:#1c9a62;--green-dark:#13784b;--mint:#e4f4ec;--line:#e2e9e5;--paper:#f4f7f5;--white:#fff;--amber:#e7a743;--red:#dc675e;--shadow:0 18px 45px rgba(30,62,47,.07)}
*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;max-width:100%;overflow-x:hidden}body{font-family:"DM Sans",sans-serif;background:radial-gradient(circle at 85% 0,#e5f4ec 0,transparent 28%),var(--paper);color:var(--ink);max-width:100%;overflow-x:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.eyebrow{font-size:9px;letter-spacing:.16em;font-weight:800;color:var(--green)}[hidden]{display:none!important}
aside{position:fixed;inset:0 auto 0 0;width:220px;background:#10271e;color:#fff;padding:28px 18px;display:flex;flex-direction:column;z-index:20}.logo{font:800 19px Manrope,sans-serif;letter-spacing:-.04em;padding:0 12px 25px}.logo span{color:#56d89b}aside nav{display:grid;gap:7px}aside nav button{border:0;background:transparent;color:#88a094;border-radius:11px;padding:12px;display:flex;gap:11px;align-items:center;text-align:left;font-size:11px}aside nav button:hover,aside nav button.active{background:#1d3e30;color:#fff}aside nav button.active{box-shadow:inset 3px 0 #58d79c}.privacy{margin-top:auto;border:1px solid #315345;border-radius:14px;padding:14px;display:flex;gap:10px}.privacy>i{width:27px;height:27px;border-radius:50%;background:#1f4a37;display:grid;place-items:center;color:#58d79c;font-style:normal}.privacy b{font-size:10px}.privacy p{font-size:8px;color:#86a095;margin-top:4px;line-height:1.45}.back{padding:20px 11px 0;font-size:9px;color:#8aa195}
main{margin-left:220px;padding:40px clamp(22px,4vw,58px) 70px;max-width:1580px}header,.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}header h1{font:800 clamp(29px,4vw,41px) Manrope,sans-serif;letter-spacing:-.045em;margin:7px 0}header p,.panel-head p{font-size:11px;color:var(--muted)}.header-actions{display:flex;gap:8px}header button,.upload{border:1px solid var(--line);background:#fff;border-radius:10px;padding:11px 14px;font-size:10px;font-weight:800}.upload{background:var(--green);color:#fff;border-color:var(--green);cursor:pointer}.upload input{display:none}
.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:26px 0}.metrics article{background:#fff;border:1px solid var(--line);border-radius:15px;padding:18px 19px;display:grid;min-height:118px;box-shadow:0 8px 25px rgba(36,71,54,.04)}.metrics article>span,.score-card>div>span{font-size:9px;color:var(--muted)}.metrics strong{font:800 28px Manrope,sans-serif;margin:8px 0}.metrics small{font-size:8px;color:#9aa59f}.score-card{display:flex!important;grid-template-columns:1fr auto!important;align-items:center}.score-card sup{font-size:10px;color:#a1aba6}.ring{width:58px;height:58px;border-radius:50%;background:conic-gradient(var(--green) 0deg,#e9eeeb 0);position:relative}.ring:after{content:"";position:absolute;inset:7px;border-radius:50%;background:#fff}
.panel{background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:17px;box-shadow:var(--shadow)}.workspace{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(300px,.82fr);gap:13px}.source-panel,.rules-panel,.preview-panel,.analysis-grid>.panel{padding:22px}.panel-head h2{font:800 18px Manrope,sans-serif;letter-spacing:-.02em;margin:5px 0}.panel-head button{border:0;background:#f2f5f3;color:#66746d;border-radius:8px;padding:8px 10px;font-size:9px}.panel-head>div:last-child{display:flex;gap:5px}.drop-zone{border:1px dashed #bdd2c7;background:#f5fbf8;border-radius:11px;padding:12px;text-align:center;margin:18px 0 10px;color:var(--green);font-size:10px}.drop-zone.drag{background:#ddf4e8;border-color:var(--green)}.drop-zone small{color:var(--muted);margin-left:6px}textarea{width:100%;height:278px;resize:vertical;border:1px solid var(--line);border-radius:10px;padding:14px;background:#fbfcfb;color:#244035;font:10px/1.65 ui-monospace,SFMono-Regular,Consolas,monospace;outline:0}textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px var(--mint)}.source-foot{display:flex;justify-content:space-between;align-items:center;margin-top:10px;font-size:8px;color:var(--muted)}.source-foot label{display:flex;align-items:center;gap:8px}.source-foot select{border:1px solid var(--line);background:#fff;border-radius:6px;padding:5px;font-size:8px}.rules{display:grid;margin-top:16px}.rules label{display:flex;gap:11px;padding:12px 2px;border-bottom:1px solid #edf1ee;cursor:pointer}.rules input{accent-color:var(--green);width:15px}.rules span{display:grid}.rules b{font-size:10px}.rules small{font-size:8px;color:var(--muted);margin-top:3px}.primary{width:100%;border:0;background:var(--green);color:#fff;border-radius:10px;padding:13px;font-size:10px;font-weight:800;margin-top:18px}.primary:hover{background:var(--green-dark);transform:translateY(-1px)}
.preview-panel{margin-top:13px}.preview-actions{display:flex;gap:6px}.preview-actions button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:9px 12px;font-size:9px}.preview-actions button:last-child{background:var(--ink);color:#fff}.preview-actions button:disabled,.export-actions button:disabled{opacity:.4;cursor:not-allowed}.table-wrap{overflow:auto;max-width:100%;margin-top:17px;border:1px solid var(--line);border-radius:10px;max-height:430px}table{width:100%;border-collapse:collapse;font-size:9px;min-width:600px}th{position:sticky;top:0;background:#f0f5f2;text-align:left;padding:11px;font-size:8px;color:#5d7167;letter-spacing:.05em}td{padding:10px 11px;border-top:1px solid #edf1ee;white-space:nowrap}tr:hover td{background:#f9fbfa}td.invalid{background:#fff1ee;color:#b84e46}.empty{text-align:center;color:#91a097;padding:30px!important}.preview-foot{display:flex;justify-content:space-between;padding-top:12px;font-size:8px;color:var(--muted)}
.analysis-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:13px;margin-top:13px}.column-profile{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-top:17px}.column-card{border:1px solid var(--line);border-radius:11px;padding:13px}.column-card header{display:flex;align-items:center;justify-content:space-between}.column-card h3{font-size:10px}.type-badge{font-size:7px;color:var(--green);background:var(--mint);border-radius:20px;padding:4px 6px}.column-card p{font-size:8px;color:var(--muted);margin:9px 0}.profile-bar{height:6px;border-radius:6px;background:#edf1ef;overflow:hidden}.profile-bar i{display:block;height:100%;background:var(--green);border-radius:6px}.column-card footer{display:flex;justify-content:space-between;margin-top:7px;font-size:7px;color:#919d97}.issue-list{display:grid;gap:8px;margin-top:17px}.issue{border:1px solid var(--line);border-radius:10px;padding:12px;display:flex;gap:10px}.issue>i{width:27px;height:27px;border-radius:8px;background:#fff4e3;color:var(--amber);display:grid;place-items:center;font-style:normal}.issue.fixed>i{background:var(--mint);color:var(--green)}.issue b{font-size:9px}.issue p{font-size:8px;color:var(--muted);margin-top:3px}.export-panel{margin-top:13px;padding:24px;display:flex;align-items:center;justify-content:space-between;gap:28px}.export-panel h2{font:800 20px Manrope,sans-serif;margin:5px 0}.export-panel p{font-size:9px;color:var(--muted)}.export-actions{display:flex;gap:8px}.export-actions button{width:130px;border:1px solid var(--line);background:#fff;border-radius:11px;padding:12px;text-align:left;display:grid}.export-actions button:hover:not(:disabled){border-color:#9cc5af;transform:translateY(-2px)}.export-actions button span{font-weight:800;color:var(--green);font-size:12px}.export-actions button b{font-size:9px;margin:5px 0}.export-actions button small{font-size:7px;color:var(--muted)}.toast{position:fixed;right:22px;bottom:22px;background:var(--ink);color:#fff;border-radius:10px;padding:12px 16px;font-size:9px;opacity:0;transform:translateY(12px);transition:.25s;z-index:100}.toast.show{opacity:1;transform:none}
@media(max-width:1120px){aside{width:76px;padding:22px 10px}.logo{font-size:0}.logo:after{content:"td";font:800 17px Manrope,sans-serif;color:#58d79c}aside nav button span,.privacy,.back{display:none}aside nav button{justify-content:center;font-size:16px}main{margin-left:76px}.metrics{grid-template-columns:repeat(2,1fr)}.workspace,.analysis-grid{grid-template-columns:1fr}.export-panel{align-items:flex-start;flex-direction:column}.export-actions{width:100%}.export-actions button{flex:1;width:auto}}
@media(max-width:700px){aside{position:static;width:100%;height:62px;display:flex;flex-direction:row;align-items:center}aside .logo{padding:0;margin-right:auto}aside nav{display:flex}aside nav button{padding:8px}aside nav button:nth-child(3){display:none}main{margin:0;padding:24px 14px 55px}header{display:grid}.header-actions{width:100%;margin-top:7px}.header-actions>*{flex:1;text-align:center}.metrics{grid-template-columns:1fr 1fr}.workspace>*{min-width:0}.source-panel,.rules-panel,.preview-panel,.analysis-grid>.panel{padding:17px}.column-profile{grid-template-columns:1fr}.export-actions{display:grid;grid-template-columns:1fr 1fr}.export-actions button:last-child{grid-column:1/-1}.preview-foot{gap:12px}.score-card{display:flex!important}}
@media(max-width:440px){header h1{font-size:29px}.metrics{grid-template-columns:1fr}.metrics article{min-height:100px}.panel-head{display:grid}.panel-head>div:last-child,.preview-actions{justify-self:start}.drop-zone{display:grid}.drop-zone small{margin:4px 0 0}.source-foot{align-items:flex-start;gap:8px;flex-direction:column}.export-actions{grid-template-columns:1fr}.export-actions button,.export-actions button:last-child{grid-column:1;width:100%}.table-wrap{max-width:100%}}
.score-card>div:first-child{display:grid}
.app-view[hidden]{display:none!important}.project-identity{max-width:100%}
@media(max-width:700px){aside nav button:nth-child(3){display:flex}}
