.smp-form-wrap{max-width:520px;margin:1em auto}
.smp-form input[type=text],.smp-form input[type=email],.smp-form input[type=tel],.smp-form input[type=password],.smp-form textarea,
.smp-form-wrap #loginform input[type=text],.smp-form-wrap #loginform input[type=password]{width:100%;padding:8px;box-sizing:border-box}
.smp-button,.smp-form-wrap #loginform input[type=submit]{padding:10px 20px;cursor:pointer}
.smp-notice{padding:12px 16px;margin:1em 0;border-left:4px solid #888;background:#f6f7f7}
.smp-notice ul{margin:0;padding-left:1.2em}
.smp-success{border-color:#46b450;background:#ecf7ed}
.smp-error{border-color:#dc3232;background:#fbeaea}
.smp-info{border-color:#00a0d2;background:#e8f5fa}

/* ---- portal ---- */
.smp-portal{max-width:900px;margin:1em auto}
.smp-portal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5em}
.smp-nav{display:flex;gap:6px;flex-wrap:wrap;border-bottom:2px solid #ddd;margin-bottom:1em}
.smp-nav a{padding:8px 14px;text-decoration:none;border-radius:4px 4px 0 0}
.smp-nav a.smp-active{background:#2271b1;color:#fff}
.smp-cards{display:flex;gap:12px;flex-wrap:wrap}
.smp-card{flex:1 1 120px;padding:14px;background:#f6f7f7;border-radius:6px;text-align:center}
.smp-num{display:block;font-size:28px;font-weight:700}
.smp-box{border:1px solid #ddd;border-radius:6px;padding:12px 16px;margin:14px 0}
.smp-box h3{margin-top:0}
.smp-checks{display:flex;flex-wrap:wrap;gap:6px 18px}
.smp-checks label{min-width:200px}
.smp-ur{color:#666;margin-left:4px}
.smp-list{padding-left:1.2em}
.smp-table{width:100%;border-collapse:collapse}
.smp-table th,.smp-table td{border-bottom:1px solid #e5e5e5;padding:6px 8px;text-align:left}
.smp-inline{display:flex;gap:16px}
.smp-inline form{margin:0}
.smp-link,.smp-link-danger{background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;color:#2271b1}
.smp-link-danger{color:#b32d2e}
.smp-portal select,.smp-portal input[type=text],.smp-portal input[type=email],.smp-portal input[type=tel]{padding:6px;max-width:100%}

/* ---- v0.2.1 ---- */
.smp-checks-tools{display:flex;gap:16px;margin:6px 0}
.smp-box-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.smp-box-head h3{margin:0}
.smp-box h4{margin:14px 0 6px}
.smp-sections{display:flex;flex-wrap:wrap;gap:12px;margin:8px 0 12px}
.smp-section-card{flex:1 1 180px;max-width:260px;border:1px solid #c3c4c7;border-radius:6px;padding:10px 12px;background:#fafafa;display:flex;flex-direction:column;gap:4px}
.smp-section-card strong{font-size:1.1em}
.smp-button-link{display:inline-block;margin-top:6px;padding:6px 10px;background:#2271b1;color:#fff !important;text-decoration:none;border-radius:4px;text-align:center}
.smp-subbox{background:#f6f7f7;border-radius:6px;padding:10px 14px;margin:10px 0}
.smp-fields{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.smp-check{display:flex;align-items:center;gap:6px;padding-bottom:6px}
.smp-rename summary{cursor:pointer;color:#2271b1}
.smp-rename{display:inline-block}
.smp-scroll{overflow-x:auto}
.smp-table td form{margin:0;display:inline}

/* ---- user menu ---- */
.smp-usermenu{position:relative}
.smp-usermenu summary{cursor:pointer;list-style:none;padding:6px 12px;border:1px solid #c3c4c7;border-radius:20px;background:#fff}
.smp-usermenu summary::-webkit-details-marker{display:none}
.smp-usermenu summary:after{content:" \25BE"}
.smp-usermenu-list{position:absolute;right:0;top:110%;min-width:180px;background:#fff;border:1px solid #c3c4c7;border-radius:6px;box-shadow:0 4px 14px rgba(0,0,0,.12);z-index:50;display:flex;flex-direction:column}
.smp-usermenu-list a{padding:9px 14px;text-decoration:none;color:inherit}
.smp-usermenu-list a:hover{background:#f0f6fc}

/* ---- timetable ---- */
.smp-subnav,.smp-chips{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 14px}
.smp-subnav a,.smp-chip{padding:6px 12px;border:1px solid #c3c4c7;border-radius:16px;text-decoration:none;background:#fff}
.smp-subnav a.smp-active,.smp-chip.smp-active{background:#2271b1;color:#fff;border-color:#2271b1}
.smp-tt th,.smp-tt td{vertical-align:top;min-width:96px}
.smp-tt .smp-recess td{background:#f0f0f1;text-align:center}
.smp-lesson{position:relative;border-left:3px solid #2271b1;background:#f6f9fc;padding:3px 18px 3px 6px;margin-bottom:4px;font-size:.9em}
.smp-lesson form{display:inline;margin:0}
.smp-x{position:absolute;top:0;right:2px;background:none;border:0;color:#b32d2e;cursor:pointer;font-size:16px;line-height:1;padding:0 2px}
.smp-rowform{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:6px 0}
.smp-rowform form{margin:0;display:flex;gap:6px;align-items:center;flex-wrap:wrap}

/* ---- generator ---- */
.smp-gen{background:#f6f9fc}
.smp-actions{margin:14px 0;align-items:center}
.smp-actions form{margin:0}
.smp-notice ul{margin:0;padding-left:1.2em}
