*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0f1117;--bg2: #1a1d27;--bg3: #22263a;--border: #2e3350;--accent: #f4a941;--accent2: #e8630a;--green: #3ddc84;--red: #ff5c5c;--text: #e8eaf0;--text2: #9aa0b8;--radius: 12px;--shadow: 0 4px 24px rgba(0, 0, 0, .45)}body{background:var(--bg);color:var(--text);font-family:Segoe UI,PingFang TC,Microsoft JhengHei,system-ui,sans-serif;min-height:100dvh;-webkit-font-smoothing:antialiased}.app{max-width:560px;margin:0 auto;padding:0 0 40px}.app-header{background:linear-gradient(135deg,#1c2040,#0f1117 60%);border-bottom:1px solid var(--border);padding:20px 20px 16px;text-align:center}.header-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.header-icon{font-size:2rem}.locale-switcher{display:flex;gap:4px}.locale-btn{background:var(--bg3);border:1px solid var(--border);border-radius:6px;color:var(--text2);cursor:pointer;font-size:.75rem;font-weight:600;padding:4px 9px;transition:background .15s,color .15s,border-color .15s}.locale-btn:hover{background:var(--bg2);color:var(--text)}.locale-active{background:var(--accent2)!important;border-color:var(--accent2)!important;color:#fff!important}.app-header h1{font-size:1.55rem;font-weight:700;color:var(--accent);letter-spacing:.04em}.subtitle{font-size:.82rem;color:var(--text2);margin-top:4px}.app-main{padding:16px 14px;display:flex;flex-direction:column;gap:14px}.card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.card-label{font-size:.78rem;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px;display:flex;align-items:center;gap:6px}.label-icon{font-size:1rem}.time-input{background:var(--bg3);border:2px solid var(--border);border-radius:8px;color:var(--text);font-size:1.1rem;font-family:Courier New,monospace;padding:8px 12px;text-align:center;outline:none;transition:border-color .2s;width:110px}.time-input:focus{border-color:var(--accent)}.time-input.invalid{border-color:var(--red)}.large-input{font-size:1.7rem;width:130px;padding:10px 12px;font-weight:700;color:var(--accent);letter-spacing:.08em}.error-hint{font-size:.72rem;color:var(--red);margin-top:4px;text-align:center}.time-row-card{background:linear-gradient(135deg,#1e1b36 0%,var(--bg2) 100%);border-color:#3a3060}.time-row-inner{display:flex;align-items:center;gap:0}.time-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px}.base-col .card-label,.arrival-col .card-label{margin-bottom:0}.time-divider{width:1px;align-self:stretch;background:var(--border);margin:0 14px;flex-shrink:0}.arrival-time{font-size:1.7rem;font-weight:800;color:var(--green);font-family:Courier New,monospace;letter-spacing:.1em}.arrival-empty{color:var(--text2);font-size:1.4rem}.teams-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.teams-header .card-label{margin-bottom:0}.tip-btn{background:transparent;border:1px solid var(--border);border-radius:50%;color:var(--text2);cursor:pointer;font-size:.7rem;font-weight:700;width:18px;height:18px;line-height:1;padding:0;flex-shrink:0;transition:border-color .15s,color .15s}.tip-btn:hover{border-color:var(--accent);color:var(--accent)}.tip-box{background:var(--bg3);border:1px solid var(--border);border-radius:8px;color:var(--text2);font-size:.8rem;line-height:1.6;margin-bottom:10px;padding:8px 12px}.add-btn{background:var(--accent2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.82rem;font-weight:700;padding:7px 14px;transition:background .2s,transform .1s}.add-btn:hover{background:#f4530a}.add-btn:active{transform:scale(.97)}.teams-list{display:flex;flex-direction:column;gap:8px}.team-row{display:grid;grid-template-columns:1fr 90px 72px 72px 34px;gap:6px;align-items:center}.team-row-header{font-size:.72rem;color:var(--text2);font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding-bottom:4px;border-bottom:1px solid var(--border)}.team-row-header .col-name,.team-row-header .col-time{padding:0 4px}.name-input{background:var(--bg3);border:2px solid var(--border);border-radius:8px;color:var(--text);font-size:.95rem;padding:8px 10px;outline:none;transition:border-color .2s;width:100%}.name-input:focus{border-color:var(--accent)}.march-input{width:100%}.rally-select{background:var(--bg3);border:2px solid var(--border);border-radius:8px;color:var(--text2);cursor:pointer;font-size:.8rem;font-weight:600;height:36px;outline:none;padding:0 6px;transition:border-color .2s,color .2s;width:100%}.rally-select:focus{border-color:var(--accent);color:var(--text)}.remove-btn{background:transparent;border:1px solid var(--border);border-radius:6px;color:var(--text2);cursor:pointer;font-size:.75rem;width:34px;height:36px;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s}.remove-btn:hover:not(:disabled){background:#3a1515;border-color:var(--red);color:var(--red)}.remove-btn:disabled{opacity:.25;cursor:not-allowed}.result-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.result-card-header .card-label{margin-bottom:0}.copy-btn{background:var(--bg3);border:1px solid var(--border);border-radius:8px;color:var(--text2);cursor:pointer;font-size:.8rem;font-weight:600;padding:6px 12px;transition:background .15s,color .15s,border-color .15s;white-space:nowrap}.copy-btn:hover{background:#1b2e1b;border-color:var(--green);color:var(--green)}.copy-flash{background:#1b2e1b!important;border-color:var(--green)!important;color:var(--green)!important}.result-placeholder{color:var(--text2);font-size:.88rem;text-align:center;padding:12px 0}.result-list{display:flex;flex-direction:column;gap:8px}.result-row{display:grid;grid-template-columns:30px 1fr auto auto;gap:8px 10px;align-items:center;background:var(--bg3);border:1px solid var(--border);border-radius:10px;padding:10px 12px;transition:border-color .2s}.result-first{border-color:var(--accent);background:linear-gradient(90deg,#261c08 0%,var(--bg3) 100%)}.result-error{border-color:var(--red);opacity:.7}.result-rank{font-size:1rem;text-align:center}.result-name{font-size:1rem;font-weight:700;color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-march{font-size:.78rem;color:var(--text2);white-space:nowrap}.result-depart{font-size:1.15rem;font-weight:800;font-family:Courier New,monospace;color:var(--accent);white-space:nowrap;letter-spacing:.06em}.depart-error{font-size:.8rem;color:var(--red)}.app-footer{text-align:center;padding:20px 14px 0;font-size:.75rem;color:var(--text2);border-top:1px solid var(--border);margin:8px 14px 0}@media(max-width:400px){.app-header{padding:20px 14px 16px}.app-header h1{font-size:1.3rem}.large-input{font-size:1.3rem;width:108px}.arrival-time{font-size:1.3rem}.time-divider{margin:0 10px}.team-row{grid-template-columns:1fr 72px 50px 46px 28px;gap:5px}.rally-select{font-size:.7rem;padding:0 2px}.result-row{grid-template-columns:28px 1fr auto;grid-template-rows:auto auto}.result-march{grid-column:2;grid-row:2}.result-depart{grid-row:1 / 3;grid-column:3;align-self:center}}
