/* Phần thêm cho app thật (ngoài core.css của bản clone): đăng nhập, ô nhập sửa được, đổi bản dữ liệu */
#gate{min-height:100vh;display:grid;place-items:center;background:var(--page);padding:16px}
#gate[hidden]{display:none}
.gbox{width:min(440px,100%);background:var(--panel);border-radius:12px;box-shadow:0 12px 30px rgba(16,24,40,.12);padding:24px}
.gbox .gl{display:flex;align-items:center;gap:10px;margin-bottom:16px;font-size:18px}
.gbox .gl .logo{width:34px;height:34px;border-radius:8px;background:var(--g);display:grid;place-items:center}
.gbox h1{font-size:20px;margin:0 0 6px}
.gbox .gs{color:var(--muted);margin:0 0 14px}
.gbox .gw2{background:#FFFAEB;border:1px solid #FEDF89;border-radius:8px;padding:10px;font-size:13px}
.gbox form{display:flex;flex-direction:column;gap:12px}
.gbox label{display:flex;flex-direction:column;gap:5px;font-weight:500}
.gbox input{height:38px;border:1px solid var(--line-2);border-radius:8px;padding:0 10px;font-weight:400}
.gbox .btn{justify-content:center;height:40px}
.gerr{color:var(--red);background:var(--red-soft);border-radius:8px;padding:8px 10px}
.wsc{display:grid;gap:10px}
.wsc button{display:flex;flex-direction:column;gap:4px;text-align:left;border:1px solid var(--line-2);border-radius:10px;padding:14px;background:var(--panel);cursor:pointer}
.wsc button:hover{border-color:var(--g);background:var(--g-soft)}
.wsc span{color:var(--muted);font-size:13px}
.top .wsb{height:28px;border-radius:14px;border:1px solid rgba(255,255,255,.6);background:rgba(255,255,255,.15);color:#fff;padding:0 10px;display:inline-flex;align-items:center;gap:4px;cursor:pointer;font-weight:600;white-space:nowrap}
.top .wsb.that{background:#fff;color:var(--g-dark)}
.top .wsb svg.i{width:14px;height:14px}
.top .ddw .pop{color:var(--text)}
.top button.av{cursor:pointer;padding:0}
/* ô nhập sửa được */
.ctl.ed{background:var(--panel);padding:0 10px}
.ctl.ed:focus-within{border-color:var(--g);box-shadow:0 0 0 3px var(--g-soft)}
.ctl.ed input,.ctl.ed select,.ctl.ed textarea{border:0;outline:0;background:transparent;width:100%;min-width:0;height:32px;text-align:left;padding:0}
.ctl.ed.num input{text-align:right}
.ctl.ed.ta{padding:6px 10px}
.ctl.ed textarea{height:auto;resize:vertical;min-height:44px}
.ctl.ed.err{border-color:var(--red)}
.ctl.ed.chk{gap:8px;cursor:pointer}
.ctl.ed.chk input{width:16px;height:16px;flex:none}
.ferr{color:var(--red);font-size:12px}
table.ged td.ed{padding:3px 4px}
table.ged td.ed input,table.ged td.ed select{width:100%;min-width:70px;height:30px;border:1px solid var(--line-2);border-radius:6px;padding:0 6px;background:var(--panel)}
table.ged td.ed input.numi{text-align:right}
table.ged td.ed input:focus,table.ged td.ed select:focus{outline:0;border-color:var(--g)}
/* mũi tên ở ô như AMIS: hiện khi rê / bấm vào ô hoặc menu đang mở; chừa sẵn chỗ bên phải ô (không che chữ, không bị khung bảng cắt ở cột cuối) */
table.ged td.ed{position:relative}
table.ged td.ed:has(.cpdw){padding-right:22px}
table.ged td.ed .cpdw{position:absolute;right:3px;top:50%;transform:translateY(-50%);z-index:3;display:none}
table.ged td.ed:hover .cpdw,table.ged td.ed:focus-within .cpdw,table.ged td.ed .cpdw:has(.pop){display:block}
table.ged td.ed .cpd{width:16px;height:16px;padding:0;border:1px solid var(--line-2);border-radius:50%;background:#EEF0F3;color:var(--muted);display:flex;align-items:center;justify-content:center;cursor:pointer}
table.ged td.ed .cpd:hover{background:var(--line-2);color:var(--text)}
table.ged td.ed .cpd svg{width:11px;height:11px}
table.ged td.ed .cpdw .pop{min-width:260px}
.toast.bad{border-left-color:var(--red)}
.btn.dng{background:var(--red);border-color:var(--red);color:#fff}
.btn:disabled{opacity:.5;cursor:not-allowed}
.sysg{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:12px}
/* ô ngày dd/mm/yyyy + nút lịch (form.js dateCtl) */
.dti{display:flex;align-items:center;gap:2px;position:relative;width:100%;min-width:0}
.dti .dtx{flex:1;min-width:92px;text-align:left}
.dtb{border:0;background:transparent;padding:0 2px;margin:0;cursor:pointer;color:var(--muted);display:flex;align-items:center;flex:none}
.dtb:hover{color:var(--g)}
.dtb:disabled{cursor:default;opacity:.5}
.dti .dtp{position:absolute;right:0;bottom:0;width:1px!important;height:1px!important;min-width:0!important;opacity:0;pointer-events:none;padding:0!important;border:0!important}
.tb label .dti{width:auto;border:1px solid var(--line-2);border-radius:6px;padding:0 6px;background:var(--panel)}
.tb label .dti .dtx,.dd-f .dti .dtx{border:0;outline:0;background:transparent;width:96px;height:28px;color:var(--text)}
.dd-f .dti{width:auto}
/* ô số gõ chữ (form.js numOk) */
input.numi.bad{color:var(--red)}
table.ged td.ed input.numi.bad{border-color:var(--red)}
/* cảnh báo vàng của ô số (form.js parseNum: "12.000" / "12,000" — hiểu thế nào) */
.fwarn,.fhint{color:#B54708;font-size:12px;margin-top:4px}
input.numi.warn{color:#B54708}
table.ged td.ed input.numi.warn{border-color:#F5B53F;background:#FFFAEB}
