:root{--bg:#f5f7fb;--surface:#fff;--text:#172033;--muted:#6b7280;--line:#e8ecf2;--primary:#5b5ce2;--primary2:#7c3aed;--accent:#0ea5e9;--shadow:0 20px 50px rgba(23,32,51,.08);--radius:22px}
*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text);line-height:1.55}a{color:inherit}.shell{min-height:100vh;background:radial-gradient(circle at top left,rgba(91,92,226,.16),transparent 34%),radial-gradient(circle at top right,rgba(14,165,233,.12),transparent 28%),var(--bg)}.wrap{max-width:1180px;margin:auto;padding:24px}.topbar{display:flex;align-items:center;justify-content:space-between;padding:18px 0}.brand{display:flex;align-items:center;gap:12px;font-weight:800;font-size:20px;text-decoration:none}.brand-mark{width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,var(--primary),var(--accent));box-shadow:0 12px 30px rgba(91,92,226,.3);display:grid;place-items:center;color:#fff;font-weight:900}.navlink{padding:10px 14px;border-radius:12px;text-decoration:none;color:var(--muted);font-weight:700}.navlink:hover{background:#fff;color:var(--text)}.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:42px;align-items:center;padding:42px 0 68px}.eyebrow{display:inline-flex;background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 12px;font-weight:800;font-size:13px;color:var(--primary)}.hero h1{font-size:clamp(42px,6vw,72px);line-height:1.02;letter-spacing:-.045em;margin:18px 0}.hero p{font-size:19px;color:var(--muted);max-width:640px}.trust{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:28px}.trust-item{background:rgba(255,255,255,.76);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:18px;padding:16px}.trust-item strong{display:block}.trust-item span{color:var(--muted);font-size:13px}.card{background:rgba(255,255,255,.95);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px}.form-card{position:relative;overflow:hidden}.form-card:before{content:"";position:absolute;inset:0 auto auto 0;width:100%;height:5px;background:linear-gradient(90deg,var(--primary),var(--accent))}.form-card h2{margin:0 0 6px;font-size:28px}.sub{color:var(--muted);margin:0 0 22px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.full{grid-column:1/-1}label{display:block;font-weight:800;font-size:13px;margin-bottom:7px}input,select,textarea{width:100%;padding:14px 15px;border:1px solid #dfe4ec;border-radius:14px;background:#fff;color:var(--text);font:inherit;outline:none;transition:.2s}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 4px rgba(91,92,226,.1)}textarea{min-height:150px;resize:vertical}.filebox{border:1.5px dashed #cfd6e3;background:#f9fafb;border-radius:16px;padding:16px}button,.btn{border:0;border-radius:14px;padding:14px 18px;background:linear-gradient(135deg,var(--primary),var(--primary2));color:#fff;font-weight:800;text-decoration:none;cursor:pointer;box-shadow:0 12px 26px rgba(91,92,226,.22);display:inline-flex;align-items:center;justify-content:center}.btn-secondary{background:#eef1f6;color:var(--text);box-shadow:none}.alert{padding:15px 16px;border-radius:14px;margin:14px 0}.alert-error{background:#fef2f2;color:#991b1b}.alert-success{background:#ecfdf3;color:#166534}.small{font-size:13px;color:var(--muted)}.footer{padding:24px 0 48px;color:var(--muted);font-size:13px;text-align:center}.admin-shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.sidebar{background:#111827;color:#fff;padding:24px;position:sticky;top:0;height:100vh}.sidebar .brand{color:#fff}.sidebar nav{margin-top:36px;display:grid;gap:8px}.sidebar a{padding:12px 14px;border-radius:12px;text-decoration:none;color:#cbd5e1;font-weight:700}.sidebar a:hover,.sidebar a.active{background:rgba(255,255,255,.09);color:#fff}.main{padding:28px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.page-head h1{margin:0;font-size:32px}.page-head p{margin:6px 0 0;color:var(--muted)}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}.metric{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:0 8px 24px rgba(23,32,51,.04)}.metric span{color:var(--muted);font-size:13px;font-weight:700}.metric strong{display:block;font-size:30px;margin-top:6px}.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}.table-card{background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 8px 28px rgba(23,32,51,.05)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:15px 18px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:#fbfcfe}tbody tr:hover{background:#fafbff}.badge{display:inline-flex;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:800;background:#eef2ff;color:#4338ca}.actions{display:flex;gap:10px;flex-wrap:wrap}@media(max-width:920px){.hero{grid-template-columns:1fr}.admin-shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.metrics{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.wrap{padding:16px}.grid,.trust{grid-template-columns:1fr}.full{grid-column:auto}.hero h1{font-size:42px}.metrics{grid-template-columns:1fr}.main{padding:16px}.toplinks{display:none}}
.detail-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:20px}
.submit-row{display:flex;justify-content:flex-start}
.file-list{display:grid;gap:10px}
.file-item{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;text-decoration:none;background:#fff}
.file-item span{font-size:13px;color:var(--muted)}
.note-item{padding:16px 0;border-top:1px solid var(--line)}
.note-item span{font-size:13px;color:var(--muted)}

@media(max-width:920px){
  .detail-grid{grid-template-columns:1fr}
}

@media(max-width:720px){
  body{font-size:16px}
  .wrap{padding:14px}
  .topbar{padding:12px 0}
  .brand{font-size:17px}
  .brand-mark{width:38px;height:38px;border-radius:12px}
  .hero{padding:18px 0 36px;gap:24px}
  .hero-copy{text-align:left}
  .hero h1{font-size:40px;line-height:1.04}
  .hero p{font-size:17px}
  .card{padding:20px;border-radius:18px}
  .form-card h2{font-size:24px}
  input,select,textarea{font-size:16px;padding:15px}
  textarea{min-height:170px}
  button,.btn{width:100%;min-height:52px}
  .submit-row{display:block}
  .admin-shell{display:block}
  .sidebar{position:relative;height:auto;padding:16px}
  .sidebar nav{display:flex;gap:8px;overflow-x:auto;margin-top:18px;padding-bottom:4px}
  .sidebar nav a{white-space:nowrap;flex:0 0 auto}
  .main{padding:14px}
  .page-head{display:block}
  .page-head .btn{margin-top:12px}
  .metrics{grid-template-columns:repeat(2,1fr);gap:10px}
  .metric{padding:16px}
  .metric strong{font-size:26px}
  .filters{display:grid;grid-template-columns:repeat(2,1fr)}
  .filters .btn{width:100%;padding:12px}
  .table-card{overflow-x:auto;-webkit-overflow-scrolling:touch}
  table{min-width:760px}
  .file-item{align-items:flex-start;flex-direction:column;gap:4px}
}

@media(max-width:460px){
  .hero h1{font-size:34px}
  .trust{grid-template-columns:1fr}
  .metrics{grid-template-columns:1fr 1fr}
  .filters{grid-template-columns:1fr}
  .grid{grid-template-columns:1fr}
  .full{grid-column:auto}
  .card{padding:17px}
}
.user-grid{display:grid;gap:18px}
.user-card{padding:22px}
.check-row{display:flex;align-items:center;gap:10px;min-height:48px}
.check-row input{width:auto}
.btn-danger{background:#dc2626;color:#fff;box-shadow:none}
.auth-wrap{min-height:100vh;display:grid;place-items:center}
.auth-card{width:min(100%,520px)}
.auth-card h1{margin-top:28px}

@media(max-width:720px){
  .user-card .actions{display:grid}
  .user-card .actions .btn,
  .user-card .actions button{width:100%}
}
.card-title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 22px;
}

.card-title-row h2 {
    margin: 0 0 5px;
}

.editable-field[readonly],
.editable-select:disabled {
    background: #f5f7fb;
    color: #374151;
    border-color: #e5e7eb;
    cursor: default;
    opacity: 1;
}

.edit-actions {
    display: flex;
    align-items: center;
    gap: 12px;
}

.edit-actions[hidden] {
    display: none;
}

@media (max-width: 720px) {
    .card-title-row {
        flex-direction: column;
        align-items: stretch;
    }

    .card-title-row > button {
        width: 100%;
    }

    .edit-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .edit-actions button {
        width: 100%;
    }
}
.assignment-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: end;
}

