:root{--bg:#f5f6f8;--panel:#fff;--text:#1b2230;--muted:#667085;--line:#dde1e8;--accent:#2563eb;--accent-text:#fff;--accent-soft:#e8f0fe;--ok:#15753f;--ok-bg:#e3f5ea;--warn:#8f5200;--warn-bg:#fdf0d8;--bad:#b42318;--bad-bg:#fde8e6;--info:#1d5fa8;--info-bg:#e5effc;--mark:#ffe58a;--radius:8px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body,html{background:var(--bg);color:var(--text);margin:0;font:14px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1{margin:0 0 12px;font-size:20px}h2{margin:20px 0 8px;font-size:16px}h3{margin:18px 0 8px;font-size:14px}.muted,small{color:var(--muted)}.mono,code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}.topbar{background:var(--panel);border-bottom:1px solid var(--line);z-index:10;align-items:center;gap:16px;padding:8px 20px;display:flex;position:sticky;top:0}.topbar nav{gap:4px;display:flex}.topbar nav a{color:var(--text);border-radius:6px;padding:6px 12px}.topbar nav a.router-link-active{background:var(--accent-soft);color:var(--accent);font-weight:600}.topbar .who{text-align:right;flex-direction:column;line-height:1.2}.topbar .brand,.topbar .who{color:var(--text);display:flex}.topbar .brand{align-items:center;gap:8px;font-size:16px}.topbar .brand:hover{text-decoration:none}.logo{width:auto;max-width:100%;display:block}.login-brand{flex-direction:column;align-items:center;gap:6px;margin-bottom:14px;display:flex}.login-brand h1{margin:0}.spacer{flex:1}main{max-width:1700px;margin:0 auto;padding:20px}button,input,select,textarea{font:inherit;color:inherit}input[type=email],input[type=password],input[type=search],input[type=text],select,textarea{background:var(--panel);border:1px solid var(--line);border-radius:6px;width:100%;padding:6px 9px}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}textarea{resize:vertical;field-sizing:content;min-height:2.4em;max-height:16em}textarea:disabled{color:var(--muted);resize:none;background:0 0;border-color:#0000}button{cursor:pointer;border:1px solid var(--line);background:var(--panel);border-radius:6px;padding:6px 12px}button.primary,button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);color:var(--accent-text);font-weight:600}button.danger{color:var(--bad)}button.ghost{color:var(--muted);background:0 0;border-color:#0000}button.ghost:hover:not(:disabled),button.link{color:var(--accent)}button.small{padding:2px 8px;font-size:12.5px}button.link{background:0 0;border:0;padding:2px 0;font-size:12.5px}label.check{align-items:center;padding-bottom:6px;color:var(--text)!important;flex-direction:row!important;gap:6px!important;font-size:14px!important}label.check input{width:auto}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.toolbar{flex-wrap:wrap;align-items:end;gap:10px;margin-bottom:12px;display:flex}.toolbar label{color:var(--muted);flex-direction:column;gap:3px;font-size:12px;display:flex}.toolbar .grow{flex:1;min-width:220px}.toolbar label.inline,label.inline{color:var(--muted);flex-direction:row;align-items:center;gap:8px;font-size:14px;display:flex}label.inline select{width:auto;min-width:160px}.toolbar select{width:auto;min-width:140px}.seg{border:1px solid var(--line);background:var(--panel);border-radius:6px;display:inline-flex;overflow:hidden}.seg button{background:0 0;border:0;border-radius:0}.seg button+button{border-left:1px solid var(--line)}.seg button.on{background:var(--accent-soft);color:var(--accent);font-weight:600}.lp{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.lp-label{color:var(--muted);margin-right:4px}.chip{border-radius:16px;padding:3px 12px}.chip.on{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}.badge{background:var(--info-bg);color:var(--info);white-space:nowrap;border-radius:10px;padding:0 7px;font-size:11.5px;font-weight:600;display:inline-block}.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.warn{background:var(--warn-bg);color:var(--warn)}.badge.bad{background:var(--bad-bg);color:var(--bad)}.badge.gray{background:var(--line);color:var(--muted)}.alert{background:var(--info-bg);color:var(--info);border-radius:6px;margin:8px 0;padding:8px 12px}.alert.error{background:var(--bad-bg);color:var(--bad)}.alert.warn{background:var(--warn-bg);color:var(--warn)}.grid-wrap{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);overflow-x:auto}table.t{border-collapse:collapse;width:100%}table.t th{text-align:left;color:var(--muted);background:var(--bg);white-space:nowrap;padding:8px 10px;font-size:12px;position:sticky;top:0}table.t td,table.t th{border-bottom:1px solid var(--line)}table.t td{vertical-align:top;padding:6px 8px}table.t tr:last-child td{border-bottom:0}td.col-app,th.col-app{width:120px;min-width:110px}td.col-label,th.col-label{width:230px;min-width:170px;max-width:280px}.ua{flex-direction:column;gap:3px}.ua,.ua-row,.ul{display:flex}.ua-row{align-items:center;gap:6px;font-size:12.5px}.ua-dot{border-radius:50%;flex:none;width:8px;height:8px}.ul{overflow-wrap:anywhere;flex-direction:column;gap:1px}.ul,.ul-name{font-size:12.5px}.ul-name{font-weight:600}.ul-name,.ul-screen{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.ul-app,.ul-screen{color:var(--muted);font-size:11.5px}.ul-detail{border-top:1px solid var(--line);max-height:200px;margin-top:4px;padding-top:4px;overflow:auto}.ul-row{grid-template-columns:62px 1fr;gap:6px;padding:1px 0;display:grid}td.lang{min-width:230px}.cell-status{min-height:14px;color:var(--muted);font-size:11px}.cell-status.saved{color:var(--ok)}.cell-status.dirty{color:var(--warn)}.cell-status.error{color:var(--bad)}.grid-wrap table.t td{border-bottom:1px solid #eceff4;padding:10px 12px}.grid-wrap table.t tbody tr:hover td{background:#fafbfd}.grid-wrap td.lang{width:35%}.tf{resize:none;background:0 0;border:1px solid #0000;border-radius:4px;width:calc(100% + 12px);min-height:1.9em;margin:-4px -6px;padding:4px 6px;line-height:1.45}.tf:hover:not(:disabled){background:#f1f4f9}.tf:focus{background:var(--panel);border-color:var(--accent);outline:0;box-shadow:0 0 0 3px #2563eb26}.tf:disabled{color:var(--text);opacity:1}.tf::placeholder{color:#b9822a;opacity:.75;font-style:italic}.tf-wrap.empty .tf{background:#fff8e8}.focus .tf,.tf-wrap.empty .tf:focus{background:var(--panel)}.cell-info{opacity:0;transition:opacity .15s}.focus .cell-info,.tf:focus~.cell-status .cell-info,td:hover .cell-info{opacity:1}.focus .tf{border-color:var(--line);width:100%;margin:0;padding:10px 12px}.focus .tf-wrap.empty .tf{background:#fff8e8}.focus .focus-source .tf{background:0 0;border-color:#0000}.pager{justify-content:center;align-items:center;gap:10px;margin:14px 0}.overlay,.pager,.sg,.sg-body,.sg-head,.sg-trans,.sgs,.us,.us-app,.us-body,.usage{display:flex}.us{flex-direction:column;gap:3px}.us-app{align-items:baseline;gap:6px}.us-app>.badge{flex:none}.us-body{flex-wrap:wrap;gap:2px 10px}.us-body,.us-detail,.usage{word-break:break-all}.us-detail{border:1px solid var(--line);background:var(--bg);border-radius:6px;max-height:220px;padding:6px 8px;overflow:auto}.usage{align-items:baseline;gap:6px;margin-bottom:2px}.ugroup{border:1px solid var(--line);border-radius:6px;margin-bottom:6px;padding:6px 10px}.ugroup>summary{cursor:pointer}mark.diff{background:var(--mark);color:inherit;border-radius:3px;padding:0 1px}.big-text,.diff-text,.ec-text,.focus-source-text,.imp .txt{white-space:pre-wrap}.sgs{flex-direction:column;gap:8px}.sg{border:1px solid var(--line);border-left:4px solid var(--info);background:var(--panel);border-radius:6px;justify-content:space-between;align-items:flex-start;gap:12px;padding:8px 12px}.sg.chosen{border-left-color:var(--ok);background:var(--ok-bg)}.sg-body{flex-direction:column;flex:1;gap:4px;min-width:0}.sg-head{align-items:center;gap:6px}.sg-text{font-size:15px;font-weight:500}.sg-trans{color:var(--muted);flex-direction:column;gap:1px;font-size:13px}.sg-trans b{color:var(--text);text-transform:uppercase;margin-inline-end:4px;font-size:11px}.sg>button{flex:none}.overlay{z-index:50;background:#0f172a66;justify-content:center;align-items:flex-start;padding:40px 16px;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--panel);border-radius:10px;width:min(760px,100%);padding:20px;box-shadow:0 12px 40px #0f172a40}.modal header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.modal header h1{margin:0}.row{align-items:center;gap:8px;margin-bottom:8px;display:flex}.row>select{flex:none;width:150px}.field{flex-direction:column;gap:3px;margin-bottom:10px;display:flex}.field>span{color:var(--muted);font-size:12px}.hist{border:1px solid var(--line);border-radius:6px;max-height:220px;overflow:auto}.hist div{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:10px;padding:6px 10px;display:flex}.hist div:last-child{border-bottom:0}.hist-all{max-height:340px}.focus-foot,.focus-nav,.hist-all>div,.hist-meta{align-items:center}.hist-body{flex-direction:column;gap:2px;min-width:0;display:flex}.hist-meta{gap:8px;display:flex}.hist-change{word-break:break-word}.focus{max-width:920px;margin:0 auto}.focus-nav{justify-content:space-between;gap:16px;margin:6px 0 12px;display:flex}.focus-nav button{min-width:130px;padding:8px 14px}.focus-count{text-align:center;color:var(--muted);flex:1}.focus-count b{color:var(--text);font-size:16px}.bar{background:var(--line);border-radius:3px;height:5px;margin-top:4px;overflow:hidden}.bar>div{background:var(--accent);height:100%;transition:width .2s}.bar.done>div{background:var(--ok)}.bar.low>div{background:#e0a030}.focus-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:20px 24px}.focus-source{background:var(--accent-soft);border-radius:8px;margin-bottom:18px;padding:14px 16px}.focus-source-text{margin-top:4px;font-size:22px;font-weight:600;line-height:1.35}.focus-source textarea{background:0 0;font-size:20px;font-weight:600}.focus-target{margin-bottom:14px}.focus-target>label{margin-bottom:4px;font-weight:600;display:block}textarea.big{min-height:3.2em;padding:10px 12px;font-size:17px}.focus-usages{border-top:1px solid var(--line);margin-top:6px;padding-top:10px}.focus-foot{justify-content:space-between;gap:12px;margin-top:10px}.focus-foot,.tabs{flex-wrap:wrap;display:flex}.tabs{gap:6px;margin:12px 0}.tabs button.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.imp td{font-size:13px}.imp .path{word-break:break-all;min-width:180px}.imp .txt{min-width:220px}.imp-main td{padding-top:10px;border-bottom:0!important}.imp-sub td{background:#fafbfc;padding-bottom:12px}.sub-title{color:var(--info);margin-bottom:6px;font-size:12px;font-weight:600}.old{color:var(--muted);text-decoration:line-through}.imp-cols{grid-template-columns:minmax(300px,2fr) 3fr;align-items:start;gap:16px;display:grid}@media (width<=900px){.imp-cols{grid-template-columns:1fr}}.big-text{margin:2px 0 12px;font-size:19px;font-weight:600;line-height:1.35}.old-box{color:var(--muted);font-size:15px;font-weight:500}.choices{flex-direction:column;gap:6px;display:flex}.choices button{text-align:left;padding:9px 12px}.choices button.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.sticky-bar{background:var(--panel);border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:14px;margin:16px -20px -20px;padding:12px 20px;display:flex;position:sticky;bottom:0;box-shadow:0 -4px 12px #0f172a0f}.confirm-sum{flex-direction:column;gap:4px;margin:0 0 12px;padding:0;list-style:none;display:flex}.confirm-list>summary{cursor:pointer;color:var(--accent);margin-bottom:8px}.stats{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:8px;display:grid}.stat{text-align:left;flex-direction:column;display:flex}.stat b{font-size:28px;line-height:1.1}.stat span{color:var(--muted)}.check>summary,.pick,.stat-link,.todo-item{cursor:pointer}.stat-link:hover,.todo-item:hover{border-color:var(--accent)}.projects{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px;display:grid}.project-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.project-head h3{margin:0;font-size:17px}.project-stats{gap:22px;margin:10px 0 12px;display:flex}.project-stats div{flex-direction:column;display:flex}.project-stats b{font-size:22px;line-height:1.1}.project-stats span{color:var(--muted);font-size:12px}.pbar{grid-template-columns:84px 1fr 44px 62px;align-items:center;gap:8px;padding:3px 0;display:grid}.pbar .bar{height:7px;margin:0}.pbar-link,.pbar-val{text-align:right}.pbar-link{font-size:12.5px}.ok-text{color:var(--ok)}.todo{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;display:grid}.todo-item{text-align:left;flex-direction:column;align-items:flex-start;gap:4px;padding:14px 16px;display:flex}.todo-item b{font-size:30px;line-height:1.1}.prog{grid-template-columns:110px 1fr 170px 150px;align-items:center;gap:12px;padding:5px 0;display:grid}.prog .bar{height:8px;margin:0}@media (width<=800px){.prog{grid-template-columns:1fr;gap:2px}}.cards-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px;display:grid}.cards-grid.two{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}.group{margin-bottom:12px}.group-head{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px}.ec,.ec-actions,.ec-head,.ec-line,.group-head{display:flex}.ec{border:1px solid var(--line);background:var(--panel);border-radius:8px;flex-direction:column;gap:4px;height:100%;padding:10px 12px}.ec-head{justify-content:space-between;align-items:center}.ec-line{align-items:baseline;gap:8px}.ec-line b{text-transform:uppercase;color:var(--muted);min-width:22px;font-size:11px}.ec-line.hl{background:var(--bad-bg);border-radius:4px;margin:0 -4px;padding:1px 4px}.ec-actions{flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:6px}.pick{display:block}.pick.on .ec{border-color:var(--ok);box-shadow:0 0 0 1px var(--ok)}.radio{color:var(--muted);align-items:center;gap:4px;font-size:12px;display:inline-flex}.check{margin-bottom:10px;padding:12px 16px}.export td,.export th{text-align:center}.export td:first-child,.export th:first-child{text-align:left}.login{max-width:380px;margin:12vh auto}.login h1{text-align:center;font-size:24px}.toasts{z-index:100;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:16px;right:16px}.toast{background:var(--text);color:#fff;border-radius:6px;padding:8px 14px;box-shadow:0 4px 16px #0f172a40}.toast.error{background:var(--bad)}
