:root{--silver: #c3c7cb;--silver-hi: #f4f5f7;--silver-mid: #9a9da1;--silver-lo: #56585c;--navy: #000080;--blue: #1084d0;--term-bg: #0a0a14;--term-green: #33ff66;--term-cyan: #5ef3ff;--term-pink: #ff6ec7;--stamp-red: #c22a35}*{box-sizing:border-box}html,body{margin:0;min-height:100vh}body{font-family:DotGothic16,Courier New,monospace;font-size:15px;color:#1a1a1a;background:#6aa3e0 url(/bliss.svg) center / cover no-repeat fixed;display:flex;flex-direction:column}#crt{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:999;background:repeating-linear-gradient(0deg,rgba(0,0,0,.07) 0 1px,transparent 1px 3px)}.hidden{display:none!important}#topbar{display:flex;align-items:center;justify-content:space-between;padding:10px 18px;background:#245edb;border-bottom:2px solid #173a94;box-shadow:0 2px 6px #00000059;position:relative;z-index:1}#logo{display:flex;align-items:center;gap:12px}.stamp{width:44px;height:44px;background:var(--stamp-red);color:#fff;display:grid;place-items:center;font-size:26px;border-radius:4px;transform:rotate(-3deg);box-shadow:inset 0 0 0 2px #ffffff59,2px 2px #0006}.logo-text{font-size:22px;letter-spacing:3px;line-height:1.05;color:#fff}.logo-text .jp{font-size:11px;letter-spacing:2px;color:#bcd2ff}#topbar-right{display:flex;align-items:center;gap:10px}#clock{font-size:14px;color:#fff;letter-spacing:2px;padding:4px 12px;background:#173a94;border:1px solid #3a76f0}.btn-link{display:inline-block;text-decoration:none;white-space:nowrap}#btn-coffee{font-size:13px;padding:4px 10px}#app{flex:1;width:100%;max-width:760px;margin:0 auto;padding:20px 14px 30px;position:relative;z-index:1}.screen{display:none}.screen.active{display:block}.screen .win{margin-bottom:16px}.win{background:var(--silver);color:#111;border:2px solid;border-color:#fff var(--silver-lo) var(--silver-lo) #fff;box-shadow:inset 1px 1px 0 var(--silver-hi),inset -1px -1px 0 var(--silver-mid),5px 5px #00000073}.win-title{display:flex;justify-content:space-between;align-items:center;background:linear-gradient(90deg,var(--navy),var(--blue));color:#fff;padding:4px 8px;font-size:14px;letter-spacing:1px;-webkit-user-select:none;user-select:none}.win-title.warn{background:linear-gradient(90deg,#7c1010,#c22a35)}.win-btns i{display:inline-grid;place-items:center;width:18px;height:16px;margin-left:3px;background:var(--silver);color:#111;font-style:normal;font-size:10px;border:1px solid;border-color:#fff var(--silver-lo) var(--silver-lo) #fff}.win-body{padding:12px}.pitch{margin:2px 0 14px;line-height:1.7}.pitch .jp{color:#4a4a55;font-size:13px}.seo-copy{color:#6a6a78;font-size:12px;line-height:1.7;margin:0 0 14px}.hint{color:#4a4a55;font-size:13px;line-height:1.7;margin:10px 0 0}.hint .jp{color:#6a6a78}.btn{font:inherit;background:var(--silver);color:#111;padding:6px 14px;border:2px solid;border-color:#fff var(--silver-lo) var(--silver-lo) #fff;box-shadow:inset 1px 1px 0 var(--silver-hi),inset -1px -1px 0 var(--silver-mid);cursor:pointer}.btn:active{border-color:var(--silver-lo) #fff #fff var(--silver-lo);box-shadow:inset 1px 1px 0 var(--silver-mid);transform:translate(1px,1px)}.btn:disabled{cursor:default;color:gray;text-shadow:1px 1px 0 #fff;border-color:#fff var(--silver-lo) var(--silver-lo) #fff;box-shadow:none}.btn-big{font-size:18px;padding:12px 22px;letter-spacing:1px}.coffee-row{margin-top:18px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}.coffee-row .hint{margin:0}.btn .jp{font-size:13px;color:#333}input[type=text],input[type=password],input:not([type]){font:inherit;background:#fff;color:#111;border:2px solid;border-color:var(--silver-lo) #fff #fff var(--silver-lo);padding:5px 8px;min-width:0}input:focus{outline:2px dotted #000;outline-offset:-4px}input[readonly]{background:#ececf0}label{display:flex;flex-direction:column;gap:4px;font-size:12px;letter-spacing:1px;color:#333}.menu-block{display:flex;flex-direction:column;gap:10px;align-items:flex-start}.pw-inline{flex-direction:row;align-items:center;gap:8px}.divider{display:flex;align-items:center;gap:10px;color:#555;font-size:12px;margin:16px 0 12px}.divider:before,.divider:after{content:"";flex:1;height:2px;border-top:1px solid var(--silver-mid);border-bottom:1px solid #fff}.join-row{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.join-row label{flex:1;min-width:140px}.join-row .btn{flex:0 0 auto}.led-row{display:flex;align-items:center;gap:10px;font-size:14px;letter-spacing:1px;margin-bottom:12px;color:#222}.led{width:12px;height:12px;border-radius:50%;flex:0 0 auto;border:1px solid #000;background:#444}.led.wait{background:#ffd23e;box-shadow:0 0 7px #ffd23e;animation:blink 1s steps(2,start) infinite}.led.ok{background:#2ee65a;box-shadow:0 0 9px #2ee65a}.led.off{background:#666}@keyframes blink{50%{opacity:.3}}.blink{animation:blink 1.1s steps(2,start) infinite}.field{margin-bottom:8px}.link-row{display:flex;gap:8px}.link-row input{flex:1;font-size:13px}.chk-row{display:flex;flex-direction:row;align-items:center;gap:8px;font-size:13px;margin-bottom:10px;cursor:pointer}.chk-row input{width:15px;height:15px;accent-color:var(--navy)}.kv{display:flex;justify-content:space-between;gap:10px;font-size:13px;padding:5px 8px;margin-bottom:6px;background:#b2b6ba;border:2px solid;border-color:var(--silver-lo) #fff #fff var(--silver-lo)}.kv span{color:#333}.kv b{color:#000;letter-spacing:1px}#drop-zone{border:2px dashed #55565c;background:#b2b6ba;padding:22px 12px;text-align:center;transition:background .1s,border-color .1s}#drop-zone p{margin:0 0 10px;line-height:1.7;color:#333}#drop-zone p .jp{font-size:13px;color:#555}#drop-zone.drag{background:#d6e4ff;border-color:var(--blue)}.file-list{display:flex;flex-direction:column;gap:10px;margin-top:12px}.file-row{background:#d6d8dc;border:2px solid;border-color:var(--silver-lo) #fff #fff var(--silver-lo);padding:8px}.file-head{display:flex;align-items:baseline;gap:10px;margin-bottom:6px;min-width:0}.file-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#111}.file-size{color:#444;font-size:12px;flex:0 0 auto}.file-status{flex:0 0 auto;font-size:12px;letter-spacing:1px;color:navy}.file-status.done{color:#0a7d2c}.file-status.fail{color:#a01010}.bar{height:16px;background:#1a1a24;border:2px solid;border-color:var(--silver-lo) #fff #fff var(--silver-lo);padding:2px}.bar-fill{height:100%;width:0%;background:repeating-linear-gradient(90deg,#2ee65a 0,#2ee65a 6px,#0f3d1f 6px,#0f3d1f 8px);transition:width .15s linear}.file-row .btn{margin-top:8px;font-size:13px;padding:4px 10px}.total-row{margin-top:10px;font-size:12px;color:#444;text-align:right}.term{background:var(--term-bg);color:var(--term-green);height:170px;overflow-y:auto;padding:8px 10px;font-size:13px;line-height:1.6;border:2px solid;border-color:var(--silver-lo) #fff #fff var(--silver-lo)}.term .line{word-break:break-all}.term .warn{color:var(--term-pink)}.term .ok{color:var(--term-cyan)}#statusbar{display:flex;align-items:center;gap:10px;background:var(--silver);color:#111;border-top:2px solid #fff;padding:3px 8px;font-size:13px;position:relative;z-index:1}.status-cell{flex:0 0 auto;padding:2px 10px;border:2px solid;border-color:var(--silver-lo) #fff #fff var(--silver-lo);letter-spacing:1px}#marquee{flex:1;color:navy}#modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:grid;place-items:center;z-index:1000}.modal-win{width:min(380px,90vw)}.modal-win .win-body p{margin:4px 0 14px;line-height:1.7}@media(max-width:520px){.logo-text{font-size:18px}#btn-coffee{font-size:11px;padding:3px 8px}#clock{display:none}.kv{flex-direction:column;gap:2px}}
