/* Quiet, consistent interface: measured spacing and clearly grouped tools. */
:root{--mirae-release:"3.8.0";--ink:#253b32;--muted:#697970;--line:#dfe7df;--green:#357253;--radius:12px}
body{background:#f4f6f2;color:var(--ink)}.page-head{align-items:center;gap:16px;margin-bottom:22px}.page-head h1{font-size:25px;font-weight:750;letter-spacing:-.045em;line-height:1.25}.page-head p{margin-top:8px;color:var(--muted);line-height:1.6;font-size:13px}.page-head>div:last-child,.page-actions{gap:8px;flex-wrap:wrap}
.section,.table-shell{border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 2px 7px #23432d03}.section{padding:22px;margin-bottom:18px}.section>h2,.section-head{margin-bottom:16px}.btn{min-height:38px;padding:9px 15px;line-height:1.2;white-space:nowrap;gap:7px;border-radius:7px;font-weight:600;transition:background .15s,border-color .15s}.btn.sm{min-height:31px;padding:7px 10px;font-size:12px}.btn.primary{background:#357253;border-color:#357253}.btn.primary:hover{background:#2a6145}.btn.danger{color:#a2333b;background:#fff4f3;border:1px solid #efd1cf}.btn.danger:hover{background:#ffe6e3}.btn:focus-visible,.icon-btn:focus-visible{outline:3px solid #99c4ad;outline-offset:2px}.icon-btn{min-width:34px;min-height:34px;border-radius:7px}.input:not(textarea){min-height:38px;box-sizing:border-box;border-radius:7px}.input.small{min-height:34px}.input:focus{outline:2px solid #8bb89b;outline-offset:1px}
.table-tools{padding:15px 18px;gap:10px;align-items:center;flex-wrap:wrap}.table-tools .search-wrap{flex:1 1 210px;max-width:420px}.table-tools .tool-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-left:auto}.table-tools>select{max-width:190px}.data-table th{padding:12px 13px;background:#f5f8f3;color:#586e60;font-weight:650;border-bottom:1px solid #dce5dc}.data-table td{padding:11px 13px;border-bottom-color:#edf1ea}.data-table tbody tr:hover{background:#f7faf5}.data-table .row-actions .btn+.btn,.data-table td>.btn+.btn{margin-left:7px}.data-table td>.connection-state+.btn{margin-left:9px}.data-table .avatar{display:none}.data-table td .flex{gap:7px}.data-table td small:empty{display:none}.data-table td .primary-text{font-weight:650}.data-table .connection-state{font-size:12px}.connection-state.muted{color:#77837b;background:#f0f3ef}
#grid-summary{padding:0 18px}.list-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:2px 0 18px}.list-overview>div{background:#f5f8f3;border:1px solid #e4ece1;border-radius:10px;padding:14px 17px}.list-overview span{display:block;color:#677b6b;font-size:12px;line-height:1.4}.list-overview strong{display:block;margin-top:8px;font-size:24px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1}.list-overview small{font-size:11px;font-weight:500;margin-left:5px;color:#7b887e}.bulkbar{gap:10px;padding:12px 18px;align-items:center;flex-wrap:wrap;background:#eef6ec}.bulkbar strong{margin-right:auto;color:#356e4d}.bulkbar .btn{background:white}#grid-footer{padding:13px 18px;gap:12px;display:flex;justify-content:space-between;align-items:center}#grid-footer .flex{gap:10px}.directory-age{padding:0 18px;font-size:11px;color:#7d8c80}
.compact-filters{gap:10px;align-items:end;flex-wrap:wrap;margin-bottom:14px}.compact-filters>label{display:flex;flex-direction:column;gap:7px;font-size:12px;color:#647568;min-width:0}.compact-filters>input,.compact-filters>select{max-width:100%}.compact-filters input[type=date]{min-width:0;width:100%}.activity-period{display:grid;grid-template-columns:130px auto minmax(145px,1fr) minmax(145px,1fr) auto;align-items:end;gap:12px;margin-bottom:16px}.activity-period label{display:flex;flex-direction:column;gap:7px;color:#647568;font-size:12px;min-width:0}.activity-period input{width:100%;min-width:0}.input-suffix{display:flex;align-items:center;position:relative}.input-suffix input{padding-right:32px}.input-suffix>span{position:absolute;right:13px;color:#748479;font-size:12px}.activity-search{display:grid;grid-template-columns:minmax(140px,1fr) 150px 150px;margin-bottom:0}.activity-stats,.stats{gap:14px}.activity-stats>div{border-radius:12px;padding:18px 20px}.activity-stats strong{font-variant-numeric:tabular-nums}.activity-chart{margin-top:8px}
.modal{border-radius:14px;box-shadow:0 16px 64px #16322426;max-height:calc(100dvh - 48px)}.modal-head{padding:20px 24px;gap:12px}.modal-head h2{font-size:19px;line-height:1.3;letter-spacing:-.03em}.modal-head small{display:block;color:#748376;font-size:12px;margin-top:5px}.modal-body{padding:22px 24px}.modal-footer{padding:16px 24px;gap:10px;flex-wrap:wrap;background:#fafcf8;border-top:1px solid #e7ede3}.field{gap:7px}.form-grid{gap:16px 18px}.form-section-title{margin:22px 0 12px}.check-label{gap:9px;line-height:1.5}.family-kv{gap:14px 20px}.family-assignment-strip{padding:14px;margin:18px 0;gap:12px;border-radius:9px;flex-wrap:wrap}.management-intro{font-size:13px;line-height:1.75;margin:0 0 18px;color:#637769}.management-targets{display:flex;gap:7px;flex-wrap:wrap;padding:12px 0 20px}.management-targets>span{background:#edf4e9;padding:6px 10px;border-radius:5px;font-size:12px}.contact-overlay{z-index:210}.contact-modal{width:min(520px,calc(100vw - 32px))}.contact-modal form{display:contents}.contact-status{border-radius:8px;background:#f0f6ec;padding:12px 14px;margin-top:16px;color:#4c6d51;font-size:13px;line-height:1.6;white-space:normal}.contact-status.error{background:#fff2ee;color:#a53f35}.contact-student{padding:12px 0;color:#345b40;font-weight:650}.contact-candidate{display:flex;align-items:center;gap:9px;padding:12px;border:1px solid #e1e9dd;margin-top:7px;border-radius:7px;font-size:13px}.contact-modal details textarea{height:150px;margin:10px 0;font-size:11px}.msw-no-phone{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:11px 13px;border:1px solid #f0e0c9;background:#fffaf0;margin:6px 0;border-radius:8px;font-size:12px}.msw-no-phone .btn{flex-shrink:0}.push-tabs,.attendance-tabs,.makeup-tabs,.course-tabs{gap:8px;flex-wrap:wrap}.toolbar,.sheet-toolbar,.syllabus-toolbar,.lesson-sheet-tools{gap:10px;flex-wrap:wrap}.toolbar .btn+.btn{margin-left:0}.push-layout{gap:20px}.push-targets{border-radius:10px}.staff-post{border-radius:10px}.staff-post-head{padding:17px 19px}.staff-post-body{padding:0 19px 20px}.push-note{line-height:1.7;margin-top:14px}.table-scroll{border-radius:8px}
@media(max-width:1100px){.activity-period{grid-template-columns:110px auto minmax(130px,1fr) minmax(130px,1fr) auto;gap:9px}.page-head{align-items:flex-start}.list-overview{gap:10px}.list-overview>div{padding:13px}}
@media(max-width:700px){.page-head{margin-bottom:17px;gap:12px;flex-wrap:wrap}.page-head h1{font-size:23px}.page-head p{font-size:12px;margin-top:7px}.section{padding:16px;border-radius:11px}.btn{min-height:40px;padding:10px 13px}.btn.sm{min-height:33px;padding:8px 10px}.icon-btn{min-width:38px;min-height:38px}.input:not(textarea){min-height:40px;font-size:16px}.table-tools{padding:13px 12px;gap:9px}.table-tools .search-wrap{max-width:none;flex:1 1 100%}.table-tools>select{flex:1;max-width:none;width:0}.table-tools .tool-right{margin-left:0;justify-content:flex-end;flex:1}.table-tools .input.small{font-size:13px}.list-overview{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:14px}.list-overview>div{padding:12px 14px}.list-overview strong{font-size:23px;margin-top:7px}#grid-summary{padding:0 12px}.data-table td,.data-table th{padding:9px 11px}.bulkbar{padding:12px;gap:8px}.bulkbar strong{flex:1 1 100%}.bulkbar .btn{flex:1}#grid-footer{padding:12px;justify-content:flex-end}#grid-footer>span:empty{display:none}.activity-period{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.period-days{grid-column:1}.period-apply{grid-column:2}.period-start{grid-column:1}.period-end{grid-column:2}.period-load{grid-column:1/-1}.activity-search{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.activity-search>input{grid-column:1/-1;width:100%}.activity-search>select{width:100%;font-size:12px}.activity-stats{gap:10px}.activity-stats>div{padding:14px}.compact-filters>label{flex:1 1 130px}.compact-filters>.btn{flex:1}.modal{max-height:calc(100dvh - 24px)}.modal-head{padding:17px 18px}.modal-body{padding:18px}.modal-footer{padding:14px 18px}.modal-footer .btn{flex:1;min-width:100px}.form-grid{gap:14px}.management-targets{gap:7px}.contact-modal{width:calc(100vw - 24px)}.msw-no-phone{align-items:flex-start;line-height:1.6}.msw-no-phone .btn{margin-top:0}.lesson-test-row{flex-wrap:wrap}.lesson-test-row>input{flex:1 1 100%}.lesson-options{flex-wrap:wrap;gap:9px}.attendance-live .btn,.att-compact-row .btn{min-height:30px;padding:6px 8px}.modal-head .icon-btn{flex:none}.page-head .btn{min-height:35px}.mobile-app-nav{border-top-color:#d9e6d8}.sidebar.open{padding-bottom:calc(90px + env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){.btn{transition:none}}
