@@ -276,6 +424,125 @@ function goEdit() {
color: var(--color-text);
opacity: 0.55;
}
+/* 정기결제 관리 */
+.sub-card {
+ margin-top: 1rem;
+ padding: 0.5rem 0;
+}
+.sub-title {
+ font-size: 0.92rem;
+ font-weight: 700;
+ padding: 0.6rem 1.1rem 0.3rem;
+ color: var(--color-heading);
+}
+.canceled {
+ color: #c0392b;
+ font-size: 0.88rem;
+}
+.sub-free {
+ padding: 0.9rem 1.1rem;
+ font-size: 0.9rem;
+ opacity: 0.85;
+}
+.sub-actions {
+ padding: 0.75rem 1.1rem;
+ display: flex;
+ flex-direction: column;
+ gap: 0.5rem;
+ border-top: 1px solid var(--color-border);
+}
+.sub-note {
+ font-size: 0.83rem;
+ opacity: 0.75;
+ line-height: 1.5;
+}
+.sub-btn {
+ align-self: flex-start;
+ padding: 0.5rem 1.2rem;
+ border: 1px solid hsla(160, 100%, 37%, 1);
+ border-radius: 8px;
+ background: var(--color-background);
+ color: hsla(160, 100%, 37%, 1);
+ font-weight: 600;
+ cursor: pointer;
+}
+.sub-btn.danger {
+ border-color: #c0392b;
+ color: #c0392b;
+}
+.sub-btn:disabled {
+ opacity: 0.55;
+ cursor: default;
+}
+.plan-list {
+ padding: 0.75rem 1.1rem;
+ border-top: 1px solid var(--color-border);
+}
+.plan-list-title {
+ font-size: 0.85rem;
+ font-weight: 600;
+ opacity: 0.8;
+ margin-bottom: 0.5rem;
+}
+.plan-row {
+ display: flex;
+ align-items: center;
+ gap: 0.6rem;
+ width: 100%;
+ padding: 0.7rem 0.8rem;
+ margin-bottom: 0.5rem;
+ border: 1px solid var(--color-border);
+ border-radius: 8px;
+ background: var(--color-background);
+ color: var(--color-text);
+ cursor: pointer;
+ font-size: 0.9rem;
+}
+.plan-row:last-child {
+ margin-bottom: 0;
+}
+.plan-row.current {
+ border-color: hsla(160, 100%, 37%, 0.7);
+ background: hsla(160, 100%, 37%, 0.06);
+}
+.plan-row:disabled {
+ cursor: default;
+}
+.plan-name {
+ font-weight: 700;
+}
+.plan-price {
+ margin-left: auto;
+ font-weight: 700;
+ color: #b8860b;
+}
+.plan-per {
+ font-weight: 400;
+ font-size: 0.8rem;
+ opacity: 0.7;
+}
+.plan-cta {
+ min-width: 56px;
+ text-align: right;
+ font-size: 0.85rem;
+ font-weight: 600;
+ color: hsla(160, 100%, 37%, 1);
+}
+.plan-row.current .plan-cta {
+ color: var(--color-text);
+ opacity: 0.6;
+}
+.sub-ok {
+ padding: 0 1.1rem 0.6rem;
+ color: hsla(160, 100%, 37%, 1);
+ font-weight: 600;
+ font-size: 0.88rem;
+}
+.sub-errmsg {
+ padding: 0 1.1rem 0.6rem;
+ color: #c0392b;
+ font-size: 0.88rem;
+}
/* 포인트 내역 모달 */
.ph-backdrop {
position: fixed;