:root{--card:#fff;--line:#e6e9ee;--soft:#eff3f6;--text:#343a40;--body:#6c757d;--muted:#98a6ad;--accent:#06b6d4;--accent-d:#0891b2;--link:#0e7490;--ok:#1abc9c;--err:#f1556c;--warn:#f7b84b;--info:#37cde6;--purple:#6658dd;--radius:.25rem;--card-shadow:0 .75rem 6rem rgba(56,65,74,.03)}main{max-width:1200px}.tablewrap,.table-responsive{background:var(--card);border-radius:var(--radius);margin:0 0 18px}form{margin:0 0 14px}form.inline{display:inline-block;margin:0 6px 6px 0}form.narrow{max-width:380px}label{display:block;margin:0 0 14px;color:var(--text);font-size:.85rem;font-weight:600}label.chk{display:inline-flex;gap:8px;align-items:center;margin:0 16px 10px 0;font-weight:400}input,select,textarea{display:block;width:100%;margin-top:6px;padding:.45rem .9rem;background:#fff;color:var(--body);border:1px solid #ced4da;border-radius:.2rem;font:inherit;font-weight:400;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{outline:0;border-color:#b1bbc4;box-shadow:0 0 0 .15rem rgba(6,182,212,.15)}input[type=checkbox],input[type=radio]{display:inline-block;width:auto;margin:0;accent-color:var(--accent)}input[type=color]{height:40px;padding:2px;max-width:120px}input[type=file]{padding:.35rem}textarea{font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}small{display:block;margin-top:4px;color:var(--muted);font-weight:400}fieldset{border:1px solid var(--line);border-radius:.25rem;margin:0 0 16px;padding:12px 16px}legend{float:none;width:auto;color:var(--text);font-size:.85rem;font-weight:600;padding:0 6px;margin:0}button,a.button{display:inline-block;background:var(--accent);color:#fff;border:1px solid var(--accent);border-radius:.2rem;padding:.45rem .9rem;font:inherit;font-weight:500;cursor:pointer;text-decoration:none;box-shadow:0 2px 6px 0 rgba(6,182,212,.5);transition:all .15s}button:hover,a.button:hover{background:var(--accent-d);border-color:var(--accent-d);color:#fff}button:disabled{opacity:.6;cursor:default}button.link{background:none;border:0;box-shadow:none;color:#6e768e;padding:0;font-weight:400}button.link:hover{background:none;color:var(--accent)}form.secondary button,button.secondary,a.button.secondary{background:var(--soft);border-color:var(--soft);color:var(--text);box-shadow:none}form.secondary button:hover,button.secondary:hover,a.button.secondary:hover{background:#e3eaef;border-color:#e3eaef;color:var(--text)}td form.inline{margin:0 4px 4px 0}td button{padding:.28rem .7rem;font-size:.8rem}.btnrow{display:flex;gap:8px;flex-wrap:wrap}label.check{display:flex;gap:10px;align-items:flex-start;font-weight:400;text-align:left;margin:6px 0}label.check input{width:auto;flex:none;margin-top:4px}section .table-responsive,.card pre{background:#f8f9fa;border:1px solid var(--line);border-radius:.25rem;padding:12px;overflow:auto;font-size:12.5px;white-space:pre-wrap;color:var(--text)}pre.log{max-height:520px}code{background:var(--soft);color:#e83e8c;padding:1px 5px;border-radius:3px}.flash{border:0;border-radius:.25rem;padding:.75rem 1.25rem;margin:0 0 18px}.flash.ok{background:rgba(22,168,138,.18);color:#0f7a65}.flash.err{background:rgba(229,83,106,.18);color:#bd2b42}.muted{color:var(--muted)}.keyset{color:var(--ok);font-weight:600}input.has-key{border-color:var(--ok);background:rgba(22,168,138,.06)}input.has-key::placeholder{color:#0f7a65;opacity:.8}section,.card{background:#fff;border:0;border-radius:.25rem;box-shadow:0 .75rem 6rem rgba(56,65,74,.03);padding:1.5rem;margin:0 0 24px;display:block}.card h2{margin:0;font-size:1.05rem}.card h3{font-size:.95rem;margin:16px 0 8px}.card>h3:first-child{margin-top:0}.cardhead{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}.lead{font-size:1rem;font-weight:400;color:var(--text);max-width:760px}.pill{display:inline-block;padding:.3em .7em;border-radius:50rem;background:var(--soft);color:var(--body);font-size:.75rem;font-weight:600;line-height:1.2}.pill.on,.pill.ok{background:rgba(22,168,138,.18);color:#0f7a65}.pill.err{background:rgba(229,83,106,.18);color:#bd2b42}.pill.todo{background:rgba(240,173,60,.2);color:#b0761b}.pill.off{background:var(--soft);color:var(--muted)}.pill.info{background:rgba(59,130,246,.15);color:#2357a8}.tag{display:inline-block;font-size:.72rem;padding:.2em .6em;border-radius:50rem;background:rgba(106,90,224,.12);color:var(--purple);margin:0 0 2px 4px;font-weight:600}.note{padding:.75rem 1.1rem;border-radius:.25rem;margin:10px 0;font-size:.875rem}.note.info{background:rgba(59,130,246,.12);color:#2357a8}.note.warn{background:rgba(240,173,60,.18);color:#9a6312}.note code,ol.steps code{font-size:12.5px}small.warn{color:#b0761b}.lastcheck{font-size:.82rem;margin:4px 0 0}.lastcheck.ok{color:var(--ok)}.lastcheck.err{color:var(--err)}details.guide{background:#fff;border:1px dashed #ced4da;border-radius:.25rem;padding:12px 16px;margin:0 0 18px}details.guide summary,details.adv summary{cursor:pointer;font-weight:600;color:var(--link)}details.guide h4{margin:14px 0 6px;font-size:.92rem}details.adv{margin:12px 0 0}details.adv summary{color:var(--muted);font-weight:500}details.more{margin-top:6px}details.more summary{cursor:pointer;color:var(--muted);font-size:.8rem}details.more form{margin:6px 0 0}details.more small{display:block}ol.steps{margin:8px 0 12px;padding-left:22px}ol.steps li{margin:0 0 6px;line-height:1.5}.listhead{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 16px}section.empty{text-align:center;padding:32px}.grid2{display:grid;grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));gap:0 16px}.actions{display:grid;grid-template-columns:repeat(auto-fit, minmax(250px, 1fr));gap:20px}.actions .card{margin:0}ul.setup{list-style:none;padding:0;margin:14px 0 20px;max-width:820px}ul.setup li{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:.25rem;margin:0 0 10px;background:#fff;box-shadow:0 .75rem 6rem rgba(56,65,74,.03)}ul.setup li div{flex:1}ul.setup .dot{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;background:var(--soft)}ul.setup li.ok .dot{background:rgba(22,168,138,.18);color:var(--ok)}ul.setup li.err .dot{background:rgba(229,83,106,.18);color:var(--err)}ul.setup li.todo .dot{background:rgba(240,173,60,.2);color:#b0761b}ul.setup a.go{white-space:nowrap}.codebox{display:inline-block;background:var(--soft);border:1px dashed var(--accent);border-radius:.25rem;padding:10px 16px;margin:4px 0 8px}.codebox .code{font:700 22px ui-monospace,Menlo,monospace;color:var(--link);letter-spacing:.05em}img.thumb,.thumb{width:54px;height:96px;object-fit:cover;border-radius:.25rem;background:var(--soft);display:flex;align-items:center;justify-content:center}.plat{display:inline-block;font-size:.82rem;margin:0 0 3px;text-decoration:none}.plat.ok{color:var(--ok)}.plat.err{color:var(--err)}.plat.off{color:var(--muted)}small.when{display:inline-block;margin-top:6px;white-space:nowrap;font-weight:600;color:var(--text)}form.revise{margin:6px 0 0}form.revise textarea{min-width:220px;font:13px/1.4 inherit}form.revise button{margin-top:4px}ol.hooks{margin:10px 0 0;padding:0;list-style:none;display:grid;gap:8px;max-width:640px}ol.hooks li{display:flex;gap:12px;align-items:center;justify-content:space-between;background:#f8f9fa;border:1px solid var(--line);border-radius:.25rem;padding:10px 12px;font-size:.9rem;line-height:1.4;color:var(--text)}ol.hooks li form{margin:0;flex:none}ol.hooks li.chosen{border-color:var(--ok);background:rgba(22,168,138,.08)}ol.hooks li.dim{opacity:.45}.topicrow{display:grid;grid-template-columns:24px 2fr 2fr 1fr 1fr 1fr auto;gap:8px;align-items:center;margin:0 0 8px}.topicrow input,.topicrow select{margin:0}.topicrow label.inline{margin:0}.topicrow .num{color:var(--muted);text-align:right}.topicrow label.chk{margin:0;font-size:.8rem}@media(max-width: 760px){.topicrow{grid-template-columns:1fr}.topicrow .num{text-align:left}}.rubrow{display:grid;grid-template-columns:1fr 110px 36px;gap:8px;align-items:center;margin-bottom:8px}.rubrow input{margin:0}.rubrow .pct{display:flex;align-items:center;gap:6px;margin:0}.rubrow .del{font-size:18px;color:var(--muted)}fieldset.rubrics .btnrow{display:flex;align-items:center;gap:12px;flex-wrap:wrap}ul.modules{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill, minmax(250px, 1fr));gap:12px}ul.modules li{background:#fff;border:1px solid var(--line);border-left:3px solid var(--ok);border-radius:.25rem;padding:12px 14px}ul.modules li.off{opacity:.6;border-left-color:#ced4da}article.report{color:var(--body)}article.report h2,article.report h3,article.report h4{margin:16px 0 6px}article.report li{margin:3px 0}.preview{position:relative;width:270px;height:480px;background:#000 linear-gradient(160deg, #222, #000);border-radius:10px;overflow:hidden;margin:6px 0 20px}.preview .cap{position:absolute;bottom:130px;left:10px;right:10px;text-align:center;font-weight:700;font-size:16px;color:#fff;text-shadow:0 2px 0 #000}.preview .big{position:absolute;top:90px;left:0;right:0;text-align:center;font:700 54px/1 Impact,"Bebas Neue",sans-serif}.preview .sub{position:absolute;top:152px;left:0;right:0;text-align:center;font:700 10px sans-serif;letter-spacing:.3em}.preview .brandname{position:absolute;top:30px;left:0;right:0;text-align:center;font:700 9px sans-serif;letter-spacing:.32em}.logoprev{position:relative;width:216px;height:384px;border-radius:12px;margin:10px 0 14px;background:linear-gradient(160deg, #30475e, #1b2430)}.logoprev img{position:absolute;max-width:none}.logoprev[data-pos=tr] img{top:5%;right:4.5%}.logoprev[data-pos=tl] img{top:5%;left:4.5%}.logoprev[data-pos=br] img{bottom:13%;right:4.5%}.logoprev[data-pos=bl] img{bottom:13%;left:4.5%}dialog.modal{display:none;position:fixed;inset:0;margin:auto;width:min(680px,94vw);height:fit-content;max-height:90vh;overflow:auto;background:#fff;color:var(--body);border:0;border-radius:.3rem;padding:0;box-shadow:0 .5rem 1rem rgba(0,0,0,.15)}dialog.modal[open]{display:block}dialog.modal::backdrop{background:rgba(50,58,70,.55)}dialog.modal form{margin:0;padding:0 24px 20px}.modalhead{display:flex;justify-content:space-between;align-items:center;margin:0 -24px 18px;padding:16px 24px;background:var(--soft);border-bottom:1px solid var(--line)}.modalhead h2{margin:0;font-size:1.05rem}.modalfoot{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}button.close{background:none;border:0;box-shadow:none;padding:0 4px;font-size:1.4rem;line-height:1;color:var(--muted)}button.close:hover{background:none;color:var(--text)}progress.progress{display:block;width:100%;max-width:520px;height:8px;border:0;border-radius:99px;overflow:hidden;background:var(--soft);appearance:none;-webkit-appearance:none}progress.progress::-webkit-progress-bar{background:var(--soft);border-radius:99px}progress.progress::-webkit-progress-value{background:var(--ok);border-radius:99px}progress.progress::-moz-progress-bar{background:var(--ok);border-radius:99px}progress[hidden]{display:none}details.pw summary{display:inline-block;list-style:none;color:var(--text);background:var(--soft);border-radius:.2rem;padding:.28rem .7rem;font-size:.8rem;font-weight:500;cursor:pointer}details.pw summary::-webkit-details-marker{display:none}details.pw[open] summary{background:var(--accent);color:#fff}details.pw form{display:grid;gap:6px;min-width:220px}.navbar-custom button.nav-link,.navbar-custom .button-menu-mobile{background:none;border:0;box-shadow:none;border-radius:0;color:rgba(255,255,255,.85);height:70px;padding:0 15px}.navbar-custom button.nav-link:hover,.navbar-custom .button-menu-mobile:hover{background:none;color:#fff}.navbar-custom .button-menu-mobile{width:60px}.authentication-bg{background:linear-gradient(135deg, var(--accent) 0%, var(--purple) 100%);min-height:100vh}.authentication-bg form button{width:100%;padding:10px}
