:root{--tlp-accent:#166a72;--tlp-deep:#112a3a;--tlp-muted:#6b7b85;--tlp-line:#e3e9ec;--tlp-bg:#f4f7f7;--tlp-white:#fff;--tlp-radius:18px}
.tlp-shell,.tlp-admin{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--tlp-deep);line-height:1.5;max-width:1250px;margin:0 auto;padding:28px 20px 48px;box-sizing:border-box}
.tlp-shell *,.tlp-admin *{box-sizing:border-box}.tlp-shell h1,.tlp-admin h1{font-weight:770;letter-spacing:-.035em;font-size:clamp(30px,4vw,44px);line-height:1.14;margin:12px 0}.tlp-shell h2,.tlp-admin h2{font-size:21px;letter-spacing:-.025em;margin:0 0 10px}.tlp-shell p,.tlp-admin p{line-height:1.62}
.tlp-muted{color:var(--tlp-muted);font-size:13px}.tlp-eyebrow{color:var(--tlp-accent);font-size:11px;font-weight:850;letter-spacing:.14em;text-transform:uppercase}.tlp-small{font-size:12px}.tlp-topbar{display:flex;align-items:center;justify-content:space-between;padding-bottom:25px;gap:16px}.tlp-topbrand{display:flex;align-items:center;gap:12px}.tlp-topbrand strong{font-size:17px;letter-spacing:-.025em}.tlp-brand-mark{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;border-radius:13px;background:var(--tlp-accent);color:#fff;font-weight:800;letter-spacing:-.08em}.tlp-logout{cursor:pointer;border:1px solid var(--tlp-line);border-radius:10px;padding:9px 14px;background:white;color:var(--tlp-deep);font-weight:650}
.tlp-hero{padding:clamp(26px,5vw,58px);border-radius:24px;background:linear-gradient(135deg,#e8f4ef 0%,#eaf2f4 50%,#f1f5f6 100%);margin-bottom:22px;position:relative;overflow:hidden}.tlp-hero p{max-width:640px;color:#55717c}.tlp-hero-member{display:flex;justify-content:space-between;align-items:center;gap:16px}.tlp-avatar{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:92px;height:92px;border-radius:25px;font-size:44px;font-weight:750;color:var(--tlp-accent);background:#fff;box-shadow:0 8px 40px #125f6a15}
.tlp-btn{display:inline-flex;gap:8px;align-items:center;justify-content:center;color:white!important;background:var(--tlp-accent);border:1px solid var(--tlp-accent);border-radius:11px;padding:11px 18px;text-decoration:none!important;font-size:13px;font-weight:700;cursor:pointer;box-shadow:none;transition:transform .15s,filter .15s}.tlp-btn:hover{transform:translateY(-1px);filter:brightness(.95)}.tlp-btn:focus-visible,.tlp-shell a:focus-visible{outline:2px solid #e18b36;outline-offset:2px}.tlp-btn.tlp-secondary{background:#fff;color:var(--tlp-accent)!important;border-color:#dce5e7}.tlp-buttons{display:flex;gap:10px;flex-wrap:wrap}
.tlp-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:20px 0}.tlp-kpi{background:var(--tlp-white);padding:22px;border-radius:var(--tlp-radius);border:1px solid var(--tlp-line);min-width:0}.tlp-kpi-value{font-size:clamp(19px,2.3vw,28px);font-weight:790;letter-spacing:-.045em;margin:8px 0;color:var(--tlp-deep);overflow-wrap:anywhere}.tlp-panel{background:white;border:1px solid var(--tlp-line);padding:25px;border-radius:var(--tlp-radius);margin:18px 0;box-shadow:0 3px 18px rgba(17,42,58,.025);scroll-margin-top:14px}.tlp-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.tlp-section-head h2{margin:4px 0 0}.tlp-tabs{display:flex;align-items:center;gap:10px;overflow-x:auto;scrollbar-width:thin;padding:12px 0}.tlp-tabs a{display:inline-flex;white-space:nowrap;text-decoration:none!important;color:#355563;border:1px solid #dce6e8;border-radius:12px;background:white;padding:10px 15px;font-weight:650;font-size:13px}.tlp-tabs a:hover{border-color:var(--tlp-accent);color:var(--tlp-accent)}.tlp-table-wrap{width:100%;overflow-x:auto;scrollbar-width:thin}.tlp-table{border-collapse:collapse;width:100%;min-width:550px;font-size:13px}.tlp-table th{text-transform:uppercase;font-size:10px;font-weight:780;letter-spacing:.07em;color:#69818d;background:#f6f9f9;text-align:left;padding:13px 12px;border-bottom:1px solid var(--tlp-line);white-space:nowrap}.tlp-table td{padding:13px 12px;border-bottom:1px solid #edf0f1;vertical-align:top}.tlp-table tr:last-child td{border-bottom:0}.tlp-table tbody tr:hover{background:#fbfcfc}.tlp-number{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.tlp-admin .tlp-table td{overflow-wrap:anywhere}.tlp-footer{text-align:center;color:#7a8a91;font-size:12px;margin-top:32px}.tlp-admin-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:12px 0 28px}.tlp-admin-head p{margin:6px 0;color:var(--tlp-muted)}.tlp-admin-head h1{margin:0}.tlp-admin .tlp-panel{margin:20px 0}.tlp-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.tlp-grid-2 .tlp-panel{margin:0}.tlp-form{margin:20px 0 0}.tlp-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:15px}.tlp-form label{display:flex;flex-direction:column;gap:6px;color:#45616c;font-size:12px;font-weight:720}.tlp-form input:not([type=checkbox]):not([type=hidden]),.tlp-form select,.tlp-form textarea,.tlp-table input,.tlp-table select{display:block;width:100%;padding:10px 12px;border:1px solid #d8e3e6;border-radius:10px;font-family:inherit;font-size:14px;min-height:40px;background:#fff;color:#203845;max-width:100%}.tlp-form input:focus,.tlp-form select:focus{border-color:var(--tlp-accent);outline:2px solid #166a7222}.tlp-alert{background:#f0f8f5;border:1px solid #b7ded1;border-radius:12px;margin:16px 0;padding:14px;color:#1a504d;white-space:pre-wrap}.tlp-error{background:#fff3ee;border-color:#f3baa9;color:#8b3c27}.tlp-table details{min-width:180px}.tlp-table details summary{color:var(--tlp-accent);cursor:pointer;font-weight:700}.tlp-link-danger{border:0;background:transparent;color:#b23029;cursor:pointer;text-decoration:underline;padding:3px}.tlp-admin-shortcuts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.tlp-shortcut{display:flex;flex-direction:column;gap:18px;text-decoration:none!important;padding:20px;border-radius:15px;border:1px solid var(--tlp-line);background:white;color:var(--tlp-deep)!important;font-weight:700}.tlp-shortcut span{color:var(--tlp-accent)}
.tlp-login-scene{min-height:75vh;display:grid;grid-template-columns:1.08fr 0.92fr;align-items:center;gap:clamp(20px,6vw,78px)}.tlp-login-brand{padding:35px 0 35px 25px}.tlp-login-brand .tlp-brand-mark{width:59px;height:59px;font-size:21px;margin-bottom:24px}.tlp-login-brand h1{max-width:580px;font-size:clamp(37px,5vw,65px)}.tlp-login-brand p:not(.tlp-eyebrow){max-width:520px;color:#637782;font-size:16px}.tlp-login-features{margin-top:32px;display:grid;gap:14px;color:#466a70;font-weight:650;font-size:13px}.tlp-login-card{background:white;padding:clamp(25px,5vw,50px);border:1px solid var(--tlp-line);border-radius:24px;box-shadow:0 23px 90px #143f4b13;min-width:0}.tlp-login-card form{display:grid;gap:8px}.tlp-login-card form p{margin:4px 0}.tlp-login-card form label{font-size:13px;font-weight:700;color:#4c6570}.tlp-login-card form input[type=text],.tlp-login-card form input[type=password]{width:100%;min-height:49px;padding:12px 15px;border-radius:11px;border:1px solid #d9e4e5;font:inherit;box-sizing:border-box}.tlp-login-card form input[type=submit]{display:block;width:100%;padding:13px;background:var(--tlp-accent);border:0;color:white;border-radius:10px;font-weight:750;cursor:pointer}.tlp-login-card form input[type=checkbox]{margin-right:7px}.tlp-login-card h2{font-size:27px;margin:8px 0}.tlp-login-card .login-remember{font-size:12px;color:#5c7380}
@media(max-width:1050px){.tlp-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.tlp-admin-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}.tlp-grid-2{grid-template-columns:1fr}.tlp-login-scene{gap:20px}.tlp-login-brand{padding:25px 0}}
@media(max-width:650px){.tlp-shell,.tlp-admin{padding:16px 11px 32px}.tlp-kpis{gap:8px}.tlp-kpi{padding:16px 12px}.tlp-kpi-value{font-size:20px}.tlp-hero{border-radius:18px;padding:23px}.tlp-avatar{width:58px;height:58px;font-size:28px;border-radius:15px}.tlp-hero-member h1{font-size:28px}.tlp-panel{padding:17px 13px;border-radius:15px}.tlp-login-scene{display:flex;flex-direction:column;gap:10px;align-items:stretch}.tlp-login-brand{padding:17px 14px 0}.tlp-login-brand h1{font-size:36px}.tlp-login-brand p:not(.tlp-eyebrow){font-size:14px}.tlp-login-features{display:none}.tlp-login-card{padding:24px 19px;border-radius:17px}.tlp-admin-head{display:block}.tlp-admin-head .tlp-btn{margin-top:12px}.tlp-admin-shortcuts{gap:9px}.tlp-shortcut{padding:15px}.tlp-hero-member{align-items:flex-start}.tlp-topbrand strong{font-size:14px}.tlp-section-head{flex-wrap:wrap}}
@media print{@page{size:A6 landscape;margin:6mm}body{background:#fff!important}.tlp-topbar,.tlp-tabs,.tlp-footer,.tlp-print,.tlp-logout,.tlp-btn,.tlp-hero,.tlp-admin-shortcuts{display:none!important}.tlp-shell{padding:0;max-width:none}.tlp-panel{box-shadow:none;border:1px solid #ccc;break-inside:avoid}#tlp-loans,#tlp-fines,#tlp-meetings,#tlp-files{display:none!important}#tlp-passbook{display:block!important}.tlp-table{min-width:0;font-size:10px}.tlp-table th,.tlp-table td{padding:6px 5px}.tlp-kpis{grid-template-columns:repeat(2,1fr)}}
/* BS/AD date picker and responsive calendar; existing theme styles unchanged */
.tlp-date-pair{position:relative;min-width:190px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;border-radius:12px;padding:9px;background:#f6faf9;border:1px solid #e1ece9}
.tlp-date-pair label{min-width:0}.tlp-bs-field{display:flex;min-width:0;align-items:center;gap:4px}.tlp-bs-field .tlp-bs-input{min-width:0;width:100%;font-variant-numeric:tabular-nums;background:#fff}.tlp-bs-trigger{padding:8px;min-width:42px;border-radius:10px;border:1px solid #c9d8db;background:#fff;cursor:pointer}.tlp-bs-hint{font-size:10px;color:#61808a;grid-column:1 / -1}
.tlp-date-ad{white-space:nowrap;display:block;font-variant-numeric:tabular-nums}.tlp-date-bs{display:block;color:var(--tlp-accent);font-size:11px;white-space:nowrap;margin-top:3px}
.tlp-bs-popup{position:absolute;top:calc(100% + 6px);left:0;z-index:99999;width:min(365px,90vw);max-width:100%;padding:15px;background:#fff;border:1px solid #d5e3e5;border-radius:15px;box-shadow:0 16px 50px #123f4c26}.tlp-bs-popup[hidden]{display:none!important}
.tlp-bs-viewer{max-width:470px;margin:15px auto 5px;padding:12px;border:1px solid #e2eeee;border-radius:15px;background:#fff}
.tlp-cal-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.tlp-cal-nav>button{background:#eef5f3;border:1px solid #d0e3e0;color:var(--tlp-accent);font-weight:800;font-size:24px;line-height:1;border-radius:9px;width:35px;height:37px;cursor:pointer}.tlp-cal-nav>button:disabled{opacity:.3;cursor:not-allowed}.tlp-cal-selects{display:flex;gap:5px;min-width:0}.tlp-cal-selects select{max-width:170px;min-width:0;padding:7px 3px!important;min-height:37px!important;font-size:12px!important;border:1px solid #dae4e4!important;border-radius:8px;background:white}
.tlp-cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.tlp-cal-weekday{font-weight:700;font-size:11px;text-align:center;padding:6px 0;color:#486a75}.tlp-cal-day{display:flex;flex-direction:column;align-items:center;gap:1px;justify-content:center;cursor:pointer;border:1px solid transparent;background:#f6faf9;border-radius:9px;padding:6px 2px!important;min-height:46px!important;color:#1c4650;line-height:1.1;min-width:0}.tlp-cal-day:disabled{opacity:1;cursor:default}.tlp-cal-day strong{font-size:16px;font-weight:800}.tlp-cal-day span{font-size:10px;color:#71858a}.tlp-cal-day.is-saturday{background:#faf5f5}.tlp-cal-day.is-meeting{background:#f7e7d0;border-color:#dab779;position:relative}.tlp-cal-day.is-meeting:after{content:'★';font-size:8px;position:absolute;top:2px;right:3px;color:#ad6a13}.tlp-cal-day.is-today{outline:2px solid var(--tlp-accent)}.tlp-cal-day.is-selected{background:var(--tlp-accent);color:white}.tlp-cal-day.is-selected span{color:#d5eeee}.tlp-cal-day:not(:disabled):hover{border-color:var(--tlp-accent)}.tlp-cal-legend{font-size:11px!important;color:#667d83;margin:8px 0 0!important;text-align:center}
@media(max-width:650px){.tlp-date-pair{grid-template-columns:1fr}.tlp-date-pair .tlp-bs-hint{grid-column:1}.tlp-bs-viewer{max-width:100%;padding:8px}.tlp-cal-day{min-height:40px!important;padding:3px 1px!important}.tlp-cal-day strong{font-size:14px}}
@media print{#tlp-calendar{display:none!important}.tlp-date-bs{font-size:8px}}

/* Member-number login only; retain original portal palette and layout. */
.tlp-member-login-form {display:flex;flex-direction:column;gap:14px;margin-top:20px;}
.tlp-member-login-form label {display:flex;flex-direction:column;gap:6px;font-weight:600;color:#193a3d;}
.tlp-member-login-form input:not([type=checkbox]) {width:100%;box-sizing:border-box;padding:13px 14px;border:1px solid #cad9d9;border-radius:9px;font:inherit;}
.tlp-member-login-form input:focus {outline:2px solid var(--tlp-accent,#166a72);outline-offset:1px;}
.tlp-member-login-form .tlp-login-remember {flex-direction:row;align-items:center;font-size:.88rem;font-weight:400;}
.tlp-member-login-form .tlp-login-remember input {width:18px;height:18px;}

/* Google sign-in/link complements existing portal styles (v1.3) */
.tlp-google-box{margin:18px 0;padding:16px;border:1px solid #dde7eb;border-radius:14px;background:#fff}
.tlp-google-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:11px 17px;border:1px solid #c8d2da;border-radius:10px;background:#fff;color:#233044;text-decoration:none;font-weight:650;min-height:42px}
.tlp-google-button:hover{background:#f5f8fb}
.tlp-google-help{font-size:12px;color:#64748b;margin:9px 0 0}
