/*
 * ARSAGO / shadcn-ui application layer
 * Component anatomy and tokens follow ui.shadcn.com (Nova, neutral).
 * Kept as a Blade-native layer so Laravel routes, policies and forms remain intact.
 */
:root {
    --background: #fafafa;
    --foreground: #0a0a0a;
    --card: #ffffff;
    --card-foreground: #0a0a0a;
    --popover: #ffffff;
    --popover-foreground: #0a0a0a;
    --primary: #171717;
    --primary-foreground: #fafafa;
    --secondary: #f4f4f5;
    --secondary-foreground: #18181b;
    --muted: #f4f4f5;
    --muted-foreground: #71717a;
    --accent: #f4f4f5;
    --accent-foreground: #18181b;
    --destructive: #dc2626;
    --destructive-foreground: #fff;
    --border: #e4e4e7;
    --input: #e4e4e7;
    --ring: #a1a1aa;
    --radius: .5rem;
    --sidebar: #ffffff;
    --sidebar-foreground: #27272a;
    --sidebar-accent: #f4f4f5;
    --sidebar-accent-foreground: #18181b;
    --sidebar-border: #e4e4e7;

    --app-nav: 248px;
    --font-ui: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --text-strong: var(--foreground);
    --text: #27272a;
    --text-muted: var(--muted-foreground);
    --text-faint: #a1a1aa;
    --canvas: var(--background);
    --surface: var(--card);
    --surface-subdued: var(--muted);
    --surface-hover: #fafafa;
    --border-strong: #d4d4d8;
    --accent-hover: #262626;
    --accent-soft: var(--accent);
    --shadow-card: 0 1px 2px rgb(0 0 0 / .035);
    --shadow-overlay: 0 16px 40px rgb(0 0 0 / .12);
    --control-height: 36px;
}

body {
    color: var(--foreground);
    background:
        radial-gradient(circle at 50% -240px, rgb(255 255 255 / .96) 0, transparent 480px),
        var(--background);
    font-size: 13px;
}

body:not(.auth-page) { padding-left: var(--app-nav); }

