
:root{--bg:#06111a;--panel:#0b1a26;--panel2:#0d2331;--line:#264255;--fg:#e1ebf3;--muted:#809aac;--mint:#85ddb5;--red:#ec999d;--gray:#788a99;--amber:#e5bc7d;--cyan:#8bd6eb}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 90% 0,#0e2635 0,transparent 42%),var(--bg);color:var(--fg);font-family:"Noto Sans TC","Microsoft JhengHei","PingFang TC",system-ui,sans-serif;font-size:14px}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.4;cursor:not-allowed}.shell{padding:14px;max-width:1800px;margin:auto}.header{border:1px solid var(--line);border-radius:12px;background:#091925;display:grid;grid-template-columns:120px 1fr auto;align-items:center;gap:12px;min-height:72px;padding:10px 14px}.brand{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:6px}.logo{width:43px;height:43px;border-radius:9px;background:#0c3040;border:1px solid #367b95;color:#90e2f0;display:grid;place-items:center;font-weight:700;letter-spacing:.4px}.titleline{display:flex;gap:10px;align-items:baseline;justify-content:center;width:100%;max-width:100%}.nyx{font-family:"Segoe Script","Brush Script MT",cursive;font-size:34px;color:#a3e3f2;font-style:italic;font-weight:700;line-height:1}.title{font-weight:850;letter-spacing:.6px;font-size:22px}.rev{font-size:10px;color:#839eb1}.titleline{position:relative;width:max-content;margin:0 auto}.title-rev{position:absolute;left:calc(100% + 12px);bottom:4px;white-space:nowrap}.header-right{display:flex;align-items:center;justify-content:flex-end;gap:8px;position:relative;z-index:2}.titleblock{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;white-space:nowrap;text-align:center;min-width:0}.btn{border:1px solid #365668;background:#122736;color:#d4e9f2;padding:9px 13px;border-radius:7px}.btn:hover{border-color:#6ca7bd;background:#17394a}.btn.primary{border-color:#3d829b;background:#103748;color:#b7ecfa;font-weight:600}.btn.danger{border-color:#6e4046;color:#edaaaa}.btn.flat{background:transparent}.statusbar{margin:4px 1px;color:#87a3b4;font-size:12px;display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}.statusbar strong{color:#e5bc7d;font-weight:500}.section{margin-top:5px}#sections>.section:first-child{margin-top:-24px}#sections>.section:first-child .sectionhead{padding-bottom:2px}.sectionhead{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-weight:500;font-size:15px;padding:3px 0 9px;border-bottom:1px solid #244051}.sectionhead .name{color:#e7eef4}.gl{color:var(--mint)}.rl{color:var(--red)}.ns{color:#99adbc}.gi{color:var(--amber)}.stat{font-size:13px;font-variant-numeric:tabular-nums}.cards{margin-top:12px;display:flex;flex-wrap:wrap;gap:calc(8px * var(--card-zoom,1))}.store{width:calc(128px * var(--card-zoom,1));height:calc(76px * var(--card-zoom,1));flex:none;text-align:left;border:1px solid #6f8697;border-radius:8px;background:linear-gradient(180deg,rgba(18,35,48,.92) 0%,rgba(8,20,30,.92) 100%);padding:calc(9px * var(--card-zoom,1)) calc(10px * var(--card-zoom,1));display:flex;flex-direction:column;justify-content:space-between;position:relative;box-shadow:inset 0 2px 0 rgba(188,202,214,.48),0 0 0 1px rgba(120,138,153,.18)}.store::after{content:"";position:absolute;inset:0;border-radius:8px;pointer-events:none;box-shadow:inset 0 0 0 1px rgba(120,138,153,.18)}.store.green{border-color:#3c9777;background:transparent;box-shadow:inset 0 2px 0 #5dc59d}.store.green.filled{background:linear-gradient(180deg,#13523e 0%,#0b372b 100%);border-color:#65d3a0;box-shadow:inset 0 2px 0 #a2f0c8,0 0 0 1px rgba(100,215,166,.32)}.store.green.filled::after{box-shadow:inset 0 0 0 1px rgba(130,235,189,.18)}.store.blue{border-color:#389acb;background:linear-gradient(180deg,#102d44,#091b2a);box-shadow:inset 0 2px 0 #71c6f1}.store.purple{border-color:#a379e0;background:linear-gradient(180deg,#291c3a,#160e24);box-shadow:inset 0 2px 0 #c6a1f7}.store.blue .storename,.store.blue .storestate{color:#83d0f5}.store.purple .storename,.store.purple .storestate{color:#d1b6ff}.store.red{border-color:#d06c75;background:linear-gradient(180deg,rgba(44,18,24,.95) 0%,rgba(22,8,11,.95) 100%);box-shadow:inset 0 2px 0 #f19099,0 0 0 1px rgba(208,108,117,.2)}.store:hover{transform:translateY(-1px);filter:brightness(1.17)}.storename{font-size:calc(13px * var(--card-zoom,1));line-height:1.4;font-weight:500;color:#eef5fa;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.store.green .storename{color:#8cdab8}.store.red .storename{color:#ffb0b5}.storestate{font-size:calc(10px * var(--card-zoom,1));color:#b1c0cb;letter-spacing:.3px;font-weight:500}.green .storestate{color:#8cdab8}.red .storestate{color:#ffb0b5}.groupissue{margin-top:10px;border:1px solid #785b38;color:#e9bd79;background:#211f1a;border-radius:7px;padding:8px 12px;text-align:left}.backdrop{position:fixed;inset:0;background:#000a;z-index:30;display:none;align-items:center;justify-content:center;padding:16px}.backdrop.open{display:flex}.modal{width:min(850px,100%);max-height:92vh;overflow:auto;background:#0b1b28;border:1px solid #38566a;border-radius:13px;padding:18px;box-shadow:0 25px 90px #000a}.modal.wide{width:min(1100px,100%)}.modalhead{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-bottom:14px;border-bottom:1px solid var(--line);margin-bottom:14px}.modalhead h2{margin:0;font-size:18px;letter-spacing:.3px}.small{color:#8fa9b9;font-size:12px}.bad{color:var(--red)}.good{color:var(--mint)}.fields{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.field{background:#071520;border:1px solid #335365;border-radius:7px;padding:10px;color:#e3eef5;min-width:0}.fields .field{flex:1}.editarea{width:100%;min-height:260px;resize:vertical;white-space:pre-wrap;line-height:1.65}label{font-size:12px;color:#a7b9c7;display:flex;flex-direction:column;gap:5px}.actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:13px}.notice{border:1px solid #695535;background:#211e17;color:#edc98c;border-radius:8px;padding:10px 12px;margin:10px 0;font-size:13px}.message{background:#071520;border:1px solid #2f485a;border-radius:8px;padding:10px;white-space:pre-wrap;line-height:1.6;margin:9px 0}.listrow{border-bottom:1px solid #254050;padding:9px 0;display:flex;gap:8px;justify-content:space-between;align-items:center;flex-wrap:wrap}.tablewrap{max-height:430px;overflow:auto}.pill{font-size:11px;color:#b5c5d0;border:1px solid #38576a;border-radius:5px;padding:4px 7px}.tooltip{position:fixed;z-index:25;background:#102637;border:1px solid #57788b;box-shadow:0 10px 28px #000a;border-radius:9px;padding:12px;max-width:420px;width:max-content;max-height:65vh;overflow:auto;pointer-events:none;white-space:pre-wrap;line-height:1.5;display:none;font-size:12px}.hint{font-size:11px;color:#698699;margin-top:15px}.search{max-width:230px;width:100%}@media(max-width:760px){.header{grid-template-columns:74px 1fr auto;gap:8px;padding:8px}.titleblock{white-space:normal}.titleline{width:auto;justify-content:center;gap:6px}.title{font-size:18px}.nyx{font-size:28px}.logo{width:35px;height:35px}.title-rev{left:calc(100% + 6px);bottom:1px;font-size:9px}.btn{padding:8px 9px;font-size:12px}.sectionhead{gap:9px}.stat{font-size:11px}}

/* AI TESTING: aircraft-style square annunciator, beside Resend. */
.nyx-ai-test{width:67px;height:58px;flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:2px solid #585d67;border-radius:5px;background:linear-gradient(145deg,#242730,#090a0e 60%,#20232a);box-shadow:inset 0 0 0 2px #08090d,inset 0 2px 7px #000;color:#747780;padding:3px;line-height:1;vertical-align:middle}
.nyx-ai-test .nyx-ai-title{font-size:8px;font-weight:700;letter-spacing:.4px;white-space:nowrap}
.nyx-ai-test .nyx-ai-word{font-size:18px;font-family:Consolas,monospace;font-weight:800;letter-spacing:1px;border:1px solid #50525b;border-radius:2px;padding:5px 3px 3px;min-width:49px;text-align:center;color:#7e8087}
.nyx-ai-test.active{border-color:#89828f;box-shadow:inset 0 0 0 2px #100e15,0 0 9px #8648d080;background:linear-gradient(150deg,#282333,#100b1b 70%,#211a2e);color:#d6b7fa}
.nyx-ai-test.active .nyx-ai-word{color:#dfb3ff;border-color:#9565c6;text-shadow:0 0 9px #ba6aff;box-shadow:inset 0 0 7px #8244ad55,0 0 5px #8048bd77}
.nyx-ai-test:disabled{cursor:not-allowed;opacity:.75}
.nyx-ai-test.active:focus-visible{outline:2px solid #c39aff;outline-offset:3px}
/* Header: center only the main title; version label floats outside its width. */
@media(min-width:761px){.header{position:relative}.titleblock{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:max-content;max-width:calc(100% - 360px)}.header-right{grid-column:3}.brand{grid-column:1}}

.zoom-controls{display:flex;align-items:center;gap:3px;white-space:nowrap}
.zoom-controls .btn{padding:7px 8px;min-width:28px}
.zoom-value{min-width:47px;text-align:center;color:#b9deea;font-size:12px;font-variant-numeric:tabular-nums;cursor:pointer;border:0;background:transparent;padding:6px 1px}
.zoom-value:hover{color:#fff}
@media(max-width:760px){.zoom-controls{gap:1px}.zoom-controls .btn{padding:5px;min-width:24px}.zoom-value{min-width:37px;font-size:11px}}
.nyx-clean-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.nyx-clean-grid>label{min-width:0}.nyx-clean-raw,.nyx-clean-edit{min-height:300px;font-size:13px;line-height:1.7}.nyx-clean-raw{background:#06121b;color:#b2c9d5}@media(max-width:720px){.nyx-clean-grid{grid-template-columns:1fr}.nyx-clean-raw,.nyx-clean-edit{min-height:190px}}
.nyx-sync-label{font-size:12px;color:#e6bb7e;white-space:nowrap}.nyx-sync-label.ok{color:#81d8b4}.nyx-sync-label.error{color:#f1959e;font-weight:700}
.nyx-group-list{display:flex;flex-direction:column;gap:9px;max-height:50vh;overflow:auto}.nyx-group-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid #304c5e;background:#081823;padding:11px;border-radius:8px}.nyx-group-row button{min-width:82px}.nyx-group-row .small{overflow-wrap:anywhere}.nyx-group-selected{border-color:#56aa94}.nyx-bind-picker{max-height:43vh;overflow:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:7px;padding:10px;border:1px solid #365668;border-radius:7px}.nyx-bind-picker label{flex-direction:row;align-items:center;font-size:13px;color:#d8e9f0}.nyx-tag{color:#a5e2c8}.nyx-subtle{color:#9ab1c0}@media(max-width:640px){.nyx-group-row{grid-template-columns:1fr}}
/* Nyx 2.1 black theme + four-pane cleaning workspace */
:root{--bg:#000;--panel:#000;--panel2:#000;--line:#424242}
html,body,.shell,.header,.modal,.field,.message,.tooltip,.nyx-group-row,.nyx-group-list,.nyx-bind-picker,.notice,.groupissue{background-color:#000!important}
body{background:#000!important}
.header,.modal,.field,.message,.tooltip,.nyx-group-row,.nyx-bind-picker,.notice{border-color:#444}
.btn{background:#000;color:#e7e7e7}.btn:hover{background:#111}
.btn.primary{background:#080808}.store,.store.green.filled,.store.blue,.store.purple,.store.red{background:#000!important}
.store{box-shadow:inset 0 2px 0 rgba(188,202,214,.48)}
.nyx-clean-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.nyx-clean-grid>label{min-width:0;display:flex;flex-direction:column}
.nyx-clean-grid .editarea{min-height:325px;height:325px}
.nyx-clean-note{margin-top:7px;border:1px solid #444;border-radius:7px;padding:9px;background:#000;color:#becbd4;min-height:94px;max-height:175px;overflow:auto;font-size:12px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}
.nyx-clean-note b{color:#ffcb57}.nyx-clean-note .change{color:#ffbf47;font-weight:700}
.nyx-clean-readonly{background:#000!important;color:#bed4e1}
.nyx-color-readonly{white-space:pre-wrap;overflow:auto;overflow-wrap:anywhere;min-height:325px;height:325px}
.nyx-source-error{color:#ff5252;font-weight:800}
.nyx-ai-change{color:#ba86ff;font-weight:800}
/* Editable AI pane: the textarea keeps real text/caret; an aligned mirror colors changed rows. */
.nyx-ai-editor-wrap{position:relative;min-width:0}
.nyx-ai-editor-wrap .nyx-ai-highlight{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;white-space:pre-wrap;overflow-wrap:break-word;padding:10px;border:1px solid transparent;border-radius:7px;font:inherit;font-size:13px;line-height:1.7;color:#e3eef5;tab-size:8}
.nyx-ai-editor-wrap .nyx-ai-highlight .nyx-ai-modified{color:#ba86ff}.nyx-ai-editor-wrap .nyx-ai-highlight .nyx-ai-deleted{text-decoration:line-through}
.nyx-ai-editor-wrap #nyxAiText{position:relative;z-index:2;display:block;width:100%;margin:0;background:transparent!important;color:transparent!important;caret-color:#fff;-webkit-text-fill-color:transparent}
.nyx-ai-editor-wrap #nyxAiText::selection{background:rgba(144,106,213,.5);-webkit-text-fill-color:transparent}
@media(max-width:900px){.nyx-clean-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.nyx-clean-grid{grid-template-columns:1fr}}

/* Only manually validated cards use the brighter green; automatic cards remain unchanged. */
.store.manual-green{border-color:#39FF14!important;background:#075E32!important;box-shadow:inset 0 2px 0 #39FF14,0 0 0 1px rgba(57,255,20,.35)!important}
.store.manual-green .storename{color:#D7FFE3!important}
.store.manual-green .storestate{color:#A5FFBC!important}
.nyx-cockpit{display:inline-flex;align-items:center;gap:9px;background:linear-gradient(140deg,#16232a,#05080a)!important;border:1px solid #398ea1!important;border-radius:7px!important;box-shadow:inset 0 0 0 2px #182e37,0 0 8px #06526666;padding:7px 10px!important;white-space:nowrap}.nyx-cockpit .nyx-aircraft{height:22px;width:22px;color:#63dcec;flex:none}.nyx-cockpit-label{font-weight:700}.nyx-led{display:inline-block;width:10px;height:10px;min-width:10px;border-radius:50%;background:#42474c;border:1px solid #595f66;box-shadow:inset 0 1px 2px #0008}.nyx-led.on{background:#33f0aa;border-color:#55ffd0;box-shadow:0 0 9px #36f4b7,0 0 3px #36f4b7}.nyx-linkstrip{display:inline-flex;align-items:center;gap:0;border-radius:25px;border:1px solid #315667;background:#020607;padding:5px 10px;vertical-align:middle}.nyx-linkitem{display:inline-flex;align-items:center;gap:7px;padding:2px 10px;white-space:nowrap}.nyx-linkitem+.nyx-linkitem{border-left:1px solid #45515a}.nyx-linkitem svg{width:20px;height:20px;fill:none;stroke:#63dcec;stroke-width:1.8}.nyx-link-action{display:inline-flex;align-items:center;gap:8px;color:#d7eef5;border:0;background:transparent;padding:0;cursor:pointer}.nyx-link-action:hover{color:#80e4ff}.nyx-line-icon{font-size:7px;color:#31ed92;border:1.5px solid #31ed92;border-radius:50%;width:23px;height:21px;display:grid;place-items:center;font-weight:800}.nyx-ai-action{color:#c69aff}.nyx-sparkle{font-size:27px;line-height:19px;color:#9b74ff}.statusbar{align-items:center}.nyx-sync-label{margin-left:auto}@media(max-width:720px){.nyx-linkstrip{max-width:100%;flex-wrap:wrap}.nyx-linkitem{padding:4px 6px}.nyx-linkitem+.nyx-linkitem{border-left:0}} 
.statusbar{justify-content:flex-end}.statusbar>span:first-child:not(.nyx-linkstrip){margin-right:auto}.nyx-linkstrip{margin-left:auto!important;border:0!important;border-radius:0!important;background:transparent!important;padding:0!important;box-shadow:none!important}.nyx-linkitem{flex-direction:column;justify-content:center;align-items:center;gap:2px;min-width:110px}.nyx-link-top{display:flex;align-items:center;justify-content:center;gap:7px;min-height:25px}.nyx-link-sub{display:block;font-size:10px;color:#8da4ae;line-height:1.25;text-align:center;white-space:nowrap;max-width:200px;overflow:hidden;text-overflow:ellipsis;margin:0!important}.nyx-link-sub.ok{color:#81d8b4}.nyx-link-sub.error{color:#f1959e}.nyx-linkitem+.nyx-linkitem{border-left:0!important}
.nyx-cleanup-control{display:inline-flex;align-items:center;gap:6px;border:1px solid #555;border-radius:8px;background:#111;color:#ddd;padding:7px 10px;font-size:12px;white-space:nowrap}.nyx-cleanup-control[data-paused="true"]{color:#f5cd85;border-color:#a47732}.nyx-cleanup-control:disabled{opacity:.65}
