 * {
            box-sizing: border-box;
            font-family: 'Segoe UI', sans-serif;
        }

        body {
            margin: 0;
            background: #f4f8f5;
            color: #1f2937;
        }

        .container {
            max-width: 1100px;
            margin: 30px auto;
            padding: 20px;
        }

        .btn-back {
            display: inline-block;
            margin-bottom: 18px;
            color: #15803d;
            text-decoration: none;
            font-weight: 700;
        }

        .header-box {
            background: linear-gradient(135deg, #15803d, #22c55e);
            color: white;
            padding: 32px;
            border-radius: 24px;
            margin-bottom: 25px;
            box-shadow: 0 15px 35px rgba(21, 128, 61, 0.2);
        }

        .header-box h1 {
            margin: 0 0 10px;
            font-size: 30px;
        }

        .header-box p {
            margin: 0;
            line-height: 1.6;
            color: #ecfdf5;
        }

        .card {
            background: white;
            border-radius: 18px;
            padding: 25px;
            margin-bottom: 22px;
            box-shadow: 0 8px 25px rgba(15, 23, 42, 0.07);
            border: 1px solid #e5e7eb;
        }

        .card h2 {
            margin: 0 0 18px;
            color: #14532d;
            font-size: 21px;
        }

        .form-group {
            margin-bottom: 16px;
        }

        label {
            display: block;
            margin-bottom: 7px;
            font-weight: 600;
            font-size: 14px;
        }

        input[type="text"],
        input[type="date"],
        input[type="number"],
        input[type="password"],
        select {
            width: 100%;
            padding: 12px 14px;
            border-radius: 10px;
            border: 1px solid #d1d5db;
            outline: none;
            font-size: 14px;
            background: #ffffff;
        }

        input:focus,
        select:focus {
            border-color: #16a34a;
            box-shadow: 0 0 0 3px rgba(22, 163, 74, 0.12);
        }

        input[readonly] {
            background: #f9fafb;
            color: #374151;
        }

        .grid-2 {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 18px;
        }

        .nilai-grid {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 14px;
        }

        .check-grid {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 12px;
        }

        .check-item {
            border: 1px solid #d1fae5;
            background: #f0fdf4;
            padding: 12px;
            border-radius: 12px;
            display: flex;
            gap: 10px;
            align-items: flex-start;
            cursor: pointer;
        }

        .check-item:hover {
            background: #dcfce7;
        }

        .question-item {
            border: 1px solid #e5e7eb;
            padding: 16px;
            border-radius: 14px;
            margin-bottom: 14px;
            background: #fafafa;
        }

        .question-top {
            display: flex;
            justify-content: space-between;
            gap: 12px;
            margin-bottom: 10px;
        }

        .radio-group {
            display: flex;
            gap: 16px;
        }

        .radio-group label {
            font-weight: 500;
            margin: 0;
            display: flex;
            gap: 6px;
            align-items: center;
        }

        .btn-submit {
            width: 100%;
            border: none;
            background: #15803d;
            color: white;
            padding: 15px;
            border-radius: 14px;
            font-size: 16px;
            font-weight: 700;
            cursor: pointer;
            box-shadow: 0 12px 25px rgba(21, 128, 61, 0.25);
        }

        .btn-submit:hover {
            background: #166534;
        }

        .instruction-box {
            background: #ecfdf5;
            border-left: 5px solid #16a34a;
            color: #14532d;
            padding: 14px 16px;
            border-radius: 12px;
            margin-bottom: 18px;
            line-height: 1.6;
            font-size: 14px;
        }

        .alert-error {
            background: #fee2e2;
            color: #991b1b;
            padding: 12px 14px;
            border-radius: 10px;
            margin-bottom: 15px;
            border-left: 5px solid #dc2626;
        }

        .student-select-table {
            width: 100%;
            border-collapse: collapse;
            font-size: 14px;
        }

        .student-select-table th {
            background: #ecfdf5;
            color: #14532d;
            padding: 12px;
            text-align: left;
            border-bottom: 1px solid #bbf7d0;
        }

        .student-select-table td {
            padding: 12px;
            border-bottom: 1px solid #e5e7eb;
        }

        .status-belum {
            display: inline-block;
            background: #fee2e2;
            color: #991b1b;
            padding: 6px 10px;
            border-radius: 999px;
            font-size: 12px;
            font-weight: 700;
        }

        .btn-pilih-siswa {
            background: #15803d;
            color: #ffffff;
            padding: 8px 12px;
            border-radius: 10px;
            text-decoration: none;
            font-weight: 700;
            display: inline-block;
        }

        .btn-pilih-siswa:hover {
            background: #166534;
        }

        .btn-ganti-siswa {
            display: inline-block;
            margin-top: 10px;
            color: #15803d;
            font-weight: 700;
            text-decoration: none;
        }

        .table-responsive {
            overflow-x: auto;
        }

        .empty-data {
            text-align: center;
            padding: 20px;
            color: #6b7280;
        }

        @media (max-width: 768px) {
            .grid-2,
            .nilai-grid,
            .check-grid {
                grid-template-columns: 1fr;
            }

            .question-top {
                flex-direction: column;
            }

            .student-select-table {
                min-width: 720px;
            }
        }