:root{--color-text: #0f172a;--color-muted: #64748b;--color-border: #e2e8f0;--color-primary: #2563eb;--color-danger: #dc2626;--color-notice: #1d4ed8;--color-bg-soft: #f8fafc}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Apple SD Gothic Neo,Malgun Gothic,sans-serif;color:var(--color-text);background:#fff;-webkit-text-size-adjust:100%}.muted{color:var(--color-muted);font-size:13px}.empty{padding:32px 16px;text-align:center;color:var(--color-muted);border:1px dashed #cbd5e1;border-radius:8px;background:var(--color-bg-soft)}.notice{font-size:13px;color:var(--color-notice);background:#eff6ff;padding:8px 12px;border-radius:6px}.screen{display:flex;flex-direction:column;gap:16px}.screen-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.screen-title{font-size:18px;font-weight:700;margin:0}.panel{border:1px solid var(--color-border);border-radius:8px;padding:16px;background:#fff;display:flex;flex-direction:column;gap:8px}.panel-title{font-size:16px;font-weight:700;margin:0}.panel-badge{align-self:flex-start;font-size:11px;font-weight:700;color:#1e40af;background:#dbeafe;padding:2px 8px;border-radius:4px}.btn{font-size:13px;font-weight:600;padding:8px 14px;border-radius:6px;border:1px solid transparent;cursor:pointer;min-height:36px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff}.btn-danger{background:#fee2e2;color:var(--color-danger)}.btn-ghost{background:#fff;border-color:#cbd5e1;color:#334155;min-width:36px}.form-field{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.form-label{font-size:13px;font-weight:600;color:#334155}.form-input{width:100%;padding:8px 12px;border-radius:6px;border:1px solid #cbd5e1;font-size:14px;font-family:inherit;background:#fff}.form-textarea{resize:vertical}.form-row{display:flex;gap:12px}.form-actions{display:flex;gap:8px;flex-wrap:wrap}.settings-form,.record-form{display:flex;flex-direction:column;gap:12px}.checklist{border:1px solid var(--color-border);border-radius:6px;padding:12px;display:flex;flex-direction:column;gap:8px}.check-item{display:flex;align-items:center;gap:8px;font-size:14px;min-height:32px}.photo-note{padding:10px 12px;border:1px dashed #cbd5e1;border-radius:6px}.card-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.card{display:flex;flex-direction:column;gap:4px;width:100%;text-align:left;border:1px solid var(--color-border);border-radius:8px;padding:12px;background:#fff;font-family:inherit;color:inherit}.card-button{cursor:pointer}.card--selected{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary)}.card-title{font-weight:700;font-size:14px}.card-sub{font-size:12px;color:var(--color-muted)}.card-foot{display:flex;justify-content:space-between;align-items:center;margin-top:6px}.route-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.route-item{display:flex;align-items:center;gap:12px;border:1px solid var(--color-border);border-radius:8px;padding:10px 12px}.route-index{flex:none;width:28px;height:28px;border-radius:50%;background:var(--color-primary);color:#fff;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center}.route-name{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;font-size:14px}.route-actions{display:flex;gap:6px}.member-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.member-item{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-radius:6px;background:var(--color-bg-soft);border:1px solid var(--color-border);font-size:14px}.me-tag{margin-left:6px;background:var(--color-primary);color:#fff;font-size:11px;padding:1px 5px;border-radius:3px}.score-badge{display:inline-block;font-size:12px;font-weight:700;color:#166534;background:#dcfce7;padding:2px 8px;border-radius:999px;white-space:nowrap}.score-badge--na{color:var(--color-muted);background:#f1f5f9}.price-text{white-space:nowrap}.price-meta{font-size:12px;color:var(--color-muted)}.table-wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:8px}.data-table{width:100%;border-collapse:collapse;font-size:14px}.data-table th,.data-table td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--color-border);vertical-align:top}.data-table th{background:var(--color-bg-soft);font-size:13px;white-space:nowrap}.compare-table{min-width:560px}.compare-table .compare-name{min-width:170px}.compare-table .compare-name-text{white-space:nowrap}.compare-table .card-sub{word-break:keep-all}.route-direction{display:flex;justify-content:center;margin:-4px 0 4px;padding:0;border:none;background:none}.direction-info{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--color-muted)}.direction-arrow{font-size:16px;display:flex;align-items:center;height:28px}.direction-stats{display:flex;align-items:center;gap:8px}.badge-fixture{font-size:11px;font-weight:600;color:#b91c1c;background:#fee2e2;padding:2px 6px;border-radius:3px;white-space:nowrap}.stat{white-space:nowrap}.commute-info{border:1px solid var(--color-border);border-radius:8px;padding:12px;background:var(--color-bg-soft);display:flex;flex-direction:column;gap:8px}.commute-header{display:flex;align-items:center;gap:8px;font-weight:600;font-size:14px}.commute-label{color:var(--color-text)}.commute-stats{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--color-muted)}.commute-stats .from{font-weight:600;color:var(--color-text)}.commute-stats .arrow{color:#94a3b8}.commute-stats .to{font-weight:600;color:var(--color-text)}.commute-duration{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--color-primary)}.separator{color:#cbd5e1}.map-box{position:relative;width:100%;height:320px;border-radius:8px;overflow:hidden;border:1px solid var(--color-border);background:var(--color-bg-soft)}.map-canvas{width:100%;height:100%}.map-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:16px;text-align:center;font-size:14px;color:var(--color-muted);background:#f8fafce6}.map-overlay--error{color:var(--color-danger)}.map-placeholder{height:auto;min-height:160px;padding:24px 16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;border:2px dashed #cbd5e1}.map-placeholder p{margin:0}.report-head{display:flex;flex-direction:column;gap:4px;border-bottom:2px solid #0f172a;padding-bottom:8px}.report-title{font-size:20px;margin:0}.report-foot{margin-top:8px}.demo-main-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.demo-map-pin{width:80%;min-width:160px;box-sizing:border-box;padding:10px 14px;border-radius:8px;border:2px solid;display:flex;justify-content:space-between;align-items:center;gap:8px;cursor:pointer;box-shadow:0 1px 3px #0000001a}.demo-pin-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700;color:#1e293b}.demo-pin-score{flex-shrink:0;white-space:nowrap;font-size:13px;font-weight:700;color:#2563eb;background-color:#dbeafe;padding:2px 8px;border-radius:12px}.demo-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:13px;margin-bottom:14px}@media (max-width: 480px){.demo-main-grid{grid-template-columns:minmax(0,1fr)}.demo-main-grid>section{min-width:0;width:100%}.demo-map-pin{width:100%}.demo-detail-grid{grid-template-columns:minmax(0,1fr)}.form-row{flex-direction:column}.map-box{height:220px}.card-list{grid-template-columns:1fr}.route-item{flex-wrap:wrap}.route-actions{width:100%;justify-content:flex-end}.screen-title{font-size:16px}}@media print{.no-print{display:none!important}body{font-size:11pt;color:#000}.map-box{display:none}.card-list,.notice,.btn{display:none!important}.table-wrap{border:none}.data-table th,.data-table td{border-bottom:1px solid #999999}.report{box-shadow:none}}.rating-section{margin-top:24px;padding-top:16px;border-top:1px solid #e2e8f0}.rating-item{border:1px solid #e2e8f0;border-radius:6px;padding:8px 12px;margin:8px 0}.rating-options{display:flex;flex-wrap:wrap;gap:6px 12px}.rating-option{display:inline-flex;align-items:center;gap:4px;font-size:14px;cursor:pointer}.settings-rating-items,.settings-add-item,.settings-inactive-items,.settings-weights-section{display:flex;flex-direction:column;gap:12px;margin:16px 0;padding:12px 0;border-top:1px solid #e2e8f0}.settings-subtitle{font-size:13px;font-weight:600;color:#334155}.rating-item-row{display:flex;align-items:center;gap:10px}.rating-item-index{flex:none;width:32px;height:32px;border-radius:50%;background:var(--color-bg-soft);border:1px solid var(--color-border);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;color:#334155}.rating-item-form{flex:1;min-width:0}.rating-item-form--new{min-width:200px}.rating-item-actions{display:flex;gap:6px;flex:none}.rating-item-row--inactive{opacity:.6}.rating-item-row--inactive .rating-item-index{background:#f1f5f9;color:var(--color-muted)}.weights-form{display:flex;flex-direction:column;gap:12px}.weight-row{display:flex;align-items:center;gap:12px}.weight-label{flex:0 0 140px;font-size:13px;font-weight:500;color:#334155}.weight-input{flex:1;min-width:80px;max-width:120px}@media (max-width: 480px){.weight-row{flex-direction:column;align-items:flex-start}.weight-label{flex:1 1 auto}.weight-input{width:100%;max-width:100%}.rating-item-row{flex-wrap:wrap}.rating-item-form{flex:1 1 100%;min-width:100%}.rating-item-actions{width:100%}}.invites-list{border:1px solid var(--color-border);border-radius:6px;overflow:hidden}.invites-header{display:grid;grid-template-columns:1fr 140px 120px 100px;gap:12px;background:var(--color-bg-soft);padding:10px 12px;font-size:12px;font-weight:600;color:#334155;border-bottom:1px solid var(--color-border)}.invite-row{display:grid;grid-template-columns:1fr 140px 120px 100px;gap:12px;padding:12px;border-bottom:1px solid var(--color-border);align-items:center;font-size:13px}.invite-row:last-child{border-bottom:none}.invite-code{background:#f1f5f9;padding:4px 8px;border-radius:4px;font-family:Courier New,monospace;font-size:12px;word-break:break-all}.invite-status{font-size:12px;font-weight:600;padding:2px 8px;border-radius:4px;white-space:nowrap}.invite-status--active{background:#dcfce7;color:#166534}.invite-status--expired{background:#fee2e2;color:var(--color-danger)}.btn-sm{padding:4px 10px;font-size:12px;min-height:24px;margin:0 2px}@media (max-width: 480px){.invites-header,.invite-row{grid-template-columns:1fr;gap:8px}}
