:root {
	--color-bg: #111827;
	--color-card-bg: #1f2937;
	--color-input-bg: #374151;
	--color-text-primary: #f9fafb;
	--color-text-secondary: #dae2ef;
	--color-text-placeholder: #6b7280;
	--color-text-error: #f87171;
	--color-brand: #fff1a1;
	--color-brand-hover: #2563eb;
	--color-border: #374151;
	--color-border-focus: #3b82f6;
	--color-shadow: rgba(0, 0, 0, 0.5);
}

        /* --- General Resets and Body Styling --- */
        *, *::before, *::after {
            box-sizing: border-box;
        }

        /* --- Calculator Card --- */
        .calculator-card {
            width: 100%;
            max-width: 512px;
            background-color: var(--color-card-bg);
            border-radius: 0.75rem;
            box-shadow: 0 25px 50px -12px var(--color-shadow);
            padding: 1.5rem;
            margin: 10px auto;
            border: 1px solid var(--color-border);
        }
        @media (min-width: 768px) {
            .calculator-card {
                padding: 2rem;
            }
        }

        .card-header {
            text-align: center;
        }

        .card-header h1 {
            font-size: 1.875rem;
            font-weight: 700;
            color: var(--color-text-primary);
        }

        .card-header p {
            color: var(--color-text-secondary);
            margin-top: 0.5rem;
        }

        /* --- Form Elements --- */
        #calc-form {
            margin-top: 2rem;
            display: flex;
            flex-direction: column;
            gap: 1.25rem;
        }

        .input-group {
            display: flex;
            flex-direction: column;
            gap: 0.5rem;
        }
        
        .input-group label {
             color: var(--color-text-secondary);
             font-weight: 500;
             font-size: 0.875rem;
        }

        .input-field-container {
            display: flex;
            align-items: center;
            background-color: #cecece;
            border-radius: 5px;
            /* border: 1px solid transparent; */
        }
        .input-field-container:focus-within {
            border-color: var(--color-border-focus);
        }

        #function-label {
            color: #141414;
            font-size: 1.25rem;
            padding-left: 0.75rem;
            font-style: italic;
            padding-right: 5px;
        }

        #calc_sample {
            width: 100%;
            background-color: #2a3647 !important;
            font-size: 1.25rem;
            color: #d9d9d9 !important;
            border:1px solid #374151;
            outline: none;
            height: 48px;
            padding: 0 0.75rem;
			border-radius:0 0.2rem 0.2rem 0;
        }
        #calc_sample::placeholder {
            color: var(--color-text-placeholder);
        }

        #variable-select {
            background-color: #2a3647 !important;
            border: 1px solid var(--color-border) !important;
            outline: none;
            font-size: 1rem;
            font-weight: 600;
            color: var(--color-text-primary) !important;
            padding: 0.75rem;
            border-radius: 0.2rem;
            cursor: pointer;
        }
        #variable-select:focus {
            border-color: var(--color-border-focus);
            box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.3);
        }

        #error-message {
            color: var(--color-text-error);
            font-size: 0.875rem;
            height: 1.25rem;
            text-align: center;
        }

#calculate-btn {
	width: 100%;
	background-color: #1a4fc2;
	color: white;
	font-weight: 700;
	height: 3rem;
	border: none;
	border-radius: 0.5rem;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
}
        #calculate-btn:hover {
            background-color: var(--color-brand-hover);
        }
        #calculate-btn:focus {
            outline: 2px solid transparent;
            outline-offset: 2px;
            box-shadow: 0 0 0 2px var(--color-card-bg), 0 0 0 4px var(--color-brand);
        }
        #calculate-btn:disabled {
            opacity: 0.7;
            cursor: not-allowed;
        }

        /* --- Loader Animation --- */
        .loader {
            border: 4px solid rgba(255, 255, 255, 0.3);
            border-top-color: #fff;
            border-radius: 50%;
            width: 1.5rem;
            height: 1.5rem;
            animation: spin 0.1s linear infinite;
        }
        .hidden {
            display: none !important;
        }
        @keyframes spin {
            to {
                transform: rotate(360deg);
            }
        }

        /* --- Modal Styling --- */
        .modal {
            position: fixed;
            top: 0;
            right: 0;
            bottom: 0;
            left: 0;
            background-color: rgba(0, 0, 0, 0.7);
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 1rem;
            z-index: 9999999;
            opacity: 0;
            visibility: hidden;
        }
        .modal.visible {
            opacity: 1;
            visibility: visible;
        }
        .modal-content {
            background-color: var(--color-card-bg);
            width: 100%;
            max-width: 48rem; /* Increased width for graph */
            border-radius: 0.75rem;
            box-shadow: 0 25px 50px -12px var(--color-shadow);
            transform: scale(0.95);
            border: 1px solid var(--color-border);
        }
        .modal.visible .modal-content {
            transform: scale(1);
        }

.modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 13px;
    border-bottom: 1px solid var(--color-border);
    color: #cdcdcd;
}
ol{color: #ff8bfa;}
        #modal-title {
            font-size: 16px;
            font-weight: 700;
            color: var(--color-text-primary);
        }
        #close-modal-btn {
            color: var(--color-text-secondary);
            background: none;
            border: none;
            cursor: pointer;
            padding: 0.25rem;
            border-radius: 99px;
        }
        #close-modal-btn:hover {
            color: var(--color-text-primary);
        }
        #close-modal-btn svg {
            width: 1.5rem;
            height: 1.5rem;
        }

        #modal-body {
            padding: 1.5rem;
            max-height: 80vh;
            overflow-y: auto;
        }

        /* --- Result Display --- */
        .math-container {
            overflow-x: auto;
            overflow-y: hidden;
            padding: 8px;
            white-space: nowrap;
        }
        
        .katex {
             font-size: 1.1rem !important;
        }