*{box-sizing:border-box}body{color:#dfe8e0;background:#0a100c;margin:0;font-family:-apple-system,PingFang TC,Microsoft JhengHei,system-ui,sans-serif}.app{width:100%;max-width:none;margin:0 auto;padding:28px clamp(16px,2.5vw,48px) 80px}header{margin-bottom:22px}.header-top{justify-content:space-between;align-items:center;display:flex}.lang-toggle{background:#0a120e;border:1px solid #1e2b21;border-radius:999px;gap:4px;padding:3px;display:flex}.lang-toggle button{color:#7f9587;cursor:pointer;background:0 0;border:none;border-radius:999px;padding:4px 12px;font-size:12px}.lang-toggle button.active{color:#cfeaf2;background:#0d1e22;font-weight:600}.eyebrow{letter-spacing:2px;color:#5bb0c9;margin-bottom:6px;font-size:12px}header h1{color:#eef4ee;margin:0 0 8px;font-size:30px;font-weight:600}.subtitle{color:#7f9587;max-width:640px;margin:0 0 8px;font-size:14px}.strategy-badge{color:#5bb0c9;font-size:13px}.main-grid{grid-template-columns:minmax(0,14fr) minmax(0,9fr) minmax(0,8fr);grid-template-areas:"board library import";justify-content:start;align-items:start;gap:16px;width:100%;max-width:1582px;display:grid}@media (width>=1100px) and (width<=1499px){.main-grid{grid-template-columns:minmax(0,14fr) minmax(0,9fr);grid-template-areas:"board library""board import";max-width:1166px}.main-grid .panel{width:100%}.main-grid .import-panel{width:88.8889%}}@media (width<=1099px){.main-grid{grid-template-columns:1fr;grid-template-areas:"board""library""import";max-width:none}.main-grid .panel{width:100%}}.panel{background:#0f1712;border:1px solid #1e2b21;border-radius:10px;margin-bottom:16px;padding:18px}.panel h2{color:#dfe8e0;justify-content:space-between;align-items:center;margin:0 0 14px;font-size:15px;display:flex}.panel-sub{color:#5f7466;font-size:12px;font-weight:400}.board-panel{grid-area:board;overflow-x:auto}.library-panel{grid-area:library}.board-panel .voyage-board{margin-inline:auto}.import-panel{grid-area:import;height:500px}.import-panel .library{flex-direction:column;height:calc(100% - 29px);display:flex}.import-panel textarea{flex:1;min-height:0}.import-panel .primary-btn{align-self:flex-start}.board-quick-delete{color:#7f9587;flex-wrap:wrap;align-items:center;gap:10px;margin-top:16px;font-size:12px;display:flex}.quick-delete-btn{color:#e5a196;cursor:pointer;background:#2b1815;border:1px solid #704038;border-radius:7px;flex-shrink:0;padding:7px 14px;font-size:12px;font-weight:600}.quick-delete-btn:hover:not(:disabled){background:#3b211d;border-color:#a85b4f}.quick-delete-btn:disabled{opacity:.4;cursor:not-allowed}.voyage-board{grid-template-rows:40px repeat(3,96px) 40px;grid-template-columns:132px repeat(3,96px) 132px;gap:8px;width:max-content;display:grid}.grid-slot{justify-content:center;align-items:center;display:flex}.cell{text-align:center;background:#0a120d;border:1px dashed #22322a;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:96px;height:96px;padding:4px;display:flex;position:relative}.cell.filled{cursor:copy;background:#10241a;border-style:solid;border-color:#3d6b4a}.cell.filled:hover{border-color:#6fd18a}.cell.filled:focus-visible{outline-offset:2px;outline:2px solid #5bb0c9}.cell.start{box-shadow:inset 0 0 0 1px #5bb0c9}.cell-plus{color:#26372c;font-size:22px}.cell-empty{color:#3a5044;flex-direction:column;align-items:center;gap:2px;font-size:11px;display:flex}.cell-empty span{font-size:10px}.cell-name{color:#dfe8e0;font-size:10px;line-height:1.25}.cell-copy-notice{z-index:1;white-space:nowrap;pointer-events:none;background:#050e09eb;border-radius:999px;padding:2px 6px;font-size:10px;font-weight:600;position:absolute;bottom:5px;left:50%;transform:translate(-50%)}.cell-copy-notice.success{color:#8fe1a3}.cell-copy-notice.error{color:#e5a196}.shape-icon line{stroke:#4a5c50;stroke-width:2px}.shape-icon line.on{stroke:#6fd18a}.shape-icon circle.on{fill:#6fd18a}.shape-icon circle.off{fill:#22322a}.border-picker{position:relative}.border-pill{color:#7f9587;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:#0c1510;border:1px solid #253a2c;border-radius:999px;max-width:128px;padding:7px 12px;font-size:11px;overflow:hidden}.border-pill:hover{border-color:#3d5142}.border-pill.set{color:#cfeaf2;background:#0d1e22;border-color:#5bb0c9}.border-dropdown{z-index:1000;background:#101a14;border:1px solid #253a2c;border-radius:8px;width:280px;position:fixed;overflow:hidden;box-shadow:0 8px 24px #00000080}.border-search{color:#dfe8e0;background:#0a120d;border:none;border-bottom:1px solid #253a2c;outline:none;width:100%;padding:10px 12px;font-size:13px}.border-options{max-height:260px;overflow-y:auto}.border-option{color:#b9c9be;cursor:pointer;white-space:pre-line;border-bottom:1px solid #16211a;padding:8px 12px;font-size:12px;line-height:1.4}.border-option:hover{background:#172219}.border-option.active{color:#5bb0c9;background:#0d1e22}.border-option.clear{color:#5f7466;font-style:italic}.border-option.empty{color:#5f7466;cursor:default}.library-header{color:#7f9587;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:13px;display:flex}.library textarea{color:#dfe8e0;resize:vertical;background:#0a120d;border:1px solid #1e2b21;border-radius:8px;width:100%;padding:10px;font-size:13px}.primary-btn{color:#08141a;cursor:pointer;background:#5bb0c9;border:none;border-radius:8px;margin-top:8px;padding:9px 18px;font-size:13px;font-weight:600}.primary-btn:hover:not(:disabled){background:#74c0d6}.primary-btn:disabled{color:#4a5c50;cursor:not-allowed;background:#1e2b21}.ghost-btn{color:#7f9587;cursor:pointer;background:0 0;border:1px solid #1e2b21;border-radius:6px;padding:5px 10px;font-size:12px}.ghost-btn:hover:not(:disabled){border-color:#3d5142}.ghost-btn:disabled{opacity:.4;cursor:not-allowed}.import-msg{color:#7f9587;margin-top:8px;font-size:12px}.chart-list{flex-direction:column;gap:6px;max-height:400px;margin-top:14px;display:flex;overflow-y:auto}.empty-hint{color:#4a5c50;padding:12px 0;font-size:12px}.chart-row{background:#0a120d;border:1px solid #1e2b21;border-radius:6px;align-items:center;gap:10px;padding:8px 10px;display:flex}.chart-row-main{flex:1;min-width:0}.chart-row-name{color:#dfe8e0;margin-bottom:2px;font-size:12px}.chart-row-meta{color:#6b8072;text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.remove-btn{color:#6b8072;cursor:pointer;background:0 0;border:none;flex-shrink:0;font-size:13px}.remove-btn:hover{color:#e0897a}.strategy-picker{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.strategy-tab{color:#b9c9be;cursor:pointer;background:#0a120d;border:1px solid #1e2b21;border-radius:999px;padding:8px 16px;font-size:13px}.strategy-tab:hover{border-color:#3d5142}.strategy-tab.active{color:#cfeaf2;background:#0d1e22;border-color:#5bb0c9;font-weight:600}.strategy-tagline{color:#9db3a4;margin:4px 0 10px;font-size:13px}.guide-list{color:#b9c9be;margin:0 0 14px;padding-left:20px;font-size:13px;line-height:1.6;list-style:outside}.checklist-title{color:#6b8072;margin-bottom:6px;font-size:12px}.checklist{margin:0;padding:0;font-size:14px;list-style:none}.checklist li{margin-bottom:6px}.checklist li.ok{color:#6fd18a}.checklist li.bad{color:#d9a25a}.hint{color:#7f9587;background:#0a120d;border-radius:6px;margin-top:8px;padding:10px;font-size:13px}.solve-btn{color:#08141a;cursor:pointer;background:#5bb0c9;border:none;border-radius:8px;width:100%;padding:14px;font-size:16px;font-weight:600}.solve-btn:hover:not(:disabled){background:#74c0d6}.solve-btn:disabled{color:#4a5c50;cursor:not-allowed;background:#1e2b21}.progress-wrap{align-items:center;gap:10px;margin-top:10px;display:flex}.progress-bar{background:#1e2b21;border-radius:999px;flex:1;height:8px;overflow:hidden}.progress-fill{background:#5bb0c9;border-radius:999px;height:100%;transition:width .15s ease-out}.progress-pct{color:#7f9587;text-align:right;min-width:34px;font-size:12px}.result-meta{color:#dfe8e0;margin-top:10px;font-size:14px}.site-footer{color:#6b8072;text-align:center;border-top:1px solid #1e2b21;margin-top:28px;padding-top:18px;font-size:12px}.site-footer-links{justify-content:center;gap:18px;margin-top:8px;display:flex}.site-footer a{color:#5bb0c9;text-decoration:none}.site-footer a:hover{color:#74c0d6;text-decoration:underline}