button, a, input, select, textarea, summary { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible {
    outline: 2px solid var(--ring);
    outline-offset: 2px;
}

/* Sidebar */
.topbar[data-slot="sidebar"] {
    width: var(--app-nav);
    padding: 14px 12px;
    color: var(--sidebar-foreground);
    background: var(--sidebar);
    border-right: 1px solid var(--sidebar-border);
    box-shadow: none;
}
.topbar .brand {
    height: 46px;
    padding: 0 10px;
    color: var(--foreground);
    font-size: 13px;
    letter-spacing: .18em;
}
.topbar .brand-mark { color: var(--foreground); }
.nav-section-label {
    margin: 22px 10px 7px;
    color: #a1a1aa;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: none;
}
.topnav[data-slot="sidebar-menu"] { gap: 2px; }
.topnav a {
    height: 38px;
    padding: 0 10px;
    border-radius: 6px;
    color: #52525b;
    font-size: 12px;
    font-weight: 500;
}
.topnav a svg { width: 16px; height: 16px; stroke-width: 1.8; }
.topnav a:hover { color: var(--foreground); background: var(--sidebar-accent); }
.topnav a.active {
    color: var(--sidebar-accent-foreground);
    background: var(--sidebar-accent);
    box-shadow: inset 0 0 0 1px rgb(0 0 0 / .025);
    font-weight: 600;
}
.nav-count {
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    color: #fff;
    background: var(--foreground);
    font-size: 9px;
}
.account-menu {
    padding: 12px 6px 0;
    grid-template-columns: 30px minmax(0, 1fr) 30px;
    border-color: var(--sidebar-border);
}
.account-avatar {
    width: 30px;
    height: 30px;
    color: var(--foreground);
    background: var(--muted);
    border: 1px solid var(--border);
}
.account-menu strong { color: var(--foreground); }
.account-menu small { color: var(--muted-foreground); }
.account-menu button { width: 30px; height: 30px; color: var(--muted-foreground); }
.account-menu button:hover { color: var(--foreground); background: var(--accent); }

/* Layout and typography */
.page-shell { width: min(1280px, calc(100% - 64px)); padding: 36px 0 64px; }
.narrow-page { width: min(1120px, calc(100% - 64px)); }
.page-heading {
    margin-bottom: 24px;
    padding-bottom: 18px;
    align-items: center;
    border-color: var(--border);
}
.page-heading h1 {
    color: var(--foreground);
    font-size: 24px;
    font-weight: 650;
    letter-spacing: -.03em;
}
.page-heading h2 { font-size: 18px; letter-spacing: -.02em; }
.page-heading div > p:last-child { margin-top: 5px; font-size: 12px; }
.section-heading { margin: 28px 0 12px; }
.section-heading h2 { font-size: 14px; }
.back-link { margin-bottom: 16px; font-size: 12px; }

/* shadcn Button */
.primary-button, .secondary-button, .approve-button, .reject-button,
.draft-bar button, .editor-history-tools button, .advanced-tools button,
.drawing-actions button, .issue-panel button, .view-tools button {
    min-height: 36px;
    padding: 0 13px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 550;
    box-shadow: 0 1px 1px rgb(0 0 0 / .04);
}
.primary-button, .approve-button {
    color: var(--primary-foreground);
    background: var(--primary);
    border-color: var(--primary);
}
.primary-button:hover, .approve-button:hover { background: var(--accent-hover); }
.secondary-button,
.draft-bar button, .editor-history-tools button, .advanced-tools button,
.drawing-actions button, .issue-panel button, .view-tools button {
    color: var(--foreground);
    background: var(--background);
    border-color: var(--border);
}
.secondary-button:hover,
.draft-bar button:hover, .editor-history-tools button:hover, .advanced-tools button:hover,
.drawing-actions button:hover, .issue-panel button:hover, .view-tools button:hover {
    color: var(--accent-foreground);
    background: var(--accent);
}
.reject-button { color: var(--destructive); border-color: #fecaca; background: #fff; }
.reject-button:hover { color: #fff; background: var(--destructive); border-color: var(--destructive); }
button:disabled, .primary-button:disabled, .secondary-button:disabled { opacity: .45; }

/* shadcn Alert */
.flash[data-slot="alert"] {
    top: 16px;
    max-width: 520px;
    padding: 10px 13px;
    border-radius: var(--radius);
    box-shadow: var(--shadow-overlay);
    font-size: 12px;
}
.flash.success { color: var(--foreground); background: #fff; border-color: var(--border); }
.flash.error { color: #991b1b; background: #fff; border-color: #fecaca; }

/* shadcn Card */
.form-card, .data-card, .approval-card, .portfolio-card,
.portfolio-summary, .finance-grid, .editor-flow, .editor-map-panel, .editor-sidebar {
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--card);
    box-shadow: var(--shadow-card);
}
.form-card { padding: 20px; }
.card-header { margin: 0 0 18px; padding: 0 0 15px; border-color: var(--border); }
.card-header h2, .form-card > h2, .data-card > h2 { font-size: 14px; font-weight: 600; }
.card-header p { margin-top: 4px; font-size: 11px; }
.detail-layout, .detail-grid { gap: 20px; }
.block-stack { gap: 16px; }

/* shadcn Field, Input, Select, Textarea */
.form-card label > span, .inspector-form label > span, .login-form label span,
.issue-panel label, #candidateForm label {
    margin-bottom: 6px;
    color: var(--foreground);
    font-size: 12px;
    font-weight: 550;
}
.form-card label small, .upload-field small, .inspector-form label small,
.login-form label small, #candidateForm label small {
    margin-top: 5px;
    color: var(--muted-foreground);
    font-size: 10px;
}
.form-card input:not([type=checkbox]), .form-card select, .form-card textarea,
.inspector-form input, .inspector-form select, .inspector-form textarea,
.login-form input:not([type=checkbox]), .approval-actions input,
.issue-panel select, #candidateForm input, #candidateForm select,
.coordinate-import-grid input, .coordinate-import-grid textarea,
.advanced-tools-grid select, .editor-settings select {
    min-height: 36px;
    padding: 0 10px;
    border: 1px solid var(--input);
    border-radius: 6px;
    color: var(--foreground);
    background: var(--background);
    box-shadow: 0 1px 1px rgb(0 0 0 / .025);
    font-size: 12px;
}
.form-card textarea, .inspector-form textarea, .coordinate-import-grid textarea { padding: 9px 10px; }
.form-card input:hover, .form-card select:hover, .form-card textarea:hover,
.inspector-form input:hover, .inspector-form select:hover, .inspector-form textarea:hover { border-color: var(--border-strong); }
.form-card input:focus, .form-card select:focus, .form-card textarea:focus,
.inspector-form input:focus, .inspector-form select:focus, .inspector-form textarea:focus,
.login-form input:focus, .issue-panel select:focus, #candidateForm input:focus, #candidateForm select:focus {
    border-color: var(--ring);
    box-shadow: 0 0 0 3px rgb(161 161 170 / .18);
}
input[type="checkbox"] { accent-color: var(--foreground); }
.field-error { color: var(--destructive); }

/* shadcn Table */
.data-card { overflow: hidden; }
.list-heading { min-height: 52px; padding: 0 16px; border-color: var(--border); }
.list-heading h2 { font-size: 13px; }
.data-table th {
    height: 40px;
    padding: 0 14px;
    color: var(--muted-foreground);
    background: #fafafa;
    border-color: var(--border);
    font-size: 10px;
    font-weight: 550;
    letter-spacing: 0;
    text-transform: none;
}
.data-table td {
    height: 56px;
    padding: 10px 14px;
    border-color: var(--border);
    font-size: 12px;
}
.data-table tbody tr:hover, .data-table tbody tr:focus-within { background: #fafafa; }
.row-action a {
    min-height: 32px;
    color: var(--foreground);
    background: transparent;
    border: 1px solid var(--border);
    border-radius: 6px;
}
.row-action a:hover { background: var(--accent); }

/* shadcn Badge and status vocabulary */
.status-badge, .role-label, .project-tag, .heading-count, .plan-approval-badge {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    min-height: 22px;
    padding: 2px 8px;
    border: 1px solid var(--border);
    border-radius: 999px;
    color: #3f3f46;
    background: #fafafa;
    font-size: 10px;
    font-weight: 550;
    line-height: 1;
}
.status-badge.available, .status-badge.reserved, .status-badge.sold,
.plan-approval-badge.approved, .plan-approval-badge.draft {
    color: #3f3f46;
    background: #f4f4f5;
    border-color: #e4e4e7;
}
.status-badge.cancelled { color: #991b1b; background: #fef2f2; border-color: #fecaca; }

/* Index cards and stats */
.portfolio-summary, .finance-grid { margin-bottom: 24px; }
.portfolio-summary > div, .finance-stat { padding: 16px 18px; }
.portfolio-summary strong, .finance-stat strong { font-size: 20px; }
.project-count-summary small { display: block; color: var(--muted-foreground); font-size: 10px; white-space: nowrap; }
.project-grid { gap: 14px; }
.portfolio-card { overflow: hidden; }
.portfolio-card:hover { border-color: #a1a1aa; box-shadow: 0 4px 12px rgb(0 0 0 / .06); }
.portfolio-cover { background-color: #18181b; }
.portfolio-cover-meta {
    position: absolute;
    z-index: 2;
    inset: 16px 16px auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.portfolio-cover .project-state-badge,
.project-state-badge {
    min-height: 22px;
    padding: 3px 8px;
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--border);
    border-radius: 999px;
    color: var(--foreground);
    background: #fff;
    font-size: 9px;
    font-weight: 650;
    letter-spacing: 0;
    line-height: 1;
    white-space: nowrap;
}
.portfolio-cover .project-state-badge.active { color: #18181b; background: #fff; border-color: #fff; }
.portfolio-cover .project-state-badge.draft { color: #fff; background: rgb(24 24 27 / .72); border-color: rgb(255 255 255 / .65); border-style: dashed; }
.portfolio-cover .project-state-badge.archived { color: #d4d4d8; background: rgb(24 24 27 / .8); border-color: #71717a; }
.portfolio-body { padding: 15px 16px; }
.portfolio-total span, .mini-stats span, .portfolio-footer span { color: var(--muted-foreground); }
.portfolio-total strong { color: var(--foreground); }
.portfolio-footer b { color: var(--foreground); }
.empty-state {
    border-color: var(--border-strong);
    color: var(--muted-foreground);
    background: transparent;
}

/* Approval cards */
.approval-list { gap: 12px; }
.approval-card { padding: 18px; }
.approval-card header span { color: var(--muted-foreground); }
.change-table { border-color: var(--border); border-radius: 6px; overflow: hidden; }
.change-table > div { border-color: var(--border); }
.change-table .change-head { background: #fafafa; }
.request-note { border-color: var(--border); background: var(--muted); }

/* Project workspace */
.workspace { background: var(--background); }
.workspace-sidebar, .inspector {
    color: var(--foreground);
    background: var(--card);
    border-color: var(--border);
}
.project-card, .search-box, .parcel-quick-select, .stock-stat, .record-card,
.operation-buttons button, .transaction-context, .transaction-review,
.payment-disclosure, .plan-tools > summary, .plan-export-bar {
    border-color: var(--border);
    border-radius: var(--radius);
}
.workspace-sidebar .stock-stat,
.workspace-sidebar .stock-stat.available,
.workspace-sidebar .stock-stat.reserved,
.workspace-sidebar .stock-stat.sold,
.operation-buttons button {
    color: var(--foreground);
    background: var(--card);
    border-color: var(--border);
}
.workspace-sidebar .stock-stat b,
.workspace-sidebar .stock-stat.available b,
.workspace-sidebar .stock-stat.reserved b,
.workspace-sidebar .stock-stat.sold b { color: var(--foreground); }
.workspace-sidebar .stock-stat span { color: var(--muted-foreground); }
.stock-stat:hover, .operation-buttons button:hover { background: var(--accent); }
.workspace-sidebar .stock-stat.active {
    color: var(--foreground);
    border-color: var(--foreground);
    background: var(--card);
    box-shadow: inset 0 0 0 1px var(--foreground);
}
.plan-area { background: #f4f4f5; }
.workspace-sidebar .section-label,
.workspace-sidebar .section-label h2,
.workspace-sidebar .search-section label { color: var(--foreground); border-color: var(--border); }
.workspace-sidebar .section-label > span,
.workspace-sidebar .quick-select-label,
.workspace-sidebar .filter-status,
.workspace-sidebar .activity-item time,
.workspace-sidebar .activity-item p { color: var(--muted-foreground); }
.workspace-sidebar .activity-item strong { color: var(--foreground); }
.workspace-sidebar .search-box {
    color: var(--foreground);
    background: var(--background);
    border-color: var(--input);
}
.workspace-sidebar .search-box input,
.workspace-sidebar .search-box button { color: var(--foreground); background: transparent; }
.workspace-sidebar .search-box input::placeholder { color: #a1a1aa; }
.workspace-sidebar .parcel-quick-select {
    color: var(--foreground);
    background: var(--background);
    border-color: var(--input);
}
.plan-status-row { border-color: var(--border); }
.plan-header h1 { font-size: 24px; }
.plan-viewport { border: 1px solid #d4d4d8; border-radius: var(--radius); box-shadow: 0 1px 3px rgb(0 0 0 / .08); }
.inspector { box-shadow: none; }
.inspector-head { border-color: var(--border); }
.inspector-label, .form-kicker { color: var(--muted-foreground); }
.inspector .parcel-specs span,
.inspector .price-section > span,
.inspector .record-card span,
.parcel-actions > p,
.operation-buttons span { color: var(--muted-foreground); }
.inspector .parcel-specs, .inspector .record-card { background: var(--muted); border-color: var(--border); }
.inspector .parcel-specs strong, .inspector .record-card strong,
.parcel-actions h3, .operation-buttons strong { color: var(--foreground); }
.price-section { border-color: var(--border); }
.price-section output { font-size: 27px !important; }
.operation-buttons button { min-height: 66px; }
.operation-buttons button strong { font-size: 12px; }
.operation-buttons button span { font-size: 10px; }
.parcel-boundary.selected, .parcel-boundary:focus { stroke-width: 1px; }

/* Parcel editor: shadcn toolbar / cards / fields */
.parcel-editor-page { max-width: 1760px; padding-top: 30px; }
.parcel-editor-page .editor-heading { margin-bottom: 18px; }
.parcel-editor-page .editor-heading h1 { font-size: 24px; }
.editor-flow li { padding: 11px 14px; }
.editor-flow li > span {
    width: 22px;
    height: 22px;
    color: var(--foreground);
    background: var(--muted);
    border: 1px solid var(--border);
}
.parcel-editor-page .editor-status { background: #fafafa; }
.draft-bar { min-height: 40px; }
.editor-primary-tools { padding: 12px 14px; }
.editor-primary-tools .primary-button, .editor-primary-tools .secondary-button { min-height: 36px; }
.advanced-tools { padding: 0 14px; }
.editor-viewport { background: #18181b; }
.editor-sidebar > header { padding: 14px; }
.issue-panel { padding: 12px 14px; background: #fafafa; }
.candidate-fields { padding: 14px; }
.candidate-list { padding: 0 14px 14px; }
.candidate-list button.selected { background: var(--accent); }

/* Gallery / Dialog */
.gallery-item, .gallery-manage-item { border-radius: var(--radius); border-color: var(--border); }
.gallery-lightbox { border-radius: var(--radius); background: #09090b; }
.gallery-lightbox::backdrop { background: rgb(9 9 11 / .88); backdrop-filter: blur(4px); }

/* Destructive project action */
.danger-zone {
    margin-top: 32px;
    padding: 20px;
    border: 1px solid #fecaca;
    border-radius: var(--radius);
    background: #fff;
}
.project-management-stack { position: sticky; top: 24px; display: grid; gap: 16px; }
.project-state-card .card-header { align-items: flex-start; }
.project-state-card .card-header > div { min-width: 0; }
.project-state-card .project-state-badge.draft { border-style: dashed; }
.compact-danger-zone { margin-top: 0; padding: 16px; }
.compact-danger-zone > header { gap: 10px; padding-bottom: 13px; }
.compact-danger-zone .delete-project-form { grid-template-columns: 1fr; gap: 12px; }
.compact-danger-zone .delete-project-form .reject-button { width: 100%; }
.danger-zone > header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    padding-bottom: 16px;
    border-bottom: 1px solid #fee2e2;
}
.danger-zone h2 { margin: 0; color: #991b1b; font-size: 14px; font-weight: 650; }
.danger-zone header p { margin: 4px 0 0; color: var(--muted-foreground); font-size: 11px; }
.danger-zone header > span {
    padding: 4px 8px;
    border-radius: 999px;
    color: #991b1b;
    background: #fef2f2;
    font-size: 10px;
    font-weight: 600;
    white-space: nowrap;
}
.delete-project-form {
    padding-top: 16px;
    display: grid;
    grid-template-columns: minmax(240px, 1fr) auto;
    align-items: end;
    gap: 16px;
}
.delete-project-form label { display: block; }
.delete-project-form label > span { margin-bottom: 6px; display: block; color: var(--foreground); font-size: 12px; font-weight: 550; }
.delete-project-form label > small { margin-top: 5px; display: block; color: var(--muted-foreground); font-size: 10px; }
.delete-project-form input {
    width: 100%;
    min-height: 36px;
    padding: 0 10px;
    border: 1px solid var(--input);
    border-radius: 6px;
    color: var(--foreground);
    background: var(--background);
}
.delete-project-form .reject-button { white-space: nowrap; }
.destructive-alert { padding: 16px 0 0; display: flex; align-items: flex-start; gap: 10px; color: #991b1b; }
.destructive-alert .ui-icon { margin-top: 2px; }
.destructive-alert strong { display: block; font-size: 12px; }
.destructive-alert p { margin: 3px 0 0; color: var(--muted-foreground); font-size: 11px; }
.alert-panel.destructive-alert {
    margin: 0 0 22px;
    padding: 14px 16px;
    border: 1px solid #fecaca;
    border-radius: var(--radius);
    background: #fffafa;
}
.alert-panel.destructive-alert small { display: block; margin-top: 8px; color: var(--muted-foreground); font-size: 10px; }
.destructive-text { display: block; margin-top: 3px; color: #991b1b !important; }
.sale-cancellation { display: grid; grid-template-columns: minmax(220px, .7fr) minmax(340px, 1.3fr); gap: 28px; align-items: start; }
.sale-cancellation > div > p { margin: 6px 0 0; color: var(--muted-foreground); font-size: 11px; line-height: 1.55; }
.sale-cancellation form label { display: block; }
.sale-cancellation form label > span { display: block; margin-bottom: 6px; font-size: 12px; font-weight: 550; }
.sale-cancellation textarea { width: 100%; min-height: 88px; padding: 10px 12px; resize: vertical; border: 1px solid var(--input); border-radius: 6px; background: var(--background); }
.sale-cancellation textarea:focus { outline: 0; border-color: var(--ring); box-shadow: 0 0 0 3px rgb(24 24 27 / .08); }
.sale-cancellation label > small { display: block; margin-top: 5px; color: var(--muted-foreground); font-size: 10px; }
.sale-cancellation .reject-button { margin-top: 12px; }
.form-help { margin: 14px 0 0; color: var(--muted-foreground); font-size: 11px; line-height: 1.55; }

/* Authentication */
.auth-page { background: #fff; }
.login-shell { grid-template-columns: minmax(440px, .9fr) minmax(460px, 1.1fr); }
.login-story {
    margin: 14px;
    min-height: calc(100dvh - 28px);
    padding: 42px;
    border-radius: 12px;
    background: linear-gradient(145deg, rgb(9 9 11 / .88), rgb(39 39 42 / .7)), url("../assets/goynuk-vaziyet-plani.jpeg") center / cover;
}
.login-story h1 { font-size: clamp(40px, 5vw, 68px); }
.login-panel { background: #fff; }
.login-form { max-width: 390px; }
.login-form h2 { font-size: 25px; }

@media (max-width: 900px) {
    :root { --app-nav: 0px; }
    body:not(.auth-page) { padding-left: 0; }
    .topbar[data-slot="sidebar"] { width: 100%; padding: 9px 12px 8px; }
    .topbar .brand { height: 38px; }
    .topnav a { height: 36px; }
    .page-shell { width: calc(100% - 28px); }
}

@media (max-width: 600px) {
    .login-story { margin: 0; min-height: 34dvh; border-radius: 0; }
    .form-card { padding: 16px; }
    .page-heading h1 { font-size: 22px; }
    .delete-project-form { grid-template-columns: 1fr; }
    .delete-project-form .reject-button { width: 100%; }
    .sale-cancellation { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
    .project-management-stack { position: static; }
}
