/* ===== SAMAY Case Order Form ===== */
* { box-sizing: border-box; }

body {
    margin: 0;
    font-family: 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    background: #f4f6f9;
    color: #1f2937;
    line-height: 1.5;
}

.container {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 20px;
}

/* Top bar */
.topbar {
    background: linear-gradient(135deg, #14366e 0%, #1f4789 100%);
    color: #fff;
    padding: 18px 0;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}
.topbar h1 {
    margin: 0;
    font-size: 22px;
    font-weight: 600;
    letter-spacing: 0.3px;
}
.topbar .subtitle {
    font-weight: 400;
    color: #d4dcec;
    font-size: 18px;
    margin-left: 6px;
}

main.container { padding-top: 28px; padding-bottom: 40px; }

/* Card */
.card {
    background: #fff;
    border-radius: 8px;
    padding: 22px 26px;
    margin-bottom: 22px;
    box-shadow: 0 1px 3px rgba(15,23,42,0.06);
    border: 1px solid #e5e9f2;
}
.card h2 {
    font-size: 17px;
    font-weight: 700;
    color: #14366e;
    margin: 0 0 18px 0;
    padding-bottom: 10px;
    border-bottom: 1px solid #e5e9f2;
}
.hint-inline { font-size: 13px; color: #6b7280; font-weight: 400; margin-left: 6px; }

/* Upload card */
.upload-card { background: #eef4ff; border-color: #c8d8f5; }
.upload-card h2 { color: #14366e; border-color: #c8d8f5; }
.upload-row {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
}
.upload-row input[type="file"] {
    flex: 1;
    min-width: 250px;
    padding: 8px;
    border: 1px solid #c8d8f5;
    border-radius: 4px;
    background: #fff;
}
.hint { color: #4b5563; font-size: 14px; margin: 0 0 12px 0; }

/* Grid */
.grid-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px 22px;
}
.grid-3 {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 16px 22px;
}
.form-group.full { grid-column: 1 / -1; }
@media (max-width: 760px) {
    .grid-2, .grid-3 { grid-template-columns: 1fr; }
}

.form-group { display: flex; flex-direction: column; margin-bottom: 4px; }
.form-group label {
    font-size: 13.5px;
    color: #374151;
    margin-bottom: 6px;
    font-weight: 500;
}
.req { color: #dc2626; font-weight: 700; }

input[type="text"],
input[type="number"],
select,
textarea {
    width: 100%;
    padding: 9px 11px;
    border: 1px solid #cfd6e1;
    border-radius: 4px;
    font-size: 14px;
    font-family: inherit;
    background: #fff;
    transition: border-color 0.15s, box-shadow 0.15s;
}
input:focus, select:focus, textarea:focus {
    outline: none;
    border-color: #1f4789;
    box-shadow: 0 0 0 3px rgba(31,71,137,0.12);
}
textarea { resize: vertical; min-height: 70px; }
input[readonly] { background: #f3f4f6; cursor: not-allowed; }

/* Radio row */
.radio-row { display: flex; gap: 20px; flex-wrap: wrap; padding-top: 4px; }
.radio { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; cursor: pointer; }

/* Party blocks (petitioners/respondents/sections/rules) */
.party-block { margin-bottom: 18px; border: 1px solid #e5e9f2; border-radius: 6px; padding: 12px 14px; background: #fafbfd; }
.party-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; flex-wrap: wrap; gap: 8px; }
.party-header strong { color: #374151; font-size: 14px; }
.party-actions { display: flex; align-items: center; gap: 6px; }
.link-btn {
    background: none;
    border: none;
    color: #1f4789;
    cursor: pointer;
    font-size: 13px;
    padding: 2px 4px;
    text-decoration: underline;
}
.link-btn.danger { color: #dc2626; }
.link-btn.primary { color: #059669; font-weight: 600; }
.sep { color: #9ca3af; }

.rows-wrap { display: flex; flex-direction: column; gap: 8px; }
.row-item { display: flex; align-items: center; gap: 8px; }
.row-item input[type="checkbox"] { transform: scale(1.1); }
.row-item input[type="text"] { flex: 1; }

/* GSTIN block */
.gstin-block { margin-top: 10px; padding: 14px; background: #fafbfd; border-radius: 6px; border: 1px solid #e5e9f2; }
.block-label { display: block; font-weight: 600; margin-bottom: 10px; color: #374151; font-size: 14px; }
.warn-msg { color: #dc2626; font-size: 12.5px; margin: 8px 0 0 0; }

/* Buttons */
.actions { display: flex; gap: 12px; margin-top: 10px; }
.btn {
    padding: 10px 22px;
    border-radius: 6px;
    border: 1px solid transparent;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s;
    font-family: inherit;
}
.btn-primary { background: #1f4789; color: #fff; border-color: #1f4789; }
.btn-primary:hover { background: #14366e; }
.btn-save {
    background: #ecfdf5;
    color: #047857;
    border-color: #a7f3d0;
}
.btn-save:hover { background: #d1fae5; }
.btn-cancel { background: #fff; color: #1f2937; border-color: #cfd6e1; }
.btn-cancel:hover { background: #f3f4f6; }
.btn:disabled { opacity: 0.6; cursor: not-allowed; }

/* Status messages */
.status-msg {
    margin-top: 12px;
    padding: 10px 14px;
    border-radius: 6px;
    font-size: 14px;
    display: none;
}
.status-msg.show { display: block; }
.status-msg.success { background: #ecfdf5; color: #047857; border: 1px solid #a7f3d0; }
.status-msg.error { background: #fef2f2; color: #b91c1c; border: 1px solid #fecaca; }
.status-msg.info { background: #eff6ff; color: #1e40af; border: 1px solid #bfdbfe; }
.status-msg.loading { background: #fefce8; color: #854d0e; border: 1px solid #fde68a; }

/* Footer */
.footer {
    background: #14366e;
    color: #d4dcec;
    padding: 18px 0;
    font-size: 13px;
    margin-top: 30px;
}
.footer p { margin: 4px 0; }

/* Spinner */
.spinner {
    display: inline-block;
    width: 14px;
    height: 14px;
    border: 2px solid #fde68a;
    border-top-color: #854d0e;
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
    margin-right: 8px;
    vertical-align: middle;
}
@keyframes spin { to { transform: rotate(360deg); } }
