/* Dailyreport app layer. Dulan System shell files remain unchanged. */
:root{--daily-line:#edf1f3}
html,body{height:100%;overscroll-behavior:none}
body{overflow:hidden}
button{touch-action:manipulation}
[hidden]{display:none!important}
.daily-icon{width:21px;height:21px;flex:0 0 21px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

/* Stockroom v1.3.4.1 safe-area behavior: keep top/left/right in desktop/iPad shell too. */
@media(min-width:861px){
  .dulan-shell{padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);background:var(--app-sidebar-deep)}
  .dulan-sidebar,.dulan-workspace{height:100%}
}

/* Exact brand geometry from the Dulan System kit / Stockroom reference. */
.daily-brand-button{cursor:pointer}
button.dulan-brand-link,button.dulan-mobile-brand{border:0;background:transparent;padding:0}
button.dulan-brand-link:hover,button.dulan-mobile-brand:hover{background:transparent}

/* Stockroom-style account/sync block; service switcher remains directly above logout. */
.daily-account-box{flex:0 0 auto;margin-top:16px;padding:16px 8px 0;border-top:1px solid #ffffff38;color:#f7ede8}
.daily-account-name{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:14px;margin-bottom:7px;overflow-wrap:anywhere}
.daily-account-name b{font-size:12px;color:#ffd9c5;white-space:nowrap;font-weight:600}
.daily-account-email{font-size:12px;color:#ffd9c5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.daily-account-sync{display:flex;align-items:center;justify-content:space-between;gap:4px;margin:6px 0}
.daily-sync{font-size:12px;color:#f7ede8;line-height:1.5}
.daily-sync:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#7ce4bf;margin-right:7px;vertical-align:1px}
.daily-refresh{width:30px;height:30px;min-height:30px;padding:5px;border:0;background:transparent;color:#ffd9c5;border-radius:8px}
.daily-refresh:hover{background:#ffffff18}
.daily-refresh .daily-icon{width:17px;height:17px}
.daily-mode-note{font-size:12px;line-height:1.6;color:#ffd9c5;margin:4px 0 12px}

/* Main content — components keep Dulan System dimensions. */
.dulan-workspace{height:100%;min-height:0;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.dulan-content{max-width:none;padding:28px 28px max(28px,env(safe-area-inset-bottom))}
.daily-page{display:none}
.daily-page.active{display:block}
.daily-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}
.daily-stat{padding:20px 22px}
.daily-stat-label{font-size:.875rem;color:var(--dulan-muted)}
.daily-stat-value{font-size:2rem;font-weight:800;margin-top:10px;font-variant-numeric:tabular-nums;line-height:1.12}
.daily-stat-meta{font-size:.78rem;color:var(--dulan-muted);margin-top:7px;line-height:1.45}
.daily-report-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.daily-report-card{display:flex;flex-direction:column;min-height:330px}
.daily-report-head{display:flex;align-items:center;gap:12px;padding-bottom:17px;border-bottom:1px solid var(--daily-line)}
.daily-unit-mark{width:42px;height:42px;border-radius:11px;background:var(--app-primary-soft);color:var(--app-primary);display:grid;place-items:center;font-weight:800;flex:0 0 42px}
.daily-unit-copy{min-width:0;flex:1}
.daily-unit-copy h2{font-size:1.02rem;margin:0 0 4px;line-height:1.3}
.daily-unit-copy p{font-size:.8rem;color:var(--dulan-muted);margin:0}
.daily-status{display:inline-flex;align-items:center;border-radius:5px;padding:4px 7px;font-size:.72rem;font-weight:700;white-space:nowrap}
.daily-status.done{background:#edf6f2;color:#34735e}
.daily-status.pending{background:#fff4dd;color:#956617}
.daily-empty{flex:1;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:24px 0 8px}
.daily-empty strong{font-size:1rem}
.daily-empty p{font-size:.85rem;color:var(--dulan-muted);line-height:1.65;margin:8px 0 18px}
.daily-summary{padding:13px 0 4px;display:grid;gap:0}
.daily-summary-row{display:grid;grid-template-columns:78px minmax(0,1fr);gap:10px;padding:9px 0;border-bottom:1px solid #f0f2f4;font-size:.83rem;line-height:1.5}
.daily-summary-row:last-child{border-bottom:0}
.daily-summary-label{color:var(--dulan-muted)}
.daily-summary-value{font-weight:650;overflow-wrap:anywhere}
.daily-card-actions{margin-top:auto;padding-top:15px;border-top:1px solid var(--daily-line);display:flex;justify-content:flex-end}
.daily-section-card{padding:18px}
.daily-toolbar{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;margin-bottom:18px}
.daily-inline-field{display:flex;flex-direction:column;gap:7px;font-size:.875rem;font-weight:600}
.daily-inline-field .dulan-input{width:180px}
.daily-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}
.daily-section-head h2{margin:0 0 5px;font-size:1.1rem}
.daily-section-head p{margin:0;font-size:.82rem;color:var(--dulan-muted)}
.daily-placeholder{text-align:center;padding:58px 24px}
.daily-placeholder-icon{width:44px;height:44px;stroke:var(--app-primary);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;margin-bottom:12px}
.daily-placeholder h2{margin:0 0 9px}
.daily-placeholder p{max-width:620px;margin:0 auto;color:var(--dulan-muted);line-height:1.7}
.daily-empty-table{padding:48px 18px;text-align:center;color:var(--dulan-muted);font-size:.88rem}
.daily-member-cell{display:flex;align-items:center;gap:10px}
.daily-avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--app-primary-soft);color:var(--app-primary);font-weight:800;flex:0 0 34px}
.daily-role{display:inline-flex;border-radius:5px;padding:4px 7px;font-size:.75rem;font-weight:700;background:#eff2f5;color:#657884}
.daily-role.admin{background:var(--app-primary-soft);color:var(--app-primary)}
.daily-state-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#168f7d;margin-right:7px}
.daily-state-dot.pending{background:#d89422}
.daily-history-summary{line-height:1.55;white-space:normal;min-width:260px}

/* Forms / dialog match Stockroom modal proportions. */
.daily-dialog{border:0;border-radius:18px;width:min(650px,calc(100% - 24px));padding:0;color:var(--dulan-ink);max-height:90dvh;box-shadow:0 24px 100px #0d1f3455;overflow:auto}
.daily-dialog-small{width:min(560px,calc(100% - 24px))}
.daily-dialog::backdrop{background:#102a3e77;backdrop-filter:blur(3px)}
.daily-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:20px 24px;border-bottom:1px solid var(--dulan-border);position:sticky;top:0;background:#fff;z-index:2}
.daily-modal-head h2{margin:0;font-size:1.2rem}
.daily-modal-head p{margin:5px 0 0;color:var(--dulan-muted);font-size:.8rem;line-height:1.5}
.daily-modal-close{width:38px;height:38px;min-height:38px;border:0;background:transparent;border-radius:10px;font-size:28px;font-weight:300;line-height:1;color:var(--dulan-muted);padding:0;flex:0 0 38px}
.daily-modal-close:hover{background:#f2f4f6}
.daily-modal-body{padding:24px}
.daily-modal-foot{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--dulan-border);padding:18px 24px 22px;background:#fff;position:sticky;bottom:0}
.daily-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.daily-field{display:flex;flex-direction:column;gap:7px;min-width:0;font-size:.875rem;font-weight:600}
.daily-field.full{grid-column:1/-1}
.daily-field small{font-size:.78rem;color:var(--dulan-muted);font-weight:400;line-height:1.45}
.daily-form-section{grid-column:1/-1;padding-top:3px;font-size:.78rem;font-weight:800;color:var(--app-primary);letter-spacing:.04em;text-transform:uppercase}
.dulan-input,.dulan-select,.dulan-textarea{border-radius:10px}
input[readonly]{background:#f1f3f5;color:#64748b}

/* Toast matches Stockroom placement and safe area. */
#toast{position:fixed;bottom:calc(30px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%,20px);background:#4a2416;color:#fff;border-radius:12px;padding:15px 24px;z-index:100;opacity:0;pointer-events:none;transition:.2s;max-width:calc(100% - 30px);box-shadow:0 8px 32px #0002;font-size:.9rem}
#toast.show{opacity:1;transform:translate(-50%,0)}

/* Login: exact Stockroom v1.3.4.1 layout proportions; only app identity changes. */
.login{min-height:100dvh;display:grid;place-items:center;padding:25px max(25px,env(safe-area-inset-right)) max(25px,env(safe-area-inset-bottom)) max(25px,env(safe-area-inset-left));padding-top:max(25px,env(safe-area-inset-top));background:#f5f6f8;overflow:auto}
.login-card{width:min(440px,100%);padding:28px;border-radius:16px}
.login-card img{width:62px;height:62px;object-fit:contain;margin-bottom:24px}
.login-card h1{font-size:28px;letter-spacing:0;margin:0 0 8px}
.login-card p{color:var(--dulan-muted);font-size:.9rem;line-height:1.65}
.login-card .eyebrow{font-size:.75rem;color:#6b7280;font-weight:700;margin-bottom:12px;letter-spacing:0;text-transform:uppercase}
.login-card .dulan-button{width:100%;margin-top:12px}
.login-note{margin-top:14px!important}
.divider{margin:25px 0 12px;border-top:1px solid var(--dulan-border);padding-top:18px}
.login-card>small{color:var(--dulan-muted);font-size:.78rem}

@media(max-width:1180px) and (min-width:861px){.daily-report-grid{grid-template-columns:1fr 1fr}.daily-report-card:last-child{grid-column:1/-1}}
@media(max-width:860px){
  body{overflow:hidden}
  .dulan-content{padding:20px 16px max(24px,env(safe-area-inset-bottom))}
  .dulan-sidebar .dulan-brand{display:none}
  .dulan-menu-open .dulan-workspace,.dulan-service-open .dulan-workspace{overflow:hidden}
  .daily-account-box{margin-top:auto}
  .daily-stats{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:18px}
  .daily-stat{padding:15px}
  .daily-stat-value{font-size:1.65rem;margin-top:6px}
  .daily-report-grid{grid-template-columns:1fr;gap:12px}
  .daily-report-card{min-height:0;padding:18px}
  .daily-summary-row{grid-template-columns:72px minmax(0,1fr)}
  .dulan-page-head{margin-bottom:20px;align-items:flex-start}
  .dulan-page-head h1{font-size:24px}
  .daily-inline-field{flex:1;min-width:160px}
  .daily-inline-field .dulan-input{width:100%}
  .daily-dialog{max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 20px)}
  .daily-modal-head{padding:16px 20px}
  .daily-modal-body{padding:20px}
  .daily-modal-foot{padding:14px 20px max(18px,env(safe-area-inset-bottom))}
  .daily-form-grid{grid-template-columns:1fr}
  .daily-field.full,.daily-form-section{grid-column:auto}
  .dulan-table-wrap{border:0;background:transparent;overflow:visible}
  .daily-responsive-table,.daily-responsive-table tbody{display:block;width:100%}
  .daily-responsive-table thead{display:none}
  .daily-responsive-table tr{display:block;margin:0 0 10px;padding:14px;border:1px solid var(--dulan-border);border-radius:14px;background:#fff;box-shadow:0 1px 2px #00000008}
  .daily-responsive-table td{display:block;padding:7px 0;border:0;white-space:normal}
  .daily-responsive-table td::before{content:attr(data-label);display:block;margin-bottom:2px;color:var(--dulan-muted);font-size:.68rem;font-weight:700}
  .daily-responsive-table td:first-child{padding-top:0}
  .daily-responsive-table td:last-child{padding-bottom:0}
  .daily-history-summary{min-width:0}
  .login-card{padding:28px}
}
@media(max-width:520px){
  .daily-stats{grid-template-columns:1fr 1fr}
  .daily-stat-meta{display:none}
  .daily-toolbar{display:grid;grid-template-columns:1fr 1fr}
  .daily-inline-field{grid-column:1/-1}
  .daily-modal-foot .dulan-button{flex:1}
}
@media(max-width:390px){.daily-stat-value{font-size:1.45rem}.daily-unit-mark{width:38px;height:38px;flex-basis:38px}.daily-report-head{gap:9px}}
@media(prefers-reduced-motion:reduce){#toast{transition:none}}
