:root{--bg:#f4f2ee;--panel:#fff;--ink:#26231f;--muted:#6d675e;--line:#d9d4ca;--accent:#2f5d62;--accent-ink:#fff;--focus:#b7791f}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.topbar{display:flex;flex-wrap:wrap;gap:10px 24px;align-items:center;justify-content:space-between;padding:12px 24px;background:var(--panel);border-bottom:1px solid var(--line)}
.topbar h1{margin:0;font-size:20px;font-weight:600}
.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.sep{width:1px;height:24px;background:var(--line)}
main{max-width:1280px;margin:0 auto;padding:16px 24px 48px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:16px 20px;margin-bottom:16px}
.panel h2{margin:0 0 12px;font-size:16px}
button{font:inherit;padding:6px 12px;border:1px solid var(--line);background:#faf9f6;border-radius:6px;cursor:pointer;color:var(--ink)}
button:hover{background:#eee9df}
button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
button.primary:hover{background:#244a4e}
button.sm{padding:2px 8px;font-size:13px}
button.danger:hover{background:#f6dcd8}
:focus-visible{outline:2px solid var(--focus);outline-offset:1px}
input[type=text],input[type=number],select,textarea{font:inherit;width:100%;padding:6px 8px;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--ink)}
label{display:block;font-size:13px;color:var(--muted)}
label input{margin-top:3px;color:var(--ink)}
.meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.tabs{display:flex;gap:6px;align-items:center;margin-bottom:12px;flex-wrap:wrap}
.tabs [role=tab]{border-radius:6px}
.tabs [aria-selected=true]{background:var(--accent);color:#fff;border-color:var(--accent)}
.tabs-opts{margin-left:auto;display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center}
.chk{display:flex;gap:6px;align-items:center;color:var(--ink);font-size:14px}
.tabs-opts select{width:auto;font-size:14px}
.chk input{width:auto;margin:0}
.table-scroll{overflow-x:auto}
.edit-table{border-collapse:collapse;width:100%;min-width:900px}
.edit-table th{background:#ece8df;font-size:13px;text-align:center;padding:8px;border:1px solid var(--line)}
.edit-table td{border:1px solid var(--line);padding:6px;vertical-align:top}
.edit-table td.nr{text-align:center;font-weight:700;width:56px;vertical-align:middle;font-size:18px}
.edit-table td.gfx{width:250px;padding:6px}
.gfx-btn{display:block;position:relative;width:100%;height:42px;padding:0;border:1px dashed #aaa;background:#fff;overflow:hidden;font-size:13px;color:var(--muted)}
.gfx-btn .frag{position:absolute;top:0;bottom:0;background-repeat:no-repeat;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}
.gfx-btn .frag:hover{outline:1px solid var(--accent);outline-offset:-1px}
.gfx-btn .frag.drag{cursor:ew-resize;outline:2px solid var(--focus);outline-offset:-2px}
.frag-title{margin-top:5px;font-size:12px;color:var(--muted)}
.frag-list{font-size:12px}
.frag-row{display:flex;flex-wrap:wrap;align-items:center;gap:2px 3px;margin-top:3px}
.frag-row label{display:flex;align-items:center;gap:2px;font-size:12px;white-space:nowrap}
.frag-row label input{width:46px;margin:0;padding:2px 3px;font-size:12px}
.frag-row button.sm{padding:1px 5px;font-size:12px}
.frag-acts{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}
.frag-acts button.sm{font-size:12px}
.edit-table td.grub{width:150px}
.edit-table td.dat{width:140px}
.edit-table td.faza{width:100px}
.edit-table td.act{width:150px}
.act-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.unit-row{display:flex;gap:3px;margin-top:4px}
.edit-table textarea{resize:vertical;min-height:64px}
.hint{color:var(--muted);font-size:13px}
.block{margin-top:12px}
.block textarea{margin-top:3px}
/* output sheet */
.sheet{background:#fff;color:#000;font-family:"Times New Roman",Times,serif;font-size:12pt}
#previewHost{border:1px solid var(--line);padding:24px;max-width:21cm;margin:0 auto;box-shadow:0 1px 6px rgba(0,0,0,.08)}
.sheet .doc-meta{margin:0 0 10px}
.sheet .doc-meta p{margin:2px 0}
.sheet table{border-collapse:collapse;width:100%;table-layout:fixed}
.sheet th,.sheet td{border:1px solid #000;padding:3px 5px;vertical-align:middle;font-size:11pt}
.sheet th{font-weight:bold;text-align:center;font-size:10pt;padding:3px 2px;hyphens:auto;-webkit-hyphens:auto;overflow-wrap:anywhere}
.sheet td.c{text-align:center}
.sheet td.txt{text-align:left;white-space:pre-wrap;word-wrap:break-word}
.sheet td.g{padding:0;height:34px;position:relative}
.sheet td.g .fill{position:absolute;top:0;bottom:0;background-repeat:no-repeat;background-position:left top;}
.sheet .opis{margin-top:12px;white-space:pre-wrap}
.sheet .opis h3{font-size:12pt;margin:0 0 4px}
/* modal */
.modal{position:fixed;inset:0;background:rgba(30,25,20,.5);display:flex;align-items:center;justify-content:center;z-index:10;padding:16px}
.modal[hidden]{display:none}
.modal-box{background:#fff;border-radius:8px;max-width:980px;width:100%;max-height:90vh;overflow:auto;padding:16px 20px}
.modal-head{display:flex;justify-content:space-between;align-items:center}
.modal-head h2{margin:0;font-size:17px}
.modal-actions{margin:10px 0}
.pat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.pat-item{padding:6px;text-align:center;background:#fff}
.pat-item img{display:block;width:100%;height:36px;object-fit:fill;border:1px solid #ccc}
.pat-item span{display:block;margin-top:4px;font-size:12px;line-height:1.3;color:var(--text,#222)}
.gfx-name{font-size:12px;line-height:1.3;margin:3px 0 2px;color:var(--muted)}
.pat-item.sel{outline:2px solid var(--accent)}
/* słownik opisów */
.opis-tools{margin-top:4px}
.sl-box{max-width:820px}
.sl-tools{display:grid;gap:8px;margin-bottom:6px}
.sl-new{display:flex;gap:6px;flex-wrap:wrap}
.sl-new input{flex:1 1 220px}
#slStatus{min-height:1.4em;margin:6px 0}
.sl-group{margin-top:12px}
.sl-group h3{margin:0 0 6px;font-size:14px}
.sl-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px}
.sl-item{text-align:left;font-size:13px;line-height:1.3}
.sl-mine{display:flex;gap:4px;align-items:center}
.sl-mine .sl-item{flex:1}
/* podpowiedź szrafury */
.sugg{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;margin-top:6px;font-size:12px;color:var(--muted)}
.sugg-img{display:block;width:60px;height:14px;object-fit:fill;border:1px solid #ccc}
.sugg-name{color:var(--ink)}
/* kontrola poprawności */
.checks{background:#fff;border:1px solid var(--line);border-radius:6px;padding:8px 12px;margin:0 0 12px}
.checks[hidden]{display:none}
.checks h3{margin:0 0 4px;font-size:14px}
.checks ul{margin:0;padding:0;list-style:none;font-size:13px}
.checks li{padding:4px 8px;border-radius:4px;margin-top:3px}
.checks li.warn{background:#fdf0d5;border:1px solid #d69e2e;color:#7a4b00}
.checks li.info{background:#f1f1f1;color:var(--muted)}
.edit-table select.cell-warn{outline:2px solid #d69e2e;outline-offset:-1px;background:#fff8e6}
@media (max-width:760px){main{padding:8px}.topbar{padding:8px 12px}}