.consultation-list {
    display: grid;
    gap: 16px;
    margin-top: 22px;
}

.consultation-item {
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 18px;
    background: #fbfcfe;
}

.consultation-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-bottom: 14px;
}

@media (max-width: 720px) {
    .assignment-row {
        grid-template-columns: 1fr;
    }

    .assignment-row button {
        width: 100%;
    }

    .consultation-head {
        align-items: flex-start;
        flex-direction: column;
    }
}
.quick-actions-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-bottom: 20px;
}

.badge-warning {
    background: #fff7ed;
    color: #c2410c;
}

@media (max-width: 820px) {
    .quick-actions-grid {
        grid-template-columns: 1fr;
    }
}
.dashboard-search-card {
    margin-bottom: 18px;
    padding: 20px;
}

.dashboard-search-form {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) minmax(220px, 320px) auto;
    gap: 14px;
    align-items: end;
}

.dashboard-search-actions {
    display: flex;
    gap: 10px;
}

@media (max-width: 900px) {
    .dashboard-search-form {
        grid-template-columns: 1fr;
    }

    .dashboard-search-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .dashboard-search-actions .btn,
    .dashboard-search-actions button {
        width: 100%;
    }
}

@media (max-width: 520px) {
    .dashboard-search-actions {
        grid-template-columns: 1fr;
    }
}
.required-mark{color:#dc2626;font-weight:900}
#subject-field[hidden]{display:none}
