/* Shared visual language: return-sorting admin menu, controls and filters. */
:root{--action:#1d4ed8;--ink:#172033;--line:#cbd5e1;--filter:#f1f5f9}
header{background:linear-gradient(135deg,#111827,#1e293b)}button{background:var(--action);border:1px solid var(--action);box-shadow:none}button.secondary,.secondary{background:#fff;border:1px solid var(--line);color:#334155}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid #2563eb;outline-offset:2px}
.tab-nav button{border-color:var(--line);border-radius:9px;box-shadow:none}.tab-nav button.active{background:var(--action);border-color:var(--action);box-shadow:none}
.schedule-controls{padding:10px;background:var(--filter);border:1px solid #dbe3ee;border-radius:9px;gap:8px}.schedule-controls input,.schedule-controls button{min-height:40px;margin:0;padding:7px 10px}.schedule-controls label{font-size:13px}
.trip-entry{margin:12px 0;padding:12px;background:var(--filter);border:1px solid #dbe3ee;border-radius:10px}.solo-entry-label{font-size:13px;font-weight:700;color:#334155;margin-bottom:8px}.trip-entry-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.trip-entry-actions button{margin:0;min-height:44px;padding:8px 10px;font-size:14px;border-radius:9px}.trip-entry-actions button[aria-pressed=true]{background:var(--action);border-color:var(--action);}
.solo-editor{margin:12px 0;padding:14px;border:1px solid #dbe3ee;border-radius:10px;background:#fff;overflow:clip}.solo-editor .section-head{gap:8px;align-items:center}.solo-editor h3{font-size:17px;margin:0}.solo-editor .section-head button{min-height:36px;padding:6px 10px;margin:0;font-size:13px}.solo-editor input,.solo-editor select,.solo-editor textarea{min-width:0;max-width:100%;min-height:44px;padding:9px 10px;font-size:16px;border-color:#94a3b8}.solo-editor textarea{min-height:64px}.solo-editor label{margin:10px 0 5px;font-size:13px}.solo-progress{margin:12px 0;color:#526176;font-size:12px}.solo-progress>div{height:3px;background:#e2e8f0;border-radius:3px;margin-top:7px;overflow:hidden}.solo-progress i{display:block;height:100%;width:33.333%;background:var(--action)}.solo-question{font-size:17px;margin:15px 0 12px;color:var(--ink);line-height:1.5}.solo-field-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:8px}.solo-small{width:auto;margin-top:12px;min-height:36px;font-size:12px;padding:6px 10px}.solo-navigation{display:flex;gap:8px;margin-top:16px}.solo-navigation button{margin:0;min-height:44px;padding:9px 12px;flex:1}.solo-navigation .secondary{flex:0 0 30%}.solo-review{margin:0;background:var(--filter);border-radius:9px;padding:10px 12px;font-size:13px}.solo-review div{display:grid;grid-template-columns:65px minmax(0,1fr);gap:10px;padding:6px 0}.solo-review dt{color:#64748b}.solo-review dd{margin:0;overflow-wrap:anywhere;font-weight:600}.solo-optional{margin:12px 0;padding:10px;border:1px solid #dbe3ee;border-radius:8px}.solo-optional summary{font-size:13px;cursor:pointer;font-weight:600;color:#334155}.trip-records-title{font-size:16px;margin:14px 0 8px}
@media(max-width:680px){.card{padding:12px}.tab-nav{gap:6px}.tab-nav button{min-height:40px;padding:7px 10px}.trip-entry{padding:10px}.solo-editor{padding:12px}.schedule-controls{padding:8px}.schedule-controls button{font-size:12px;min-height:40px}.schedule-controls input{font-size:16px}.solo-field-grid{grid-template-columns:minmax(0,1fr)}.solo-question{font-size:16px}.trip-entry-actions button{font-size:13px;min-height:44px}}


/* Local, persistent messages; no toast positioning or auto-dismiss behavior. */
.msg{border-radius:var(--ui-control-radius);line-height:1.55}
.msg.success{background:#e8f7ee;color:#14532d}
.msg.error{background:#fff0f0;color:#991b1b}
button.secondary:hover:not(:disabled){border-color:#94a3b8}
.solo-editor{border-radius:var(--ui-radius);box-shadow:var(--ui-shadow)}
.solo-progress>div{height:5px;border-radius:5px}.solo-progress i{border-radius:5px}

/* Password controls stay outside business handlers and preserve input IDs. */
.ui-password{position:relative;display:block;min-width:0;width:100%}
.ui-password input{padding-right:66px}
.ui-password .ui-password-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:auto;min-width:52px;min-height:36px;margin:0;padding:5px 8px;font-size:12px;border-radius:7px;white-space:nowrap}
.ui-password .ui-password-toggle:active{transform:translateY(-50%)}
#createForm .ui-password input{padding-right:66px}
#createForm .ui-password-toggle{min-width:52px;min-height:32px;margin:0;padding:4px 7px;font-size:12px}
.ui-query-status{padding:6px 10px;margin-bottom:8px;border:1px solid #bfdbfe;border-radius:8px;background:#eff6ff;color:#1e40af;font-size:12px;pointer-events:none}
.ui-query-status::before{content:"";display:inline-block;width:8px;height:8px;margin-right:7px;border-radius:50%;background:currentColor}
.ui-query-status[hidden],[data-ui-dismissed="true"][hidden]{display:none!important;pointer-events:none!important}

.ui-query-preview{padding:8px;border:1px dashed #94a3b8;border-radius:8px;background:#f8fafc}
.ui-query-preview>div{pointer-events:none;user-select:text}
.ui-query-preview[hidden]{display:none!important}
.ui-query-preview>p{margin:0 0 8px}

/* Candidate: 버튼 체계 */

button{border-radius:var(--radius-sm);font-weight:700;letter-spacing:-.01em;background:var(--brand-600);border:1px solid var(--brand-600);color:#fff;transition:background .15s,border-color .15s,box-shadow .15s,transform .1s}
button:hover:not(:disabled){filter:none;background:#1e40af;border-color:#1e40af}
button:active:not(:disabled){transform:translateY(1px)}
button:disabled{opacity:.5;cursor:not-allowed}
button[disabled][id]:not(.secondary){cursor:progress}
button.secondary,.secondary{background:#fff;border:1px solid var(--line-2);color:#1f2937}
button.secondary:hover:not(:disabled){background:#f1f5f9;border-color:#94a3b8}
button.danger{background:#fff;border:1px solid #fca5a5;color:var(--bad)}
button.danger:hover:not(:disabled){background:var(--bad-bg);border-color:#f87171}

:where(button,input,select,textarea,summary,a):focus-visible{outline:3px solid #2563eb66;outline-offset:2px}
.section-head button,.vehicle-actions button,.user-admin-actions button{font-size:13px}
@media(min-width:901px){
  #createReservationBtn,#tripStartBtn,#tripReturnBtn,#saveVehicleBtn,#saveUnavailableBtn,#saveMyReservationEdit,#soloReturnBtn{width:auto;min-width:240px}
  #saveCommute{width:auto;min-width:160px}
}
.form-actions button{margin-top:12px}


/* Candidate: 입력 */

input,select,textarea{border:1px solid var(--line-2);border-radius:var(--radius-sm);background:#fff;min-height:44px;transition:border-color .15s,box-shadow .15s}
input:hover,select:hover,textarea:hover{border-color:#94a3b8}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand-600);box-shadow:0 0 0 3px #2563eb26}
input[readonly]{background:#f8fafc;color:var(--ink-2)}
input::placeholder,textarea::placeholder{color:#94a3b8}
.required-missing{border-color:var(--bad)!important;box-shadow:0 0 0 3px #dc262626!important}

/* Candidate: 운행처리 */

.trip-entry{background:#f8fafc;border-radius:12px}
.trip-entry-actions button{background:#fff;color:#1f2937;border:1px solid var(--line-2);min-height:48px;font-size:14.5px}
.trip-entry-actions button[aria-pressed=true]{background:var(--brand-600);border-color:var(--brand-600);color:#fff;box-shadow:none}
.solo-editor{border-radius:12px;box-shadow:var(--shadow-1)}
.solo-progress>div{height:6px;border-radius:6px}
.solo-progress i{border-radius:6px;transition:width .25s}
.solo-navigation button{min-height:48px}
#tripReturnForm,#tripStartForm{margin-top:6px}


/* Candidate login CTA sizing must not move the password eye control. */
#loginCard .ui-password-toggle{margin:0;min-height:40px;height:40px;font-size:12px;padding:4px 8px}
