:root{--blue: #1b4d9b;--blue-2: #3d74c9;--blue-50: #eaf1fb;--amber: #f2a93b;--ink: #16213a;--muted: #5a6478;--line: #dce3ee;--ground: #f4f6fa;--white: #ffffff;--green: #1e7f4f;--green-50: #e7f5ee;--red: #b42318;--red-50: #fdecea;--warn: #8a5300;--warn-50: #fff4e2;--radius: 14px;--shadow: 0 1px 2px rgba(22, 33, 58, .06), 0 8px 24px rgba(22, 33, 58, .06)}*{box-sizing:border-box}html,body{margin:0;background:var(--ground);color:var(--ink);font-family:Plus Jakarta Sans,system-ui,-apple-system,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased}a{color:var(--blue);font-weight:600}a:hover{color:var(--ink)}h1,h2,p{margin:0}.muted{color:var(--muted)}.logo{display:inline-flex;align-items:center;gap:8px;font-weight:800;letter-spacing:.08em}.btn{min-height:46px;padding:0 18px;border:0;border-radius:12px;font:inherit;font-size:15px;font-weight:700;cursor:pointer}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--blue);color:var(--white)}.btn-primary:hover:not(:disabled){background:#163f80}.btn-soft{min-height:40px;background:var(--blue-50);color:var(--blue);font-size:14px}.btn-ghost-light{min-height:40px;background:#ffffff24;color:var(--white);font-size:14px}.btn-danger-soft{min-height:40px;background:var(--red-50);color:var(--red);font-size:14px}.btn-inline{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.btn:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,a:focus-visible,.password-toggle:focus-visible{outline:3px solid var(--amber);outline-offset:2px}.form{display:flex;flex-direction:column;gap:16px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:14px;font-weight:700}.field input,.field select{height:48px;padding:0 14px;border:1px solid var(--line);border-radius:12px;font:inherit;font-size:16px;color:var(--ink);background:var(--white)}.field input:disabled{background:var(--ground)}.field input[aria-invalid=true],.field select[aria-invalid=true]{border-color:var(--red)}.field-error{font-size:13px;color:var(--red);font-weight:600}.field-hint{font-size:13px;color:var(--muted)}.password-field{position:relative}.password-toggle{position:absolute;right:6px;top:28px;height:40px;padding:0 10px;border:0;border-radius:8px;background:transparent;color:var(--blue);font:inherit;font-size:13px;font-weight:700;cursor:pointer}.password-field input{padding-right:84px}.alert{padding:12px 14px;border-radius:12px;font-size:14px;font-weight:600;margin-bottom:16px}.alert-error{background:var(--red-50);color:var(--red)}.alert-info{background:var(--blue-50);color:var(--blue)}.alert-success{background:var(--green-50);color:var(--green)}.auth-wrap{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px 16px}.auth-card{width:100%;max-width:420px;background:var(--white);border-radius:20px;padding:32px 24px;box-shadow:var(--shadow)}.auth-head{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;margin-bottom:24px}.auth-head h1{font-size:22px;font-weight:800;margin-top:8px}.auth-links{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:20px;font-size:14px;text-align:center}.app{min-height:100vh}.app-header{background:var(--blue);color:var(--white);padding:18px 16px 24px;padding-top:max(18px,env(safe-area-inset-top))}.app-header-row,.app-greeting,.app-main{max-width:960px;margin:0 auto}.app-header-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.app-greeting{display:flex;flex-direction:column;margin-top:16px}.app-greeting span{font-size:14px;opacity:.85}.app-greeting strong{font-size:24px;font-weight:800}.app-main{padding:16px;display:flex;flex-direction:column;gap:16px}.banner{padding:12px 14px;border-radius:12px;font-size:14px}.banner-info{background:var(--blue-50);color:var(--blue)}.banner-warn{background:var(--warn-50);color:var(--warn)}.section{display:flex;flex-direction:column;gap:12px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-head h2{font-size:18px;font-weight:800}.empty{background:var(--white);border:1px dashed var(--line);border-radius:var(--radius);padding:32px 20px;text-align:center;display:flex;flex-direction:column;gap:6px}.empty-title{font-weight:800}.loading{min-height:100vh;display:flex;align-items:center;justify-content:center;color:var(--muted);font-weight:600}.small{font-size:13px}h3{margin:0}.logo-link{text-decoration:none;border-radius:8px}.app-back{max-width:960px;margin:14px auto 0}.app-back a{color:var(--white);opacity:.9;font-size:14px;text-decoration:none}.app-back a:hover{opacity:1;text-decoration:underline}.app-back+.app-greeting{margin-top:8px}.card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 16px;display:flex;flex-direction:column;gap:14px}.card-title{font-size:16px;font-weight:800}.form-grid{display:grid;grid-template-columns:1fr;gap:14px}@media (min-width: 640px){.form-grid{grid-template-columns:1fr 1fr}.span-2{grid-column:span 2}}.form-actions{display:flex;flex-wrap:wrap;gap:10px}.form-actions .btn{flex:1 1 auto}@media (min-width: 640px){.form-actions .btn{flex:0 0 auto}}.group-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:10px}@media (min-width: 640px){.group-list{grid-template-columns:1fr 1fr}}.group-card{display:flex;flex-direction:column;gap:4px;padding:16px;background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);border-left:5px solid var(--blue);color:var(--ink);text-decoration:none;font-weight:400}.group-card:hover{color:var(--ink);border-left-color:var(--amber)}.group-name{font-size:17px;font-weight:800}.group-meta{font-size:13px;color:var(--muted)}.group-count{font-size:13px;font-weight:700;color:var(--blue);margin-top:4px}.acc{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow)}.acc>summary,.student>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px}.acc>summary::-webkit-details-marker,.student>summary::-webkit-details-marker{display:none}.acc>summary{min-height:56px;padding:0 16px;border-radius:var(--radius)}.acc-title{font-size:16px;font-weight:800;flex:1}.acc-badge{min-width:28px;padding:2px 8px;border-radius:999px;background:var(--blue-50);color:var(--blue);font-size:13px;font-weight:800;text-align:center}.acc-chevron{width:10px;height:10px;border-right:2.5px solid var(--muted);border-bottom:2.5px solid var(--muted);transform:rotate(45deg);margin:0 4px 4px;transition:transform .15s;flex:none}details[open]>summary>.acc-chevron{transform:rotate(-135deg);margin-bottom:-4px}.acc-body{padding:4px 16px 18px;display:flex;flex-direction:column;gap:14px}.student-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.student-list>li+li{border-top:1px solid var(--line)}.student>summary{padding:10px 2px;min-height:52px}.student-num{width:28px;flex:none;text-align:right;font-size:13px;font-weight:700;color:var(--muted)}.student-main{flex:1;display:flex;flex-direction:column;min-width:0}.student-name{font-weight:700;display:block}.student-contact{font-size:13px;color:var(--muted);display:block;overflow-wrap:anywhere}.student-body{padding:4px 0 16px 38px;display:flex;flex-direction:column;gap:12px;align-items:flex-start}.student-body .form{width:100%}@media (max-width: 480px){.student-body{padding-left:0}}.steps{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:14px}.steps li{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.steps li::marker{font-weight:800;color:var(--blue)}.file-pick{display:flex;flex-wrap:wrap;align-items:center;gap:10px;cursor:pointer}.file-pick input{position:absolute;width:1px;height:1px;opacity:0}.file-pick:focus-within .btn{outline:3px solid var(--amber);outline-offset:2px}.preview{display:flex;flex-direction:column;gap:12px;border-top:1px solid var(--line);padding-top:14px}.preview-rows{list-style:none;margin:0;padding:0;max-height:420px;overflow-y:auto;border:1px solid var(--line);border-radius:12px}.preview-row{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;padding:10px 12px;border-left:4px solid transparent;font-size:14px}.preview-row+.preview-row{border-top:1px solid var(--line)}.preview-n{font-size:12px;color:var(--muted);font-weight:700;grid-row:span 2;padding-top:2px;white-space:nowrap}.preview-name{font-weight:700}.preview-status{font-size:13px}.preview-error{grid-column:2;font-size:13px;color:var(--red);font-weight:600}.tone-ok{border-left-color:var(--green)}.tone-ok .preview-status{color:var(--green);font-weight:700}.tone-info{border-left-color:var(--blue-2)}.tone-info .preview-status{color:var(--blue)}.tone-muted{border-left-color:var(--line);color:var(--muted)}.tone-bad{border-left-color:var(--red);color:var(--red)}.preview-row.tone-bad{background:var(--red-50);color:var(--ink)}.preview-row.tone-bad .preview-status{color:var(--red);font-weight:700}.pick-list{list-style:none;margin:0;padding:0;max-height:420px;overflow-y:auto}.pick-list li+li{border-top:1px solid var(--line)}.pick{display:flex;align-items:center;gap:12px;padding:10px 4px;cursor:pointer;min-height:52px}.pick input{width:22px;height:22px;flex:none;accent-color:var(--blue)}.settings{display:flex;flex-direction:column;gap:18px}.settings-block{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--line);padding-top:16px;align-items:flex-start}.settings-block .form{width:100%}.app-greeting .app-sub{font-size:12px;opacity:.75;margin-top:2px}.cycle{display:flex;flex-direction:column;gap:8px}.cycle+.cycle{margin-top:8px}.cycle-title{font-size:13px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.group-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;margin-top:4px}.group-foot .group-count{margin-top:0}.group-date{font-size:12px;color:var(--muted)}.search{display:flex;flex-direction:column;gap:8px}.search-row{display:flex;gap:8px}.search-row input{flex:1;min-width:0;height:46px;padding:0 14px;border:1px solid var(--line);border-radius:12px;font:inherit;font-size:16px;color:var(--ink);background:var(--white)}.search-row input:focus-visible{outline:3px solid var(--amber);outline-offset:2px}.search-results{list-style:none;margin:0;padding:0}.search-results li+li{border-top:1px solid var(--line)}.search-result{display:flex;flex-direction:column;gap:2px;padding:10px 4px;min-height:52px;color:var(--ink);text-decoration:none;font-weight:400}.search-result:hover{color:var(--ink);background:var(--ground)}.dropped-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;padding:10px 2px}.dropped-actions{display:flex;flex-wrap:wrap;gap:8px}.facts{margin:0;display:grid;grid-template-columns:1fr;gap:10px}@media (min-width: 640px){.facts{grid-template-columns:1fr 1fr}}.facts dt{font-size:12px;font-weight:700;color:var(--muted)}.facts dd{margin:0;font-weight:600;overflow-wrap:anywhere}.pill{display:inline-block;padding:1px 8px;border-radius:999px;font-size:12px;font-weight:700;vertical-align:middle}.pill-ok{background:var(--green-50);color:var(--green)}.pill-muted{background:var(--ground);color:var(--muted)}
