:root{--ig-ink:#292e24;--ig-olive:#68704d;--ig-olive-dark:#464b38;--ig-lime:#dce7a5;--ig-sage:#b8c39a;--ig-paper:#f4f3ea;--ig-card:#fffef8;--ig-line:#dde1cf;--ig-muted:#717766;font-family:"Avenir Next",Inter,system-ui,-apple-system,sans-serif;color:var(--ig-ink);background:var(--ig-paper)}body{background:radial-gradient(circle at 8% 0,#eef1d9 0,transparent 28%),var(--ig-paper)}header{background:#fffef8e8;border-bottom-color:var(--ig-line);backdrop-filter:blur(14px);height:72px}.logo{width:40px;height:40px;border-radius:13px;background:var(--ig-olive-dark);color:var(--ig-lime);box-shadow:inset 0 0 0 1px #ffffff18,0 5px 15px #3f463024}.brand-name{font-size:16px;letter-spacing:.015em}.brand-subtitle{font-size:10px;letter-spacing:.16em;color:var(--ig-muted);font-weight:800}.cloud-badge{color:#53643e;background:#edf2df}.eyebrow{color:#7a806c}button{background:var(--ig-olive);box-shadow:0 4px 12px #56603d24;transition:transform .15s,background .15s,box-shadow .15s}button:where(:hover:not(:disabled)){background:var(--ig-olive-dark);transform:translateY(-1px)}.ghost{background:#e9ecdd;color:#58604a;box-shadow:none}.ghost:hover:not(:disabled){background:#dce2ca}.stats article,.view,.card,.student-pill,.debt-summary>div{background:var(--ig-card);border-color:var(--ig-line);box-shadow:0 8px 28px #4b523916}.student-pill strong,.time,.lesson-time,.today .day-number,.support-range,.payment-edit-hint{color:var(--ig-olive)}.student-pill{border-color:var(--ig-line)}.student-pill span,.stats span,.muted,label{color:var(--ig-muted)}nav button{color:#737866;box-shadow:none}nav button.active{background:var(--ig-card);color:var(--ig-olive-dark);box-shadow:0 3px 12px #4b523918}.avatar{background:#e8ecd8;color:var(--ig-olive-dark)}input,select,textarea{border-color:#d9ddca;background:#fffefb;color:var(--ig-ink)}input:focus,select:focus,textarea:focus{outline:2px solid #aebc7c66;border-color:var(--ig-olive)}dialog{background:var(--ig-card);box-shadow:0 28px 80px #292e2459}dialog::backdrop{background:#252a207d}.auth-screen{background:radial-gradient(circle at 30% 0,#dfe7b8,#f4f3ea 58%)}.login-card{background:var(--ig-card);box-shadow:0 24px 70px #3d44302b}.day-column{border-color:var(--ig-line);background:#f7f7ef}.day-column.today{border-color:#8c9867;background:#eef1df}.day-head{border-bottom-color:var(--ig-line)}.calendar-lesson{border-color:#dfe2d4;border-left-color:var(--ig-olive);background:#fffef9;box-shadow:0 3px 10px #424a3212}.calendar-lesson.done{border-left-color:#718d55}.calendar-lesson.cancelled{border-left-color:#aeb3a3}.lesson-actions .done-check.checked,.student-filters button.active,.payment-tabs button.active{background:var(--ig-olive);border-color:var(--ig-olive);box-shadow:0 4px 10px #56603d38}.lesson-actions .paid-check.checked,.unpaid-row .pay-now,.reminder-done{background:#6f8b54;border-color:#6f8b54}.student-filters button,.payment-tabs button{background:#e9ecdd;color:#626957}.status-badge.support-client{background:#e9edd7;color:#5b6543}.attention-pill{background:#f5e8df;color:#8a5141;border-color:#e9cabe;box-shadow:none}.attention-pill.clear{background:#eceee7;color:#8b9084;border-color:#dfe2d8}.income-sketch{border-color:var(--ig-line)}.income-sketch div{background:#fafaf4}.income-sketch div:first-child{background:#edf0df;border-color:var(--ig-line)}.income-sketch div:nth-child(2){background:#e8efdc;border-color:var(--ig-line)}.income-sketch div:nth-child(4){border-color:var(--ig-line)}.row,.unpaid-row{border-color:var(--ig-line);background:#fffef9}.editable-payment:hover{background:#f0f2e3}.reminder-row{background:#f4f0dd;border-color:#dfd4a8}.reminder-row.done{background:#eef0e9;border-color:#dfe2d8}.birthday-card{background:linear-gradient(135deg,#f1f1d8,#e5ebc9);border-color:#d5dda9}.birthday-card b{color:#626c42}.method-badge{background:#e9ecdd;color:#5f6655}.payment-hint{background:#edf0df;color:var(--ig-olive-dark)}.danger,.lesson-actions .cancel,.reminder-delete{background:#f7e7e3;color:#a64f45}.date-title{color:var(--ig-ink)}@media(max-width:650px){.brand-subtitle{display:none}}

.income-card,.income-card>span,.income-card span,.income-card small,.income-card strong,.income-card b{color:#20231d}.income-card .income-sketch span{color:#30342a}.student-filters button{background:#fffef8;color:var(--ig-olive-dark);border:1px solid #aeb797;box-shadow:none}.student-filters button:hover:not(:disabled){background:var(--ig-lime);color:var(--ig-ink)}.student-filters button.active,.type-filters button.active{background:var(--ig-olive-dark);color:#f7f8ec;border-color:var(--ig-olive-dark);box-shadow:0 5px 14px #464b3833}.student-detail .ghost{background:var(--ig-lime);color:var(--ig-olive-dark);border:1px solid #aeb978}.student-detail .ghost:hover:not(:disabled){background:#cbd991}.student-detail button[type="submit"]{background:var(--ig-olive-dark);color:#fff}.card-hint{color:var(--ig-olive);font-weight:700}.card:hover{border-color:#aab48c;box-shadow:0 10px 26px #4b523923}

.activity-card,.activity-card>span,.activity-card span,.activity-card b,.activity-card strong,.activity-head,.activity-head i{color:#20231d}.activity-card .done-number,.activity-card .cancelled-number{color:#20231d}.lesson-actions .state-button{box-shadow:none;opacity:.9}.lesson-actions .done-check{background:#edf0df;color:#4f583c;border:1px solid #aab58b}.lesson-actions .paid-check{background:#f0f4d7;color:#5a643f;border:1px solid #c0cc8d}.lesson-actions .cancel{background:#f5e6df;color:#985447;border:1px solid #e2b9aa}.lesson-actions .done-check.checked{background:var(--ig-olive-dark);color:#fff;border-color:var(--ig-olive-dark);box-shadow:0 4px 10px #464b3838}.lesson-actions .paid-check.checked{background:var(--ig-lime);color:#343a29;border-color:#aab978;box-shadow:0 4px 10px #8f9e5d2e}.lesson-actions button:disabled{opacity:.72}.lesson-actions .checked:disabled{opacity:1}

/* Общий знак: большая P и меньшая Ж на одной линии. */
.logo.brand-mark{position:relative;display:block;overflow:hidden;isolation:isolate}
.logo.brand-mark .mark-p{position:absolute;z-index:2;left:5px;bottom:-2px;color:var(--ig-lime);font-family:"Arial Black",Avenir Next,sans-serif;font-size:29px;font-weight:900;line-height:40px}
.logo.brand-mark .mark-zh{position:absolute;z-index:1;left:24px;bottom:6px;color:#95a16c;font-family:"Arial Black",Avenir Next,sans-serif;font-size:16px;font-weight:900;line-height:1}

/* Более крупный квадрат: знак свободно помещается внутри. */
header{height:80px}
.logo{width:48px;height:48px;border-radius:15px}
.logo.brand-mark .mark-p{left:6px;bottom:1px;font-size:35px;line-height:48px}
.logo.brand-mark .mark-zh{left:26px;bottom:10px;font-size:19px}
.site-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;color:var(--ig-muted);font-size:12px}.site-footer nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px 16px}.site-footer a,.registration-consent a{color:var(--ig-olive-dark);text-decoration:underline;text-underline-offset:2px}.site-footer a:hover,.registration-consent a:hover{color:var(--ig-olive)}.auth-site-footer{flex-direction:column;margin-top:18px;padding-top:15px;border-top:1px solid var(--ig-line);text-align:center}.auth-site-footer nav{justify-content:center}.app-site-footer{max-width:1100px;margin:-32px auto 34px;padding:20px 24px 0;border-top:1px solid var(--ig-line)}@media(max-width:650px){.app-site-footer{align-items:flex-start;flex-direction:column;margin-top:-38px;padding-inline:15px}.app-site-footer nav{justify-content:flex-start}}
@media(max-width:650px){header{gap:8px}header>div:first-child{flex:1 1 auto;min-width:0;gap:8px}header .brand-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-box{flex:0 0 auto;gap:6px}.account-box>button{padding-inline:10px}}
